201524208968045798312494087449990976429163795261120600328150889595917605836177816604173313666280854968678308794240199638446114169541547841119093004935413048989902109010326846441169375604661723648928414836798035188299400330915661842154294288383545932981017990974562793017382337101980522200080454560250834705076325226230933031563304618651601642335727519376945500226081094362495331332249754762018673757675833316036393888771053471988644622615191019527705611280018133636716362121070646451397772058832381244963244553663216599757227138900557300883856927832468879836450480828267385600731361818427262031901064963599382553728315338301083503790658325544413289517241574463794803743309618934400033247125889383944129415607647723040765239687660370313834329829252129469782388883132117671131951569214757696649934447395900991590185032117285989918748438939210166766734987841523756715462883118584917043990212047855958358702703940606038783992546961812026432952380543759366487196347702188579471955823014088280014132989712491652942926911847156108248726832992921458333581106874599441470362498405384211939644814604063405661018118779049049856627323160780867078869068870434347011170019382087482763513729644605107698625771997193300270112090062983065058424608912344681984679552778431701802173951533708304100917055212035352561051608752332177368627776787229341927262598475010616725347086498276213971836302475469079914392329102185335414361700893992366124362112465667990309964076405614878801392855030859295468218861570043109142299214736807827500433942851075826178160859652694833743943533990376682330937073848332252508563849736178472214602138802927610553429098269457716850455786463123279204205219451156179688870450122223521976835376665683306979909327779974753190259660237607757836708157283445063327799569570595663125241080570369829445686999111053137924019916682427118784484830248773996827220692221337870456004332551019112438436789089295940065614517942392632015773083446831376518808873384082245334196225986895408023613141035975554250920933463750508066697420768005886430558481083632734012594146444098112088154516228271102187873652379997899162735889271285546334076998864239401182026035547015142896588883266466983414123237616220654812510201356475068698278979881082062601525707130592510705696381943270831365340004732824551295586782251586801802611020983487366485061198347635601042286344896968010564645379834095330891250904874293408541361396111506988170740518073741289794641154884273736937066256294933493969042071040930650419791256472279067708883685176442748838215921556604447454546830906504258610895528670487216788636908083028617063651880648711361546616529472724405281338828763237377572137944377281312222641680287552409999264686315406064291017882002273094137491766440855890788912809421135810161054661808000604441329009364009671484239825323041246404576969788358079329738963054538445968689087157535719471517330436347569546537151065459559153245060791011431573467379437098379484735255653219107843859629295286756537690478507191108629945098433241011835524466073726540602488501111148455822882573691540892822175373395606913053969173500156862805004596714865317907684879724874700845800259337586781706384576710892329124539938490616911272806377024130124433532242858929737145314161322184622740432072740592136297377701314822339635079394525596089765219012406527059279813024730206690601582564018053797364220292738752397088198121367218270059082980374130048355010264238566856841746150877604770296359860815708328680253473509872219147991745608034466266675405899908835057902766091957181271071905621153510250453176657629023807364736491936321515075698131353713244094081987230264323981459657242534362073400887739183462581835458755744017581744047840735281495505426122975849804967790858940874455472034359204548354791478941441785353508688719088269177027186937148124852926257602355012881021233225143457596070319888404146829423194912751916170928043799234930972569517047132859687876526333631489226973306863318555454907227195575355866250222704774597971736880069021131917432347130361547078136215459317282627355232087022339860510975355360010212911654300380971668516259323190027742723407107653803047042076347002911039217400118275357814671315595123623550328808637250905132502653156201738403474824501255294148501872100023057943748872555779913644788864863105848883618732001985829820058693255426700546819788933685988213488872828462469433018602998058290584998140384192308713078394185209473082807686310969345631284131104437323580873923352577808843520294625555189585481452802448017359242205031760111879057192128414227797116009858599500642967262627042551765386614253166936957772398542368089057884968127434876064704074051332177964055940217537801525041658153428840606169746642012477540594833546404575405351460410232022385613994742415259135413763539056199116291140146611528141730664772853472196177501839284515593064568308222363231265975904994140391908400952148407718780360797922497018646394610605616736394849667517027219738412819843360447326426397135152286866434014127097966231176498061895008556969678608655630324434229093002538123648692021164031368585719622170615100033219495322409303004545725924318539590872208160807848047535431775148143631701937762754564167665077374178770210821162695449922284494260114946417916430337284409882293801400120013558070225764542419863740195765604251413613922622141536918159822514265584232599880352997735053792267780846107421639254848084217254230863424928311881839110377730143852359695061118625074470648336214664616804544632199618274499879024555143093571977799424075895293031081611818056150252835339943037416809101119608729430240458317188810516656267527799365136548955334449316948481064312610003266728932775393021295352904351248227326750994263071211476759139830196816954730460292785687709166072557246733180378400725222327337924081199952643210472340901673070342134575293597070590537451540199213570970721390717538175062019241040371557716669316172358387740671701314686389965432087808223504747282208583343342435073999810015636793224868696136603917222327998585873816040048326228126835200964012531728546541532000912025921197082970932265256280696737314535261341337425501473620785511034430787076855468261103056647834172169136027420286627771091664772155559504065722262048924757953049343042307974048713914417230760865781604805335008723041853433755243297956744221496608341138481171626822024008405382310396419755217742288628922199530745423217296111113306856853171734516646672070845163465803734679655911045186624439952929305192762111785696147416663835989583791483648788333245497742829686164878230780740365576528552047994046459738050469307173019038553927236204792333868957268093605539448923291836778881961634536323596842243641022610851229021290462491122489932599748708435380352565755866378155809748664560661850930427066805057968273934377844751130325797176611261488487787312886449009593817479855046296151074237827444739534422444628894875721468249633884101160871763440784115883677681871057354954571558308166883846524374080974716265278799801465560800757231708146140983471118200968631779056496131944655605782837718979911913901657374597685428328888171525387187836848429911659624303364479297389583837697936104915307155311266789328000633535776255592463797572315567633845503647002735444285644580430229832255707486420304933426119269396016867382418435437854789206126050165674506308668147923014578796348093066460430618335577121361747009130941871497554858618196470964326160617015694130218443640183008833004311314215761766384177972266198504764623190931761395540233386639112926787043048540326704023191034603263909049703196046559714634631994820234635149636400008477209441566309575400263647275428157067980382621713557916852719162663158083747514368440506507870502281435230129751251384428392301388352471472531405051075264803457757351346076536191678314401532185341845308106076772289058539421232340699487308626270342276339411666011426900742720586331211508470454679784191411700562514296835279726034844201678155925081420775439085251125203081418823082052010922240685023432644254126821512462270450176472812287375512712587811782664699546531257277724928683293883125499994113276663264299893959348006876023200373962889876600967436603259820930148026828645109707600681685892161400260363945750306258987031777434437519341885428121824359415652813145067920532780557347484233469004737324501639498577245459722690170523854379370453271319840963039660869997955289994895927156821666291056165071295849923692424091131614550781140394471232196548023966516900891570674353132595605614418419070619965805602248496458289446077831398521219579751732840493293099151609677359717138055526234312319998049865957682949184411586117416586337007759993076574035643040494345014553230823023710707330642325297484774770884080803829125109247017114377694894439474685677619672249767933281157362577260977331025602663182853844809121342591271357438880264041913207426828876052426038400369648175427784199152619284166003156278573744411888051302020838587039333080130828214015373085384757440422024619069201492529552426752361875951275844298086123677415585689299255683861298538316906591176498178094602762404301693274594611117753071102587167604070539254417406169455297100467717601239758071105367821373780397591031499981044069923775265912464911838153023143349984104182805486193323665179903254046793953939845181478416023966242537582508301898820830695770199767975872244719210617575514458726091388808490464401912506962567014775590249248260948820537959889265044548894563580754475819666623038477822354845049321548455174546406647482208983426417064705606021595205719771975919951480880646950943777753696082310242643211081943099557276512249452926013807335451695313771848632439062933480681179120820340602658314574908741348009879292090467018605009887900923698063661011067303621773007810492342499458938075628779215628438655136474178880373861183966660076561562594977779056394627237010418310110545726297996757237486781966926690755048699074153036661186734480210562128113136433385048429719599728834187755903880930411556323057415348096140849193128384137808335994258760511697677284413759582333162581092526031385198970467529895661863866393701521427339604064787557525838964759966926081408197300775825547113877114610121437434542415298535818335295467963545747392300184826456054091621622639984251215870153086442520610256955866528844196298686343656281829987283586422450265799918053006983418927135993742741245693596187137066345594475907125188023495199072057077733787897924087108943204535179369036205715710331796808718409155404588327557715200212563362140238950741750709247794743832817118335961714263742756925160045031341917350526656431047218863800731722748250411845589241909419680219575796040699454550828488613744894989372306365764663939972729629295119470122486566402244280039549543312176934769889601603620945915678085763363608341102597722923665197872570007269882515493924412101717690989847231108622346803962477268940226291881668536435793600177559047508057587739454859912891160484441468566960391149728832846522823216113919286736365655293079942523577728235732968304957103183475440540833912552475369366925947936081650366661278430663279929107972824099009310302382530058372145989345298840256336765826400256411989916537213460867410153628502888044225340938076683134979119709390523993097879568880503214240347460316467926069871073498103357532102502271303672952452544991429238602472193034616186775830385664947173528482683916902192529626227693690997229346786441449523614753210510820885829516354566973024470931322540997342831033093941982895106603654463299546359398025828329080346374846241133672826774572441814021127012537035385753397558886487431944569171338316602707992010077369456850300284580455197901516816260768527396397475413212627583390975461900421728562845609790036062240297798020409690299316941229737268365088580985776234914837784860850830220749436852270353864342968439860710656959383208545154718709748325294850820318122043661233552214071776034868516934004070980123425275854530712687551922299370469723616717831679677446732668967460642654678106258913905174149572816399258077036009008111660243966941918393135699020932325103907675402504172130910575057683053515214345935417028394823799767119115592879363523324095109066848026289204492070661798682797809406454942480120973417863360863528346414452503241014027449107910292236745303599724214168762765009820514257939189671866325901852445122430327327458429886160981963228848842582601450751733435001946180779490116534700346854870417951831174701008245350415228237022923898629389607485130306490123570362291013064499627227522345504120234513346183002735143169192138880021876191000439670520626009661333050333720765350680786027487990189471369084356735118936128701744128202379457142313173914419102183705360599335705644762497477371477719549588489312453853940216478740711331509726987468083137054482987505420630438286756505239866298781054218256604742673986611909289018917280972835664270862787787261403573777884663492276442765727582020288184547287852153276406398164058888486511829514107779365655926461204232775654917301187160141848366085981778615232867761205964559862065657906161676231194159346842744490304478168593296669309795044326654792458198461317015399040639871133713002809253085556877799328371804931875851224184318640078204646716272748308752561220232562997067191163619077957144691069990855809527613974691837399717454838243373904466695691717136278070379176778359798312249927028307390045197259889557136803572408320170225846481751315182844508594723536670919261595771062456822072101842364254592897740363594824351201857147243353344764275327355771207794473582793362587859299636781848928019847811926030139788686875354308153355153250228581794824770124299096584249746511757543920853836970823145403007579383508450801977161746115852827181131451605506093470643464907462413852973698459026074699373298006000570000880849089182241923826291958172127231878053313513109344225407503511144089645036801906775351065736052357721716632862924863012776871696837249892522773022395968764036287953722466808590501051186345853210179053275865601195293969259314669157318912162089918810787859073600862948597169856346585524176268208835520817984679611907893325600422980310632655359810879443825540977233523135002828514280151377512476492868920198900835732505212336310313070451066410068835748209761959218579586447747541238151940843405412174471627353529441610317110392856916271484294688782056545366924367461530074368028305344110798219180549986189707335622284286241658970047889643249363559442541805762262969694983837326802946887417767948259430174786007378850890804126607437294537933322621605663412712529493190813612191667686081785027660878574896594316378428119263655559280140155812533422513097612861720468744610782250481926823546274015414264662419320673979439357313677920795833965270718121427543393876905417147956329736460144648476724519260090823928425252656396430766249739897276679087931498073372142366543053487603457189224054346986779915183919030488909387890962471663006397802871193588370941509647542248300080903299224068995283265034181508147878231447798023199232402093836898685403866227928241506282866207465142069338660528396760641172405378442223245518121428266291749263418756823020622850560983640010242493648900151139761186432580908821185113814127241359935768096944746832478307725358359260452357977093653197707819895698472138334804575402427939124748041694903332360772389339446354107840701241036116460616593782981745881392672358636259763115812184333009081281423549797802189170290079628537561447772160457502445087007417561276648690494841100889886799741262703739388730833952950803052870638694003363970261947387884530881939012773880290139900525403215837816837701537508319437643657349337335856028404745035097930914415453479169975350009659376024123884305177879070759225588997859359931427043801172916025296222827437072979185979357239216394812462207541319794632743969193400571995447981836193813333522352285400057221300790724817950756235245656889495441512441659081969158935787391943752487732769632365805529619563724718917874613953517925132468839303740974025686277011122967629915235007513457223972479139562050320735534286725137958083910412768142989208407090099600110408223412668823561054235586905396893441323217424882320242717383453320351707432678842004426503683957457097302126074336535447708018519353911171251347556346618132695200277316184052049280346728104330994027309849470033440980287753222707486826412679583859569429454448098497028948053492510920429335502832647382049465456946575079083459364525120138462755745568672719918788834628826904691659502332529623192894439697529478467139213608742117712165720708043900355681800941191187238819841386472576181604690895810294829445239462069642728212072760386247339094005257822465395699753504330930331322850185219858750442539067838119717442934671887138584455305288167570989616117536099538522669539892488240194204162602461622074726424009071470149990783372110946603723687210373427443520461726688921428473138038645091424910102949939240010361637722189746608751087707522834397367076338085956287578619705561285213332430293809664365978222228690638999868854477522922952568127383248985331185287784929947354648149892254824749502688873983788726549560429710394281894341429364093184354909041795219373484743479689318545678868371332503126006633442799641529410963696754777627147271350415901442545116865797084123492328258158765895276537189031147976305523362948598957837458000721296564426580802560615387632639319213247780921313210119484466963416694722268058928100525262595359136523817764073854445220209886642524054593829865051382626124321679120633841137919980291068805030903324139331005409203652042307275946220397553667562145488178027762661509101100569419907580591504430233908049051008579734614330430794540610549908447211122312755832150344699711114482941173036221398846369074136847617046811721256652305988482714629268122131985060763397707356801160582897925150511402446166335050372235818938823812014240173106615065843684966502237372190307335448911204672755124933161350893388992266584997328075168781301698070746526437414543132687398597310683875301682801760082990075320636578852658973753228632275101099234361026264440995621532642827735293749308017808106035269742260211380651092591297718997042713960519934089697688866741005873542895662233245917307494194589878619950364240804231130870214304267304740643062479880163493303073997152398955654541162581809548794803041170198511770282325024800507774220506437222423376921103585982917647543483149360169716329832923426733403181817105955607069619026627702423134622003312145472255051072288937704227357625099470666019341634612327590347122559873029807525457076955769845488861798105164090435882043091750488436271510953012723501095820989243381447713552752525743051921991745495124182398579281266888081945540121212549875881410162235120242671651985658665871780673199345540745112392338522318752570437447742439517963618771550261419019775434643381855211206724978539082049619003326985208485757842159613072332411055006023714883115991741672689007305250437788388510798475590027930871218363106773962740162011671958805417010196293678730836558110933453029886880909416198858055606375613841904528558187389740381404534209601497536156431838304801596999599648885651920590673493027666598418250620428960123669133312274040435009117320035439351904790438373318293341253030351737877188923442612067381543427380331388945761225703603292739540720156063517259351932832981052177512729713595887392361408196088540280978288867656063776530347383714511565239927796878304992692437756790550060144249385358248622929714201730022734090999004717686434214445925981579878349883154805664980929506501427632072502282425388219987116850165678885388570025896099527914063685744025999975059385189707979713113831368205698347139530770172852818765063281526112407938280965468572424923279112853583294044072537382447806060834583647119719256784073804798201401607796271939519288694976152467823210079995746336631041263153382338474455062604089073144234736772597596772065115471566642199590280843099189243284771107725416867557615900313805524098791286410657954239462828651320428443370603790296724659503271951556633419539086503381501586137974678556649094955005029570859031739695693921708240803321800919541006579446950948364756850633029493797702710452860325816313762722899741810665067694375669142817621065331412077817589728419527292681019484448694278671211164154299771777332252572203291526272879629186403578154101370818908652898446184078473990400523689925111577837444948433069617991440305880490365366525104262831229956921368428099610728270418678547506804235981994915923931603334815238700284635836441332634066089691097952725512165051069243633181843781375850661540692679891162445713136302566353501758248173588252589225803877081549764358001476141988553508811411700173722788701800386019700388925298302195557851384131542411137063438899581446803770890349509656694074072772623519397152401548557577411219290040272304069457023587104479446733702132207238943291538457079905542309726651065148502186451600058298280951838719525050930442586812423881733088210889007576343719152645557854774628030559326580896836021186345830235014506056148113899523469993737775513126913091736675308304573640527591207993375057574624869022974735917990495691308585433033986307254000305084692518310469416375483555862975440965735963212762262271706914568268989958856477190902860075843114176381693629694621430314805140629777359129663486495686630905380988421338988974534138134900187352648805187196999409935208084897482493732301319501224176567262277262049497416089162740869608990304970326506729666521360049190940638172140295217541730613836113679888309839022683818085681185524754145340128060814155796176350845709679185437694582850134032245920362973540453844736119286891260836770506150048201021436000073446272239225285847865638843095441888854756339974567002122553381631101088142054058942697659942814212798764596848704988776840454337205544120121750163512506081666030414841818287860012466484031388797042810187669961248485377843665239894795687902056522906122338287345125156505278865058767757725350235379960248098416433412268896422118500202562448476494951222528262847982360413107699541473703622915466771979567657572245142042773189351230365401760994422727227290085333298928911447518779850947863439910334676274574152575696116303884020554355811669942994179560208169755288142574443744933873671017046632633957955669105436310530854920244716020569672934100620819187641696809922391253965913779574930045925131070224146971069835908467763960818759217718673339338078964006842692619638307720590212797993484491608949222097422032198684186298467960858692630735224867387542646536963646472612962366581425423951527799008740332103158984429433057811113222418974036557398933545077821890732878825954387607948862734825283812142665073774301605121922875686288278831535129453201040526672405855728415020608790715094387547155884092284841172234058773390281818134867803488550112064811644728129255337739041414731961989250046739295164556321160951806338870404955503070435216095517126904929473520553226643262795372778740264858195375805290484525092462666826128133327679098390692459010219488536163361077480026011323896669163734942226570116997221205372229224802043608634924484437204973975381431587489532835372522733912598687202410975106001050458856112463818873479431143878208181255465449045769949042252135733426497420119955959389298169116666655432815687769838297400845942840592555505740659679374314180957003700882132965355514905658856978095045295066359999668511098551428165075534863807195026421425183899822965901367823655917634106051943663879085844570406217278655662390208221888065216883694749101978467257288184556848808261474088383172987435913500523099239097416857189936190581132904653087787844863931588486143631527940186577901340327417439703215803842409350049223236118506457188509950676126166547179223977353832349064918368933158607234600080716266206599046643791227872619083463073224411606700676122040340361287298371364476402847003222139367438860093260804561358652449124827936781890356429158405674625574418306676532480339560750806371635615071101760724694021858214697686035699693691791705203478175059092722584522543134099208308409088811557341672081909823520774214334288212718283840738889849758092794309038064987616753198476085731623287447107078002791624873685912078092861549407755479053253290487863118808583765685334812162515041470855437628128292189046284738183538614982296598901932244342848568980872654150716126469400285164482494737268817072651713993927729713713091678282175603330611528547239739817332301443564012459802739410185483197822959754428419894014510723592903611857233227420978349084047558303655145164856696343766183127956990712372911587819297228126911469291700458619460986430524620281713668277911771367133044693240603218887410711505894457782453776412530839210974984322466814351702987929106472270442436335176768081981215416631070247544101718310957953075154514909236791522957407388156076223566693126935005463867880585369582922406099521596381929304847262519312467844895698369513860933974826871810605168982816478052801495480235196759661259538017622384993473947681922198782086412069482862115103807462928781384478107595909675916975216016248400237731480266224504089019191525164938897170929189103255926810655835823784791771858777433882389750253923803895678540209732339414828917705969544031319099689309394386068090925979204389137259227251377796938268014715256221064242073669228416421464130913927242798433271903708706625205183890863423388373106188020584353402515928923849959924133854674605282504876026533673681130314518851950493793421152582359362463406751087116564707491781878648752871044425517695791438008302140701464266040270470737756963547301159828091613760695925473601096483476581378330241295913789103283304421288753245405131682891507481074656793022347214762891664179639079259257918820342308119173735377992794632578934621099161101402281097780036485444589222860686778315602023186661287956846636094254290728003321716748008468302831261214908905025070964733385837772998207970471951759122892685039544993876818907864425015771267205089414129089645609150960214324330301778005050908410087498022621338840421779990875492851827667285408512927178793814261770309323387844998174044428618600159437654309884016099353228049156117237250348376793597919938267511923520520963486348449802333515484542840800732413765790792930089936293733202081413295299487366856191556602585186096606883714042134319674780851479125343485313543361405346172878899463863225522621717100623827179820320871326572980132406881570873393567866589358827080394816755780687088260931632366634504400820273714315359585040393559205001407157566187942730889149381781146363825497852352678905168057149924053846017453353934298172296116677020926294775632720215505286926310650916861088959839752300853689901003340024955787460106129275569996479021974685821825582708406095341140907068051872121408290560013464569356829798035738139217716614729374959542752374800692135724134480855381202605563852154615924983244382090681648679044268404689784767094825640594795235229488557555680469728735931384001580373595551877760795811707068809869809750638307491498517516210044036363003622942471884921253902952488119305191728574019417056537599943205831074037868441677577506099521480413556306201587184582145224528997144208829125097563422407995468376005317973637185876818674497299871666586235015420689567403980029787112846070442509631146660239861773727591635052439035449775763092049298505771936091180407008106981587426166451197810297605547767875566237457341734715883572362229557034070692240756698656693211628819340877466606366936645945964519478584682329278962297416236006005492020514554785850837339426597400147115405518681864247563833706538914413214920639934976307307221997927677718943191692693735631018693458258522174370730735697802895776723425587893098199039626193510231643772942427023118635745471922096630639054250621128160130274456334581974102133728886054907333562672952426611817464566649572914427916158011252954403967163943262788553629137673584038635885687933159210081178323330364876854319228606126322315456065698133171406543984895014529962773381931353808112133533568938321480164562027539233430347845208728325609674337441944019137689159159536780976519314755069715007512160054784124179282105853654214440628025691905056349323304440724870376237431581133374752162656208222814885485240239682305730757308056546435872265180269900710956862457372817293525186488832778005446263563492157115997879146661402749659541647577314124370699300723513302813952474864474202284028704348665333953647593923455191891485231655543458160139417662006007574311753665026684029925532569100243746007780617238199864276645460301326299828908469703073149314659421680328118219803934974739707546000778070447549176957643887844982346302650318726576348969877621851853742109405454277682046980702954218419393610530156226032683590871589054114959999438343458862777160748125862312667044379719113591524240030448015425304780408442280055853774734840204499228930173723293027288055505156666654163075213454871972977893695480210784092297880044207468947248066062304545630145902829526314589029678015626031162842698485876391766160879898463551782270058289203640452771032847699315224057354435544892561418355461934606761304394730233829788951797215465227436185416173170407409313916691056257114371080265373291835935359608997907061786002045891542086675553889893833318947522530932968020412279302717526551323288540468727769585460866096424554948387944352644554012932923750991877192304084043597369405349447684477297831814323939481741056921351654149942564159998062534090138227950982512211573136493321914822777173595841793558790089806234054899986546204034761649545840902551892241894748667343983474664499637506956013176653409251111704334899207430887094618291059676155724280710705402806532817383796479433363121087777186073234305422337453764975355021960152697358124134929580133690793174586573974629100023582048771505492206162806648306715111752599530778454064236755616005959788186274914085701011712960957604164820113002491500378752923709880557417690245900511428073248576188842832682104357918580195970732664624191344419610425312458421459728000881027219676131135552955695161387381976264850079308986276286170428538582026420745565435110366273339575046688741586827503983039538234036262140776891656198195564647495186223436159886165742696748324354235393228905996965181267390874888973259212744246980805298265809256566504477260857798177356596892816839423393582387271516444123430582579999372236799092002470767470151608122877569969160451322635577528377382432636470024725007200073178770721735377008983565659176408945022053334628057761709161068264414635161122868276113969250465567762347832987356499749238326828847432205467479354702723399870808223331632229457934866164937105205290657744530115134195473917808292097106698545116952526266438131948390423515202303333885644155894959775874524908852727412069420557861576299859859362307971617149370915362615957067296698306126995354409932702102244324587299246277245801780065261033671939396172385221910455312685557761422538470877792473716856227088336589864530113777369516990070266807226245717336772058480914376746866929800471891772068623569989064191502110929104327724188968061883792276872307189050986077361129090813010445877671242430478610769586902199673364274904885607829658169976829815736726625200778392068086878038419995602825484007569905146747788672672560664986403506709911448391770346237468269484650966556707930522334591662596003535606153200569395666095488013242904884843935426815973907270663094527390827087109664506954161576932093828342117384438045459744005171331069525432301583145825983043908555948253322246235546967723632394357530440622468808237892266756416500192547052098315658366817615651554608775377734664776656694085175598521303800402636561019655718166648659098378776761333769601409321610968590027378333780390924367879758231576208381793925293084238687487048015684682659584762000476913345356149749139312086685163865151495294315103432391376716898354268606418367805511367830170525073052572471977217721911863081770187092516421364174939650669625312903751908254005765170974624733398623679276384346013264996816072761903759346990828431706634602824801382359161414182166371517766235241900981775803598215933730922393076091733028050817644412667493030079278399263856094715677116537866319549437983700190206255298257454219542881834303712811784574113420917667240612741279024201859177434626371128540467181118633831741335035892716444933224707680283030724059064950953473798703667094404457204955164435034380566720844455170952728258600442544269211081392123664716478707415479357754680195585230552827681476637058627721489387865547550230973321280295489260424491058986405638409145536017026608756192249943348273987727947788533676916482546344214521415798124613304857273862032593613499617866796989171840574096551412130190579401174038752553107309404795595270608530092513856148512381625221887801331631298252511306137286279033351750091112571262844724949892886688447516531082111507433075943598964360828828340653609867281698127584540095732166242635816852793795849528956027560043384153581526030204757325634331506216313089343283117055619738513725774532404143624370000170403898823956790883215150449289617979878674508995695622459828252739175060418840782259381873516614807897430174023458849930214646612316940231427532596931978332858969521538058627288909192930449859043100513585631606581228717153855131997670481046315115829538360260747005368665852896878375079615275502074109740135569677867442352658425006636173003216498709372681588221587508366782529260350566776314892619244681062560699949017595131577126059475217924844786910325435204450670922274346940519079003066562164137397513648268242328891900233076975005960687537127693781743772444831901937250884757787877650679677337646140142493526496930736332085725655687766304379626282409698561978510654822237007124068590290674425945150271116536685330114299634969730695430491228664878395216896518775333343371258301056156819139808596074028072350674113395834741062494051611333154610996249266712781993857242575043280021177743836681878682875475548373563165839408550586944497870083538138434870097449915851513273093587208167334943424607087145299057281130635403546332285682813076605121875217450243815196796903560205953500822130225492491178972474952866706165379411971655898296414730004211156766004117893753531973390473555055985132010949346823117458680438027014502320437084293257041625292476023127397540147384406600821695426038339859191710472263024439607856043397850019319117664540357929427711813674550601485236107423804968456927960104252111402535954952627634361486234832538767562777518279218358859786802287724137566726164194956744388264969312213168341177296537054474057335366735098095266722874283018097708987203417678970599983022096317148811980502409764910010633637909188280103549434065495758636546354099443942774567722967638220452766819974906232147714243595492311780706924508632401545393786959006779297309904940804171884930777485891345437906652027876420816855039609334701224263181041069187472810387282169392405077257026179165666747588327905820886960001088063767511621635927439966827366394904972932203572632661831222314616195850157904243568665541907579439719613187100612132513476805692298249797216799859939311895794488360588425523818702297894292406087275331977088086855750534938995620876765350778717492327314134400992736067160123869439520548403666539664161368858805328096803067118984703830198790821142070959260548913671085449423639282000916588283980849765544074655153744669375419493979562659242028973381222037412195126406107350591362044054370085208810690928816130404001129994511221045252247590948372183643181811945558625561936700161985290076668976298102369976773245497797059078352046316396818942763400063689124495756728339716872303106616883809945428079655838009187962383409669770082364371250691981305675353963593639714899588122844220826471535821274847476645329492409254601633814369240487708422536373665915096825839568296006456729414219350878908808036430409779075958324690912880090434349127975709707751629885907490958024534075098033123227306673864339799969511606695488858362786268739157530182182656663199702668542428715374826379676127197116948583648948962287598761177923059713151541242295692584924327887916698616262688766919201250123734551794644909821537970255210952716136178582098058294421668374062214843896119156058026440740378083070836118432429017431414934764128229188836979456312617428748253943706602882000708544759657231531180093030526332187355019916367516435503482008195646561797731511019809518665272148152533323891886529091938627577187989378936293766940340331972628203871374926140248105892178922058339062000230678150446781688142558144691621380325440246008218476723737357507405731505634676134146613726990345341297215088990815308640399488257046289457859921131919206367195362879571461774064328803980704861510291491647318567574531975907216360488423094937616734707295325489002862350629436704419681375235867445365399720219099074004240557089073063163899860083897010697066572138378325752728587549381443959077901809792982449404326788827629014719992198854817860842837631246112211207513826480267337947682156572885932872279612679187569682409762657716692840593839764753519465086509737576880498864161948176926193061897852553906054702281748407331972812223399157152793395857093053067778361139379742839475922794651984964226816593138463499759627395832452664487265001511923741016719739883335857903470596768231859963181134792435713522397097898936300227286771741806656147389160145420619920693479791348295888583037659076792077151583533344208798728153898610351238628030119794380649509641250666096592060543845556585232082864478596133822282891705775844792660860196797342319077826878646845706313254986763806460115980145642692769810349902833025212122422640997865572459219857973978463443355071471718519205227669874825127824130986238268066414020150419542273252678623598551035317112232681858757990890940212281188939936099811492248533890924828852423010491221130630922318639449267542171343268108058821722742644112326076117345029158530406970080967812616530453044717515895068733845992990566025414394429463121915408361139192919096787649254330792583016122689241997698122864772028052395471561852293450674794032062053250345247655296349511672730501350428398836566120259881325050419934944694089222079193640958345517047802088073114392889017604682306847460822400064366059790422625416127087712706683596822800649639017116562935207195880887560095971015142034895524247474747291792611390436472027364206027802146329692110341832818155325607849608201992011872899940520318457399994710549212759676900695667981324479007658941575981794905953801833978221682420280612776117530282453657095689824077341615509107839284229804994881341417920003218496469459763702232751339964329691514350683800173702274394624428049736619915326933777149555295587060861062549653546431789898042454683763848425607460876517009016821455235658485875959612328125901011716834694206971197469673921919899473035059971461691255512041860014248784156781633641330906002392719912690644346626802040773585741322563933191060881092852667904445032033555952450937900621257629880861258741280148746189149711837289711985251745198485747626085975640630276928434051687452498362287823215726608933238940167438161121869097482283518606991392241365814373257514522872726779790200695555186731685861256332118616364463445872791723674031436663035625859884150288017847236524945502712406865189752828501267492430851340767826662958662238471029740876725505653194572227551910584733418795231460482936751150746840630345763300435108878249575043235298439632244099132075615998057681704185542333073250556210828505837231019274198372655943012715548953979943756270469347302813063884002765954489153836315807331426198635322861957689554298623374637283871446200382278607777408824676467100238424606139732987626476971116680831581433634546124655658535603878659547660462241320624882697561606928931625527755120063024099899493822651177522761428323751406303729450808218889005427789371422394704437702386915564398686508023481464259850316684699674453607283633782005765783763567072041291221555566313938242095236100433235005832370263275083623157691047635419074017259529977162421059352123539616434231325521244027221753765005971643878334620263380662098189439189098783191950765798303022496084769727604855475707571550609835060466664945482700415675479579512214689024658097031059094067599740490435146591207958764705712364823214051285783029903220401356174194714604542894913612307293417679611261749744255143694208135390798913906934414581263573803764218536965721314703985249832825948758402410943764667868545303358619982693289476505427558964659024219860015756974164251839920839744872459863059138385610300564543186768113080440942630643894584858021564238545679112417925069470529540523884909840847541621988164592974871074848107275159202752049468305612721723534794319856244396053103363632626086505008851573085255196951652383958971709722779791604884235961629819519595015038034332846321202611618226601792468034589488564132824464304118987219369428343683913804911400228050081787311258080635830581518713116485600464714820494603042932573224846902392927492841560430371083569311890880355839028232385421576594323659392390688727045761517035745709273001271078391255763658552394727246054222672373264917221285165921241057849774055595336172898357597018361731978168701460975852729090155148422957811577681502310582898434633615859610374515805494963891215691248271060113234614454797800180132970338688795585306745725009121856903583582783115250564079699430994954386764563239814203480088788258553197945536229215269182954573155504929745376416365903739957575968886585784555211537155722479045897261366917266579357338795647396622559062821514290457464817559848696645398496560333398197867135130321842179689288414937762086674078307241137138312016745059453760400947836298781913075755975800417999521934598427678935794599168960014213592890673794081081925243109394155280253402165339413460442627712790335196451259109029869488706821813365808648248855197042374789017210198053683190983266472827141314259635645822408896517151767714175430573722167917127881385418840524912345801075617800868013938138115930099420356061595599733497846256714236708953363477799380957272797280875753980227167919492252214399406630617715331632023213966535247538076268058704622071708534300877664426874356505526893761276706406443978083789078073084419784268159731839385860500243318998474898779218287803793219185368703086733697463028070084899100641704202186320848340772104394040624713344922942318337632599768469903907988496742412884173662319552426724490493135148610719002107521335201733244349920569766452484140661708807701099073772126579203786085774705971095910027898405636173285430081264014212464487420705339361498350375386734169386239760138808135613892354287521604841665797384002627074127516414356035416494575654502451189593828137866818058289935250473237071639550557796551120228168679852492472147286992291321743265152450241322487011131392608846102223528506682491732880105160585583422340227092517667676940981142470424283427466654140423711934688028359272462390720285589139481312867841791708361191397867808542961477990319124380056271772045606732001584737715523247308973391211796724611196427350837216365973725767868296946094170353127987307086114719664566257349444360914469798389894654086323740271159448836516763362895899301765885184355149201406973466445797863531175830175023756072630274770270736219679685488394480376027951176141392451883134591054657211635006623159978260449779986157359959107471694840672636819021800067541109734382295932007520290948428441164271150049920666728013926691847283653743916934588406456042640529628625205342186106862633749852860065432437748201937360868222299172130223661477111984446740969020970572390402939834385812659795147982251684173971583263086982618560404002403494823913938650511497873014522810695413862914053194056951225216081604143914918598576036014282347334310609819231642995830538804099969806406262571816735760224964555967097332916257678692382195921266283883138046189963326093011058039064170776539108830513617938353792504029858236730896798506962026847414945507087079946873024986808640459206378495023926150326564266865357898699916825555481385580996579552364595475837227777289310481220565119154132092003605061921775046607893805230509546779209064041851310919980204193197401053135468798631679494952500221150274838902894565823451761628634962900937446947119960961213282929514761435579416560410347050359835520281191935129954083670344070912852140633949879044767371484799371934997062704798608079889888792944367185924397160726690609999631639122191880134926734638247856034589575107060024949385042852189399981297869987390233384327309681614761497104369516626717825987593341971490368578877083536567358317425660199111074153662758538120551589269214766595020913785487574667650963488067550524261705134383456716482565638923437233463576967091433801710267392425233778368857489525989780596768988765345060084584412927668911263279030067066058702632665118990627443184448135970215196445966838663855041910721900029694847236768846107199500174465637397855968320383001017687947027695070130148627533844261320956383489107306413746298121610368424994788002286061690940280879737667714408746739855556206819360174497370297106697636988351236459274276198894483689159320803132490700915727455600722427432029889761116019240476142254151015585882568584488095646623080165168924971834722141447968147482464951729163823350875965139429629936328343723053432670968938452707968820450779806152523118043334436586204184077719891419458411815790122548390626810083323353783675847770354877519243757642111734925070263781391035538365288988013968875154288854315942441507059268783457589997556368598906869322189717535821126990177055033367824741783228072292947662628167327529306848204432113211183177728751410798304448323626591051949043708039725866175094258134600708705080714213202318550927963921054632178684761444241206987464691551251171027130851945311509207216046778585357323326615593013485919737498242855227584022709324228969345655783359560624624068300007984160136994769783878623393794121409943045674493579160248062853365373213912137627603701744185110018649528853937899170459177679562337292200202745456196171613209154641027293224352327744605791568659413100408007925568589848042010089852812200168485158550055764459040440485344612824916195823271268381748368040461712464559472449955706568906321768984079442262389600140352875327384945502817126265774697086404292129370455080350687537268490277446760119300649524122441106572794502532295688459579120549023395327456123536608475186494468541609002408868644030497002267389115865359405817164447424862510859194481312364262086631200946337789093720121603698471466631691911737730344846929397133515196541736788557276713557076240137757701886812187528963380750702473063669046147536306641143374767418696972863779837244281929402945853929346309128268672694492250427653967324305510921929748072765189127517864200066970473094548670863471662071787912452238833086277129838610316070170408340424295180984421486360105694211772629409548163143761272127859805938159725017394586817904689019632606823134138426709568011138068691638580584812352373371479234851711626745020387623557437409024948048110473579366766413670013682299231884597303625605992124118394781959098711705259785183408156034298102037441751106410826986347174280538920954980626352988720285743153945000605985684279925445388872084018808981491994086763738163460985089648467787405202075881249688211474912523133381816314738244611781790961025454431377252854350028219173511214682633932635521038349293572787103248187302875024327208519861501593708658221934604819293561305163729857597647046341901487407120921460958114852442109452146807747522074839237607224952775418075687637975475739925044510277354536673238037589531830139396939913462877614992494078861641408486816675270043661626017607295135594036426890787032353824818180570761252644815176053653134339071879287733683391571905336824099380601716429661257007098710985084054569465958094401437670448457683188279634752292666639755747380457372730587010395396188876928084269922688257867654769409231320223355960659410540197710963741781911483948639239717996244211010829400174560564784047139074327546614365304829955149295457752102131721413093510079225827336106593279659017100828105467173114857037742316780766876133335299035193249426050600627141944782015507018498030952364633770337137375904268504971765144953543174157028784362673468408029217878270329989194529223438162512915065553044004398020806223646974584065676745947026555206364295917459023142837851373911113995027859192764212129476702433027706501184341281624816000233826101116020115569172476430881667317955833345275636983062654741773439617956397550230876253130853175450776367161569125000783236490981784028339842955333255605011272865310943008580441979924800062349516149806237852311046394654394731067833054838723998512789817797079573611705095936600551399005956793927215609947346596110519585173493637251746243574241628513438160256168492735643434630999063136244207674189890530935362456452907759944807761970241908557646900249658809913918701617269603982233679136021779616268438368219904325431870865446824359469330393287254251140548020094389790507783449972632750144520814281741701660375874270694917520645118032000042814884825545625130628852667721687233680431893581143308479444471099657768845920282570799353998578064431232677597065046097062277482122358086717014469365570800970071055078062691964743380755595033566488680216570093723465241151127344088126429773776692757028606007406723244560094818423192768258091282881034178263029133941252862953741987984141600627823151957227515592911906195098993195012188292333043856748340751914727454508906178931864404965813621288605193868359622480064698150373140202010745359151886953926383068581329767178764271392071061673276950997890277168037776400537174580787818144325590891979122061434535730621438266663429105019365092599004621722185616873801269404124137345227656006968167154477147739556353859834058527912628324062584501625065581429598322879460358574717815294521692857971367941467095166758089445582502009731840845350631748881485224322022625529111211306434925385259861117784697566634674195061611963619870719433980907460637052407599775948975961260113228102469224181661477563859512465887045136901716487893539944718898370871601736994744855654118642952384115041146112867767804056879812015867172375420157907342744584542552682080845825739017375101260993518675650617305182606041930194275262278472637350669520439268109636732502829824562109304362772875136431183251954209751855224804025204074193205677164825047117545245816189941253170971639582277097830405851993096121043304057704202083740462576130930919154173031385899572442452664874715271052563778249656752846673972555389531257443625992375281799835609192378319097289457751649401090903380919104717337032716220311210633128440217140368195664843297431960022151383518267421857153622314992448589325658835639747632925498915356834645528956550884704247881769223297498463637017920856810556944779859943489465821996721588761193565075425303047391431132860380299362801461854090948355894214023958563771036408755000313249491086733386532575748749637182478384675380788562552955830887515966530311902903275182972329958299772152274583306238820788297057421900503002518841888523260120925360407984391200688450507710229737335958154866089717487593816896924025086949539236037827528896712197340960103652385610766900089883292213549324756808787089526854008878574617237571515346157258623898961862649670928873945977568395054907899754960799689826438442683145297097849857363206017691790363909685973424869726367773948989799532060392426985036730507590260323813872277385082573400279217532616529717351820290504678603631824108050236253716393096884973555235258985195320997309891505451916492558431587076183269475964592550313645263494749983245212039484534292759731348230437957573549230024021389116324539977773819792542775619591503656464554420605122988358474294310068041034885680265095320731643960523723899869497376220655959779489759966586645502851674750633154179361701257167353192174625882772743857998201982265060171913761900363896451451524746154834600704462845491103919826572850618381304612501349120127162484058039590786763354167213018183390924188034110540753724495329281410074033366266733824810611870169478095009506743287851080795673937570951425610329849795786810009581896053429462630980657072535992685489221840296155515259244801298214150234999436769049445914666131389206698272747713322360117105688084839062879435801471022456063604269419489785452868932509015485520989928886366710271214410312001411916905568241794266458719349258836492848257252439726391721594253739368067800116399588848440659602236649800684609301003908211584456698233687627515228704924174428042098706034873801536482110719787243110121296483715942403121887554582690607917648998849724147815472337561999058919524818019771098262949070367160356705397368873836823654079072593022159815363512576735159394934623846697896997547712024966403034684627333987889733957192296449043826001603248644504639126685611055704861678593245937154574878651499531323971269361298557838129347476718516669983891850699017636202425739710709332865189773362165507256886559265600059765485357400233396949600590794862179994119745532131394538624296808607976874575155543768694355786269905534094131052213666523135670707022111537281567352114153278734424570678254715275780912615154943917554921683941201458022940154566979313480576954091200175297166625575368825163799176003509733607465799437792566965865672930380539505404638058958871456309389885701129551954114566176809617202839580312066782281817840894567806791899753216126608310597050021271349186225133785269519267249700299217694245115208245249834932944033903093246209892934073897118645143664641559301875435070267544359303677972797677420649815980857267941233115129294515855489006757796029277165253984375350080269068487322470615331493798200080230302316219997651943776874785214669692561813116255743585871999389869737887617027540846326926334667755844448758914921373071657549581417089317625620845230789922858981460371795593380108651782591085296775945673246907113788379760159325034874566998425619230127128355706538410681850626862254090139581376590928031712141279715638924575526370859449898063500773840971552331146028308770284083737956614171854578853299331058006402652656697989042518494122107668891252583759064402791411605952345797021792546555674522229300420249214418713663599901131561573456762556464486699218682940126503936047664897322303798014104218906519775718290578929874146145738806076354460814052255005600147074985870659914771387326680192777526663551255044651209951422155838293347258362429419412744093714490370083053948572528810828900470881694747650622229734451334442272741339154249172790341378010970561592561234245073098818763025408696259178784920133728754525774830751522614832437542404547227413771094406508430711223520438453345323506027019519108828761698694860421525283362650808647966250981035322845695379748332991784135414045146954986460118153089710446601978875511995707641518491614897368120789422505881709247269173948652575555727805107838298671365025917708647987673583322984349014017439579132261720605683911535306677270229339052816855648662588936768171874692833552845370104553981923095294169234047405571543051276968022353302677118688205727603336917470488755148077877458129820564819679258174737370548540243188221044334870007073854859288737342593967722841685737492026645144650568661742332845266412893755735325828830988056167476903778672443957601049656678927235591214776997623548627940889674426019051543662698458894956053546264133570943955563720303302957531720036930740320312163183054137162852833076514780960063566346190712341626875990907277297020326804045046964444932598049341178319917744836384496436309048914169425273822995596865236610124803172816348212714808575137159890900545508798698790219879625991335931615925022498215937411561872334171507319436204276464435315801595687006997799434320046202828528223956606903026494436550686038618962561867138482562140385201833684854791029427079199720504923403601915996330853221519168710087454309315719646091237210222076849135374405666137986543687856255255764579810363742704279237843616257933004511108402091572225040406392632814968684888704440078480612276345203294570031427522762849869914856828373029104219012007474173319172910889526349604732704980123182518469884232699672639277177008829854084720393527055911838635848432547476164925245401970822110502686493214179947148328332785181664548490876561569488625686593216331283702296806935880128980843726256183923883011114967230098070290280009420079022562902683658479337342193533989130785892686758966039926105542057794974783616353095903727696637244591003151568628379389733756927169676396605550785443287735748585574006565558874823183869574058725833307189747141391625438486025394613875778846003638296226191159824811181266470561149063756438619591577563747175207881027994283266933826913075048285657748115720491088362521531345851572237490463739790336405568067839305639837464442861108237804987189822901118235667438314196233361692184157836175253675827478032911347837837854216174820799318763600202409741347687842884138798294712555537816197594419164728792071235881081502287003167350092449274988552307739925292166627508448525641111957678041594806016730391128435172140877113675028098382245141748527832383688483549632568709706766136359292707675248052352808409379249021029279191729214821886541790677701245140729021451470068214565218955273680694684710402174879892260814282868168433273904687814036613647099227227443806869216790125404007179063745763100785348502254451381044219026927559709579527692735253200020822068123704049116398697757620586072245405019797396787853753959880435341958554793819962345362458901174270292976360922604727473020975590619857165130811257699308757330453816597862191097591662615240360060228064408066848751346469598991792460357199858248185918856094555393851494372895833748856445158980347638243189064707274332153729013364828185975667447970576719783377727190539932503625603311770567692777850385859707361982882515258586679475224653005277754645756122706022242140158559805619549927706823576596742973283924941877386329917182066420432618932251909194489926073093451826027208792721963594040238516307581836897267698602192387450908977618437894395322426856354596202709378216718758901311207001459183283096991918350271452302970893577466441061954199566078672125676669988285304235150064166157940246897348847744443035828129324115663504815977578168072413076026469481927465655510764151141935506415402511306954862941316549574365089866198842327083030809398807581439070368533490205717421254925543983475312699353453186412554619870377308510898608077800195288826410333978177569459958760745602385824240593095051966402752436489664706142198329213385743569761010449610823250446513348997249607526553033569909746682054986526138594836612193636092671382006866483374737059454231204824632789960341189595602746304957206994142153370863261168640070651677616881903327606465985085616246842455414511257473264846989098645336622135515389172981824797698488581616901609317260251335378011988616508025922295709092854445585146784522367105264724193411567314001415376153903384720538577855612011321718344900755837760000899623033754610892407886811749488871200126980156486619437497467335066303831786331951280594852726486814463928191278191896929021241161565435614644828617231922375872838461518001548728414657270898513334188440616157431903004882050101857879369058879140445140193232957662004002662326698492808974892822791306244727094890667918179873233021228285876603035135834088338545086022354300951712547279021060654362361330255250126212447395103259547623925790058404387266504233296170056908651288814595428395676030563671357024214123567467184014954628245721883827984359131382820045854043747881601110476993241694541646678768422688478946979322246080986906541655121897257592833303067862780808631111241759563686047086834619492059868170161927113386594944901875351365941044777700195845052804819469745638238745659689821284804410454106169300487942414219880541368900048987095493048814539751584837332135154330050665929112270993614360271366526793459637935960791145812860406284377919630661057206923736453439486682629164506092398805906394463022005791440099503295826748566466247556019185794294126129914587268550310949421333041924973867323314965047667568021030625137499770562241107627820535924511314793329808641288212063310464293781198430097406617713936905172165034282928060508596512494087198099190797553982207007628510834181858552962949192338425219700154425913600301246581815828255963377476473470049662709526791451659054588965531119635662625104244671687268771537036456540872487225455943148755268722591435604082536392342154573609646822640980284509386932824090468580276215159803115796269686623262662728144138766671269509133535600073718120493055098984125109792619707252404655060388106718128652608086624747845577668392759882090182715925866512118658804922778452485926590682017122000139717810586998485791756655555283249474829591647680954845056775088400282083048979643751904095574392931517228276309459018705562204195070067958218671243345496349848480681389897277849925921002631600565450571548689362596134581218261204218790462027840066056983199696899461917692730228820394398805926101263616609451985674697670365437824940803996996921145786431515616880902722946876924440655306948709927644179949347831095321442355880562115660772413715548671528866417237470757031859596852351430291605564482498079718517846900446824598321897537355622835146268471594984113827709154907681347765485889526183501193395559591025525267857466134643260246914125805040699860740803062945853677729591057360414029836424276920849296345898782647840023522605141590929883096635667723766187218904515744649294148023448617551378096121302611896851657112907716928439744905072155222268696949034180938270630196232818721435712160894796543720025398882314286591848756595130249958398365602715126340286944680798297452779329131233920728568738657646798932597439411980825455389210186723712615659098721060534576300733092604786408217624166744790576242291546415044557344956556318895857699190008078623591543636200545410754212725542736166614757728378792467883229754235364039042149764639215912651815296759346897407888774899911932114827801664257714270501516447809678882000786502641736264885495075204514285006595280104581370404846567219338676010171575478484993597237314913570072805717678634261369164519601729990182364047859537685947694987484823091381724359476753486550817752405773573928050526770934314759053747013954290241123092448479022692964959630586610195234196970007166352994466261449350571000540096481475127450135754260746868934251301933225518457900455240403951297416896821185168315300361136615467790588816362568124541595155972362428563650814902363612026561103254212354142524449122594478270474486883367142090127562599607625767378590405934021165490713892214976806341089813726797603857651000657041062704367473943339020847625212476161295364795143992672376312854419581529524197786063786839796052399401249523103871812164024108104999771422631993006933469637146940954253216908498069754674724515079349059069627430039756796067011383444778624005231455919891100520488514866149569597098252308089026899591804856598371145559901069512465599977237376066867596164599092411971461125972099019235750121826172998906967540742871219272586923539337063874007501422847077985944852350422197493392549635348749898990506518890062208990697781772131731435126772810881774075892077150251903577045533203718525116807426745707383780987979598411321261280555272909959565924525799098535045548692944452502534474769851527184144306592416914631627675756431227325365440573753752865099719445309476088667196341190514416082825360967792432858188974840477649970697728884054401840130763347659831246329786747550258111139819205907209403594834245903022596697020003809817686020615524969725637149541968879790411643603321060141853153572183492769731790302925173517998805879752482850028886425249863686440043586432488695608839726494123298273063148920032316400551956270167999544871802275489767128875032296439822720980097422351177823399844658738243010291404599191476382012153632452084969121658953387239541957758859781618891043310013130564938839908845267891076808689564045270031556438056247060968540340752470548407518166330250910462106045923649490987561378850012771069815918227377722294714319989638871637700166789370125497173526587056449278992031896261658221044438677408750697108163339991732156989711702289034621966853720513356108976796047195894369875799646010285397381003259397403715381432951769358144129951860338072030639540566008041476936214615601263390226047772297518114676375119061463096724195516971153548047459352864764793741224670747981616040971036209818469649170765197900332947070791202740991922770950687893718253268714983173283139503080192732423314017265910067555204516400938490094296699911657805790357684565770842178050033726402022696240998292488703397296909131449544099330376052235109307245310494000677512487380630577875380680838350753347116408599715629581181244598791403713398025368063363721115803208965727250523641071389083502739007424996631155298714367669731603718820061186279954201564989371371465250161458940662728692806975168666523649830663962365005002980336262660648053355728457387306527500789478211270846777273931316291630411765882649642991983909726872515418561972331842479188233259172253546851310931053311451854681179004439435303710941364131744663655341306740767029385280191373120161999698467529698213863388348909562781531569243559778970443622341436426294790585499039790721088526718105235158357573994731486417232277169129366555108161751181803818163508190865287062453145220116597565387642184122289052689056605793624461270244505920977487941000760083566859821017471197974299281681339948915643540638067046818555647600944995456013245834525256393383688297044814769091246940656942167125890920816237223603966889382059967222762206122058014735456595583024886938577356967365951623134917735551447330689483834997631431793395717775681358845251898493193850410803527035706047040005829957204317082157640784659872431400191696334979444561395605684502954209179276497035403407293439967642524288990577518441363161455672970534994375199233601957810530776148233385800759438206690745932444096183085387556329631804852056830167278169933206430050846270198909597871374077899259197496273276575631579549616388884873969406450190698693717050250627551654875850408656648661062761865312140371695198670377746686659482145847166947812275430136468369751518050200104491907758942917732965433889137147215845433454166007662225845014890713376692356373781370521220985202320264633917069939048235787554271097569276332248505484047710842622947941833491808140687993623921608427236004070580512927376652071814069387494518272120003713249128900649664992183047019847506251861159271820291296145167722041611922219736019127239606819612187547729827317041840680925230337329104087636321346246650059308939633180521721370264728283829920527655990897777566342697238943922090064332254008344841197205012024834917431124954781331629157701824470104534267086972826884137523703630705562947052651058466875321640935987844156178882453807110350947199601486653411603703857645246479437119554061912303444027550890936653999997155518752805195914675417615700619347152785471162789127326307551957589684984861468571945947713814203304637350599578725380005592487630912280452786475147411042923278949465897460925100505083870340028513130473896575695630982412206065955825435681817586572764821443568278396035050278309917728262303205507513526878264093584188214484037400308000987249968600118179739396574588449515852057046080589670801736076795073126730373465660726212658790334687110328884040860812336681776208278117969177627448606800576561698002441109177154596589993353820964345636523921448106614459494647504441250301518214516238958481924736393898763040845815903551769694426996181279379793448620517022948571801354582532092084633001073192971006809282375593932697764282286504564445596616872118244872875400310613869202217511986939430411157143428335805306571297419363163104590598389696637679099899843074482000828005567799104457734867710758856484252863528384408027528197977558584416564039332568160731431820043851024998110836458349906153563444268873156687588522951152699157220456530105548256681829079060006050360235671818976733357598110768991432687043705669418499145889198562692246022393961417344289817630138768744991852631401940597660840577252133905732710894791991037525062379092781678297972263610836634828827357990124414895534585880423867376230176874752529966273516661402343977246990143818645618356928730340127641925735983801511399287766361074731403159006562450319382247155144480265232132218298915494879743728858022269497844413525649152564151840912291411643534373166965734842268076316826643562213636781725999333626450550117428191418622703259998708555555916525913854640913375934745791310628284228552376250529593608900561823472825720218733689825870910995007597169837722137717156740080166738872207356824420314616194164837711784964240697421070207600279996098316686327470943312560937878201060739764485007706724110619235748367374158677646106739542191325586089145775618833016835882744842222445146193781842417582041656182719787331865348598886174021307471021075976075518774616060199401400778714453927799460000877774106167735031184644584340492623499271973087442260906244450924934663030046325898649207952528316026417557238181992793111188420033346035182186487139653411869813404867456074595863171093419258608623909987295133656233098841985135881095707149982013668934679472433820229991694837985059227304889965000833327512293323752621819223023661395685077094826875179975402212860316923184491446868654028065955366397263686321850390234277819088547371920172201219386018282035085627502079909210798425773119734048172574353099319398409969242173697609362223166548667997417364397751867701821926840496999976468644845823623960569672805984771327200026624281034246099976298273223578653907319365110851017005356833311243830254179000711771151467373201977879048917813916622575605543509255246683663612375056139475111267213547795942781249195511064160871843548774101303849605364176244445913767316565840605852049606034402370725607982512534281827477638040451745984647396594282170322705659272026559307323426038044069056291641582478030534470723856256761816452929960572255825842527726002177662624571198095470114724596521211697813549072117926658851880389146096977548431699143662783647493219567623448034250113311921731881259315043292949929113387039327329646053367024420561803413357518106762011171614199260796848923624739786110840414700738251520258641052626485447793206137625426264710650970688013605600649251580095943292413100374550595012209390581876907007312892080053680768532818495845666361261435624926228767415176455200423464931146988446041502570700620323802143319042818329454950391112843818455368493832405558248153715080467823863712520933902796700442792529555482992298451627168614961139156981737301412659085936978723670507156343676943234912048428272846944803226477487326005547329883216533888859424623633017574997071397197638051696035127725433312971180164467195386134807050179344392469340978330148240703532521121126223020795620501101484620222622416752586340081828582052950103288200221579414398798002614594758470230797859612561271713300105849674828102932912595860692761631148695383691798464700061445516193125513490111609040553514382929490180167948346946732854243694205326509354114703222596609247200803367813169344981044171270214357611380057432410079192824250923775088250050967843411964788943230952914959341520506864171936245591270426970438356408854108403964011254354257969778109040445680944765241449100467792567168256094447297311687188222062914350681284397140615744366913149427989715611752617017160414569130429012862081185394791285719208208147570511832073490975279107121104824184805450599276769722108840370346018751946895460920509469042724698912832267758655114728661816721423722142278732859208708445513573154804903646427106385209970535809488229477418653862989277092350656517539424406366366184373086663071251022837628560308637643112903502825230706614922022506106329527147662416606291903551093170559812138763025641168566428039020249701928351413194167497725486762389800929737357981419868561741571143469969349465578917967800343518420602179058535040550078290307708531276719089410090330241513156870189899241741568724153037984653264470859558632332024584420795771084029671237827668128606405996296117871762799684239087368180885525423636019757313024910980425024689639356377405885414949314281125459227598119779961839312947641847206806447194459699790409143035162416126515383409854810006559809190167600926710737580530134663481211579768493164160010114753850533566044529685851424571607934474984211393830483000119333010086280934938151860080597809595320001407843504264358748566672291437273470973290153795257792043450796502001871200538683703248991757882141274501044192816482256327571181403170216678637107982173219781278195859726019882956969853201375425624045046423995205187305299784613618052301083089002772993723129132287407351003942276384100778633963050945914500351665885006669338445400053988433486475185056809273513199361074830635808885146954919276083472605726114056676073227853917901352742175634497848069439858138518974315472579179875402708510158665787147803003776964203211069686001055826398048638844629757683554870052497702831281511652727838047761972927460433273679691054047987911079974627146579723389018531747653952758536261929766097611500582487957639315679741472084570360391538088323915027543210431212571903335730925082701963918330100547976992825115910568552554658192297226553150981709546433224463033922497927753849301729385015677844907593678342048818030680375594819991365263773996743536042783309774110565681466895333131609474912412556656516159850823472070532633200883532072003366536579983902774026221548056677413012291820804209057421297616986295593949809804972783117699465180790607081920782855438388448000505580431723059571618522165616521563549789084810723206708549744537729258505632317719646323091285254058804315735860613352870397836700134903431096455861658181910528345669757120003864702665329080043249220384576351693460082266198472398884981607564489225389786115549968106920906509628184399351307306914661083621175626281301291248139018942734389234459785708606172020914489036921105866951176708076834400798261658605722168241139886250780563578411135677671996127420820770497426526567402196193277071751098433156661892640238497312531820345346003784616166674438720709094549570820665303929220045493030272107262580858142262409595614253220201198646784655173649611173891923764428732314633421503294793858265716001136908520706917966838917769934783290897496246714352753793252167725966047611187244317213293762648418900661949149156443357517420721490119681661163222898499210966295077103550052061423959444652546025476258810758647414523630601225419370064517787799660856848173464615289510665010579375834225706715916950913522710115804595455577936966460144883342866802290918968724928664319997348863352516411207371370409239848078932700626295061738956302032252142968187298652355058926993010785202576005250435500212882419579962945058917320724690051044593428863429215823213992041220811404354010973272213072996277122198716078299513063458920763336484850983907870518253395864064765768769971720944938147395458013947627393687076418929935928262733731527998857563988064539038053553120674115637269087142689443196715590804001510571020634020698581464257892389809468503052395080750557165098604382149380715582730192304380944726835940605817815461796670303943136678199632224283840772136804914527484947560766569308763454827118614901552960227878775832675650629699363007908191546234063865878561380681147708987993477774007620329776150615998457775232715682229503981343029869917636907484554799119543794778258073035541563456451976456268119981128455095555390820062675929100797239096520818231515082132586199891300045580774625428842530596205642620181731859063456171709169745212884866497706261244543830703909192624859016143037352800146558029846325337584870356087291249738273243097590423871487083055558786173125917523712041564581847716652090048699098933360420302873471826243654640510085446266730792050311043291676820955008273601281931713566721198386217801099722142850914407578405664421498732940728190440894628011308271530756864209563251707053971477351464381394595372624484979338585520142804721404255699704440870438138755735710841490524117595670690341691252464979312191388489746793639504822150726364125262450958432482169803419002232382010283622530404461935804491326741994114474228770799525455675689291309258910981004872219850706282422720998437416247676061320324422713232039775160822111538111581891519586903298512239941434418776545333238939713231081099740413388609797462944308030485231774068187938344311132077207270024252703557929669102860847403900738364150384813683187289395996205505625538782271681801796714387067349917610357560706236492120289035254784734067101977356947700341478838838731642622671577602192253490175556008998689609817151477771000399066493074942318474839164076431547430869400258742361369151037606901603581419767973327692879537523544215959608052526594053930936185198231975673454001316228652315233645662284828480017484949254855844038921615791099329094347082402346444821265540104334459068865892470542669596034174538506368137051315205375156183650822726093004178769520230767374449785328769635321236044387881795653297348406401238178169724534870867432965471360800919992325677174009424066890449293012667816159156118974274644579796918827736463943428496345466453426628709454275923888079108776063912305319896670582372496552489864246214791124836539100774006141435537159130517819172950273195954781141630692735688433920960028021304729822761866068325550570964289870741183343491797394952984737148545587227000682715519733546846027996751426385773624348208647954985422881241272121418135257935567686162063249857876323577396667829666650456919274848412486113859805213055586760670676558579964081803307010960688279942442843950017981826781780077266962372919970010724185147216701131576085880829587296143239047425235814375539190878046609450361225939690899548948824154890935970224289433299468356579741971265709110089223966380315306611090689075314269438936356727667580984208041593451628191208093123423974472699255773314081821386758497360898626518791893930376454944202198830105583962131571329959538487642975367600434728829206546218870502581915594033630280649804252360791408624589277283199246432295032245691082328393130734439665110112724758726749510699911784132491281573394015235207379648647109015976921588606718429897413023373930509537950165441124420573580728076372397119275932922081778028379231696345926192359772500149383923523796969445839432067995907958422508230590251789173234260466709143277431089012396490540821645528880049012165931915761382008715805021005788791689354311244350920450416391015939931550543543437759079623398167969944307501311420388517510026110876383361073799541330121108338234325914424355066551886028331309254129727922862906640777549439335102551335172938889708026919712947106945143106952386519550443271594257040639397330728611688741175245270030691949065653354422011461968108925369477513722497815539777709736846811088844197140866857539142304620143907940913453864366040526168388614945531638378079387057009645535760366502541404486042197923213330094697344443760151908863824353854746984039861883062933429798726269582416295745689438568168194654867261770475052620619067409721222185896494264549470367040178166877484436499592899556662484299486964894093472913642427004934464631946523967673620134113792182289630591662112831645301270678744375559822580722620661716730786106063414055148802304954056370210139878511665177520976957123626051655383302368934423577220351037150557617540670180573248479338576504322359384751558441292398824961793229055564014640407686647341181924799093641521680184678072795473204132332675548746092086700963543703818405543129281239303687265265021316541221567553758546443353568345631098716601234290263430649272231216039694531195739374166570791008287396562529929430503159494308689508742022432379725417815454950329503142150042217613966781606739643704307899005640946194658775338004248247386826125017521744550114953512702653810283887805136076967952923232690959283705206343691334781486044023967472053504664618993090814056472355557824851115041468367397019668666901149830329730919318582395552929698967869489025204753038689208882929023176321158936689080392282676986456231903525903874504980886782135218343081738604357840768591405919027543787470403968525321125914745843968091517781636298575144064841411806113763682309280638603885272455857608303772062834044185532587259708630841501283959541200136996763571742205572564224711692474819615146173137523970512119335148864455205944167827750574078814218153690650391730030382344534238880980045687164729537167056175248875937093441455032488297925549116136642942754651967946754733316495599786483930323326399162139836308351642214759975494093066661148482266578717580840256262268384398855152178867208320011079332103555909963604630278306303345335280462818111268609589407493349879585795615552891192796289723284519768683073236357479328813532440732295423095217761370324543878663429132923347039624167420148352019012295194562221360215595436001886212171102535575584431229285738964374724338143787714880696525442081902016385483665471342295999561510216975880915915512582085839208014250161243783473826666609335753910970542371608076471887581758552662267484467737104206502412114931508736329747410438913303976949165583552010194248079596903428204804771788217065051129119353383394644223137782767854178890145692857894571536304483326579619989018512362931128859840121094403435643502557675983796585679286730740600163437260876348903979771708647712854936687498032842921083818772590090163964852684744240681354717123862628424230022101109072465720141845305119033140334707288921746692103655091851491620934052201509884286271778175965472296732168745442121249951986102628639638444812087416099781266989853787581487741542556208373624952540805508673684883733539567449633547031806251881712834806380585465495327767092284689185350792162371500450519546093276762404850883107900587475005114361268233381959381150495430055885054019058418017287477871491603197356402448541111425146489828100013292132011505843579158939508377085217526491590394995927706056147256640218286536261680049418102201646045917053391936109248666440506156032774103737516434603860389855028799473193831411511976531257460045289457149854727010477262708201125392184857494768238091284677831699708876504887171522789726658238891751610616829153406432022294883480491862581750524422906539342481128550983657466438145770838347385122148341192050485723454704467124069418957721738013999288536878895999519162974416203954783204594879737064157324935434373999012357341992988056653509259299389439495227725000052790718456490522946362526953859131308208619663721033853634415226448549152198200115503681806110524738381839840777033205372280152556685742608254737694828710410950180014344847878788903345218173368027815983635902047398684624841263290911911102195787125030338895208916849894623730035677082292880852704165610008440089117775076035627868201895462743270387294036314602462097324060345791944163354690034848271211981110886723600846997869471760279767249033141804443226409292248516204915581339514992844940026332447476990467952532696382406890896156060860719968731851241621280328469508852332997621909931704820581651551279481481369831469084771362192897405611365571448061097475944863876399817765346814427482113309139577673268245800611678656852548982447317709230605135670028266241766222365880381317217255980792628649951036500345211774889274615355484767316930849408996241073608565514639711894398258515869009076269698783267078145812982017296922237473107216239983426478606054485850260086164856261859610705132637578679888149694397793488674625932846599984902885527733771437237550707404158597769686525937894322377321122044474323659421838917610194281468393262503558303313901945509406662707513915751312315646526817053218872155286379318118930016692961372977932441177245899779730407904330634117560292974933162335729993535529681201937391366584948122730880410245824830550975981670661662212900962141332560170566460082109675506837486749768151781471900422502569852280576660320031747424530132089351348778922236805398206315039919101357844430827421308672390564539688666702986824782386239487995635962876817106626480266902400069682759778178066097590003574654930240519639730965872259562415060225452336282457086874596724718230139334612068371226529233924959546569399564185226052211369654059664794546936093955444372194869465984781958800491663803369840020125770910564943302932802962166841713579509594646686102393189200581883962238831428396048223510745306587067702406482836884336040739627339227458365495006950562593893668997762290833111600219793569654869909410952264484541801375029103233783746543765902744742449172964600106938278036985721466761366552782790214264979579999405031239465895995554461665363916385559664779674839703480377647507381455778226953303012029785524299694919999367801732947253124586255199183671432494530320744723633105421552244203059954588539502681724324125023016157071111596837544608243917132911801814263081627507766705602208292946290663138465475987799902395804065234082813781692859398205653194286835415642466068595781648806100298852417467614424444413543446010026160880894786634027524883300529544772293144275774086956898090216489523451002490992116978942724421653976653641320693862430121929315419083457819675002163062480979151545888025571436977615637882764764937314921139859879157610777942987834442195422799727704320253198161879066827228397502776107777307669736809027614836855153455274026006698721507489682839364227341485797078410760015848474387696841851763287038053516422259756235390450735224164423603399423503642819585746632536633936262569689732267257588246455879786011529263014622797457595715344036621016813787702730472102040331824355509500563490801837150825928871257537687457868866280065648627217097496674416508203736155756608621028227394076876440084036148748038714960996836843103033162402628788295132404310999872954483370430561474235377312993592361245954804392015133885146353116437780152050878662347067953639749060685012150531646981003510788856252042720013844826436664286037621465013431284797036537351083799806323523278327495030843399347579918742479726515349503833180017372391991546173114989229448086590342023482588745189856245589291189130983865412235230034811653904745584930628570231378334113221274898019898115303983453107054478406938916483832949226325977364482936400831314190398881575821262761427799192798482616454454456319053504866849332216749840205897834400575250818348785900414842372427606941123815121582446283711386306834340056781205243149786029341923013209859906997375030331124143830167970786848584196591355388848766383284672676907271999226372628869469516662979005855101220730543435356038632262049097711484083670986209332896728437643577492442142427543388105780923611273739615119984948306299547730106225099881235996486330771959782160534732370815028889237475188380211576280191992174494218266113277694429559150745182763293398812992272942208956096218524125987958220527771818306741900444626933073696655506973686817684328006434460058342345428696771171455264819300974640074676856058721283296976497545019180710683766062975595158029281857025623828168006283781153136526242268599277944205724183042371097873967203503680235012500973020527636118207073003158789407440696402583928091568145536753991263373877734504685592712619327772002681006698729440607919936612174791001370639532982360955872810773535080440530630960484324351368550094368180123206369795266063206905101360536382924768121295314819338634525604414222206232569662524524544587478992490339939156178245847428589983018479062455734926168289042294087679265867813994845231462596632271803618422875879787499319093940271220813624769868525272554349954155123077170068425428601409548475329586463529419297045372902572797617349193570756863117799628899638191354535925156101741755974549805006085726645396086366915521014349422726786897256410801523945752285795142429978902109021644508721633173101224712340065955029189564118797276930906736579810989633371132543158727236087802453669751093929375907078407150365241923153595401184229382330863913929092302754971195891713283277102202936530773228282054930849214066785484846887915860896448190865369932788520905116805532748388109498264338880313601599159888591780125884209556717847140223886544747296797768153521536039677386338841715014037149655798602166878817905653073416344973764612760730913986983323820453252612977864698157924858982358616590422740795418855206193708176576585655752544177901430874583538767042582466623608012384295024288944818723496145391866528200973504789484092458908899976385288011785629391319370383212581785758010568411553552309426513091201430434502629487538807597824381052977054023370231500379654263194667175551411092972065021222893855701945388095675311485562781116455220116734340814052893535091217646444982160605930362751368096369223034146086993595884749536766687736799949529043186786806800864864562367334743432887682125398614656563526050704113833667209439525989815128624361275408201145276843283282033435495055071601956926303859923522085601587478001230299195688718189776341465369903527656857295704623514510398098970492929274222377190896207308390179543797162322283918591509984472576648461859498301682126909526617287212437497922082014746874729735734374847740004823358811619991163098758429480807460523246633486160603721856049547072306769369978153925576235430915677757177588856336974762720733320865507162880357758140406691963193848086791438072570182968667373847010816262918078539912706123507133214906787778252327517944882235439702181125705592536489941267328639277444593506059076359936542311089370160122975910391666977154377775535671977118793592977803053502575932190458740298443486481713944384715911634024730412719551089238744702670671955646998624189392117968983419065925149754578131259634529170104586660818093581821943765734645995835290531164112720752781150449421532867222896295971694455959147286980786750102253201103216109999396329285233183971403724302916231176178626603336290627422536543901673288966371018891193006803422151360542447581096604772064368781693214755064500839145260957408218093623601644089420022861469599785237208502107945939938277993142639255111151794309310282516585017162627022213116214393972918292638456347202687744124905542796854434657938303845266857247428238587299844125207368318408584944048020608016408532356526213088475817849202317467313706262467054951812277174969642797841027726469763323581183267683299674705926107813274271787423965042558364645110957737354915627694156841074648869016714429545765881762247089855721622565259974264780177203286768385852372622518873847406824122066728574596307072959675929470741057977702699122535773301359954618156272610665084456325850001642101400743056879536838991029055252238764175979535790664189053098275206245772442006199693504464095362948152554487278923254085742411655573144880341600381203947474801002170014777834161524148332281739976422835651394283821786584255442228812109663924616986237099394276231118688003625490109029509980142174754137622540840055560100764390174136179932611621291179698526157473292695276526052490381414418814736861079168687139060946563999386886039304426797601251067879846348830732480115821192039198176455180587134167551983769492904471684780971936280564601623900269436617395303821488492290714207140933348723567974836798284617431123727876230350782799204399990227184870041595467172348687652270300200405819373613431554388555197363857051086443425720440038231261515492627745027511638171277653263841590574259693062482342005648658029630294963860588271134804529731312726490763895313873874032069885901452435904971580854272734291295258038022856930120015988511157257924290654950331336475375846846688653029972921811831016558944038922442434011715399668122446270636961613266320161246965294792883688837877672781628417377663663535562898310068241145521270872688231923871398574923771665954768613882925552838678984987533275698190715404679808268810889853529862725767644847504246571399774361810503530422059499503292379673451478205960418130980420877475509618934945657418850038043471227260044182733287128516320340514965184810499890928436439521061305598244633269882576828883464356530329327925796602872630466883381162483529417585911330192173746012569128222089159994729084263829121186914892351746255943449077447597641726502479948635859907003340236627514939086765487165253918635724718430372683384055482103979544736758058652024606422856759149371908536784697692863687214247024339057642856914131568576834152841219359293972660891956723328559184007182383553305481577943903021933680614769467965294915214295411202075933810994360872974864917428242581896376693870174543026084371871459912718599536231681338649200089046570802470781380553190358270022923334519849341564284012414697013170415576949602619706037016899345342905089040737198854432689667675079974929360039017748021489456138436469850847455946637254155174017531681017940424680862781599543842827050952936275735537889515151888440795996035149720357925990527164437719402922955985515306723592712058107623150929025465666351892060696211111546948428486072411756052255722442665844901001192555683317437438799976664340860084580492440820861837646632226978534351398742055018597422016066038857064801863094033206306431290820280621877025453268490213037207287286697142261965789059844407806271200703336348477374537760547948842257181030326873167390426560208837439846411296823756891714981665944159645547959969382236679748733742997292479639713298898803413121707050034524295055920683913738976153088066058036272083511849016408259654255841967863099061204116430040958936505321149334517181726128133963125620139538332185855362502216542704824245977180997707371970621826302813756269424158269472480802736646479590219002933432554009936747317489135104805343344551711784928550515714113068149458105797341675738660950016232245517202988356845501535804918112396968825658435442222422297410488553091904601711082821442785395343010943641953482098466751983303797342534010488114234774138804853414438460349907975763732790599729711084737292514125397811494236694283735826609508145245214414741001990644608541396417451046872655642602973052110750967405931978020477455344711273586032318305559107410241006701612412031378198232699890074490652814867596589176116838863174967548758941137679815178865034101871310646126803977778013970307410078576148130331103581048426638365119301673934669766315993462282634459806348009041369219778420798137650499990196866174803526414262997273034220349547678214523108592635233675841578455234582299352250306354258992901293946783523169397210224967010696418573819245102307645650088236246366815895815684017228550023775933214521309265496447659583459386230858762556476138696060274174734642105548636724536680117959126612525110945028779706768870914238199602246240686464581858687489976273215957081770434785375940991753726483392562270791199096478576276076667466869489977601933016604643930695046569838040828571374764976314309019000729692611601020296198988382332843037636691557977332466492877144978827908255142641881693853741606897398934861760766453917008733393220801141864605652686787438389589168748506722611447899361984166482468608489229114281745896194369470524234623150628233369595787050538776144257045986315999572869114112636317669943336319130781648767377477385019350605711210978869349648569643355038330919248581905965233562241003100923382329113519753727328325471949880997068668301842597481255554299433754890319865862441816596345939111498964845627360452818324064325466009049817052299278161178529322056969029776641529067010292596573049503611435411133447425656046954471295999162907320424812369382032872223851943407797673595667205432582821109763696279676713937788183854123753078316509423982748276565302606642098622688977516239746065663732931273105074212898645567163982050398510093895437148319213509365398896056591039756773950647009284484516414253863496148603210839946406021021456133194568714367757901880738917474846059807359906818785260742502568056149922915400209463732328544667136952025309983600967392489124464143432041877319530428830718209812983707674065537970135327102228573042262891592414520067555053761624614792479532301537906045403339735235021656390519067908920571262851235701970534510114551671479853628009229833944345292212339174422547003257962285345384330704898136318670353368616697897136666963572097904490941645722124523564297533399414173414908409116214136285790607530433255651358238335896105300002855990279327117828900598374847488712889274312774145419220667500898125221947949327450651157840638540502494609525239804004822323781986680980709856166324570211289355054667428500892967127785697175311082456739781321003373470754833347748588535357513046131466937376472862282805115875590798895516697938160315306621438887439431338925495668176963255014481008630617911055145813727190845299060392206233062464264094342392553826604542553155553103265152297581594195211099885411474407483627926050051271210743945772880864047414416729367044986359727836125977696297178458549575074325377566700915712788857881793825695554437025679087266718703104775580302345126627939285534326505427604938414182377905343061400850903739033546519193391442439866561884090597038826264456425551199780966295008676581360941054682842512029555508714792857011942159321353361260323510726384919263763897691457591685432761697414694391046858691021838714668305948231793929612631038478469556751853175608206793397511145618858103898171195846086667635809355167576263999465600117746244066858107922541069664765818339941776635838919530710883184621229926615953052906674525773108185471579802494521167449912314924551420045910314955677419258805978349318206536888531394319903242709901348288990162719803766718118326179175055410302195786836205551364654478070310107557636573346783143920439563563118629707302019595742106675003818982896383076112224901971951608971225250572073407793173049116197267414908081362879115967659937545636126732118973545901768967691848738887684584174919623300400763023173448075967327200278003592340407405571464474931010145846648138330952858075975125299948006271019556338895162539188942751884557776755551431154007096774722661092982637266970945608853939082526364898825335087338919682351268315827674272100284094231883750404364176207765508603371985932982117135650380870052089236197177128008861105394558671251127490969783280990244515658713832822018552224432562625717430022018174916254617636389487754485561382946793637998797155859520809969801624654367405863102901968041927738511386764165355537705089726950291924056857939123198307798986174327312109839409228332927558234631415415756108553263443872443969277824472230667313003150823335287888228193248846625484668836830008791922808647650171094782987542984697664879883832308072668732494451741660430824831324547586193852055038168002055462538118857361031226134036685696274223487126070453985292662259467923439087469940668321861007923510042697646335783667144408962678966646651325020894353819684628871410822012774333216821081144200927341689444999318035693723796361530428528877122273510904737972324658156795195491252849953953100767154718696140125660140129157693426276426793927556603744909406483717207282906815241939925154409744857381926349554747769815907142124766107113722474265894312315396763858971061775930568545031476205510747587740930120415094344931583896083175727080341982390948693868297797683706652506253137887906088488674901373836055517547956431586864392488204028344443376772332613938327375288933453453694790575240457967935887080172590540489950598065248244690987180173431983520902447960590551444857471317152209787248960004741428986023389552303288837928985760963663321671273441593560905269757519427397828362120964567038022946054249115441626051556883817370675798132776464160138530537892245703386325416830913759764266361813493233684033478810364657821339195095694539656626687024246754687565497247052088656648010421656425541826115225620944086873129995484503041360723693489178223651561259065258923562393041314219566549841626375833183252916071544324673793767326622248827830249227679100463796751273468993249036406375808418048800133950216257564635065680872567345362000740989191731920294747279281090369594511667120114789084068524753255128691855698472078104446914311748171046475820303623545815567511626786396670231381828620395296159577740404648153407742680244084939783004568574933954747932527821131135344892139329135632459653263784888286398043231409313107123302106289344167106789731066274822960129244391316273450761012788081801767434016293117096012836688410332507816978779195066489792546073201565224310628229884842390515734796633170592111272218764983469632744538360769390705461292320329491609091751804949444127881665432432740596390969093197080314355237385580744956440889865064518184002999024667918861710087148564830427604073791677470398200256784596175164705414461028923647925078772991606576013174677535881719068648439083036760883647010567036369008264589326295659576106685104545711714028175411312813135181926865603837368926238611233300927013269669033460968370646648770941701103184313965793832729349110375979267746262611038661810614289721499351628637190318977502267274650249897631450459185803717279572345193556999026143790870116888200340069833994247937274164689610573536060327855332309550109793326317233942002909523615133777325528751656458172599344987760369145619221991898104652264336970194714039115980289874666237194023420861292742740254256903182089406867237006078394774104502142847233300129424407195963046899059648557679522081720386675154968797194025390025033573465132022130249689749156898923583341581610546254218761684457299401623661638153222508311556952678389045651248574836325528076755364075708148855023622327792727380044417776039418565732051176518647810352804616345140941891843627690035414884213739225734154197865787637049133467098031520157013220932765218636463130611952010445674538620811908908477419762833589190687205310553371424703283039394239396713415259587759155332226826855379858863871531224380958674403773943664094139712362366092571720781073742500097994157114942878873131457724115751977447960694429549374466090929515916837993353850886146271269355876164525885225174299410039616075437815479456682646492119060532575535735787973517862643137907269709915886387368393048361103439194831342844769089137921991350881036504612678853001698466818861730643333978514963388830363948390175504260385930736375091897211679157244521618212283177935445607111929285904216170859795171823671349614404842950066998181281200136362707677293594652772319238210984749740887406928811087211378198474222322169696625139944590899730871537258480349638695816814056214614300420094008462796972417158961642571098512263317581426595973882035162243085039656721428277314788660727403196750869775156156333634626928688284055349331066413170045075546668239270716014398158074406058244665948436075202092413049778115148827410557725641194295173294397327588458698570802506676951143557999808793985170006981454888918712533994173945120190920608744342011698702323083726363500840474785307147178171680256548476492143493762017437481565186138641586151531989189704913792459356333300523110692375171333936316690402923199897217952270060225160049831372986205992758462576853230048723007467411170322266524354685514392344708475065147339161467606593998610873357081363455924929204276889950958264152368863357335913007558293619764844701104010853917793606764616623929352420054354042179276933514515306806812613251526902996690061562373511156351156683336771967277124595863019839110829879706599513040930743557696599942205743218173628409222326362269668026933738810033513161626050038815249818274029503022618469246209651450983756091496805508453395100431629042724874848022665510840044957788210886940765097146214549557757206048610035558272994043163085991944622259692793162031408758155256055290517058685716880093269397005282152835026950066543321296922051604278998468445312203310410153509315318497475420447868900277461244430375751775712762724772831207719833060472546596191470712226761576099413273307278115215023728965880712984787636841292174679144476222891507957482027438554221469920026397649400432208217750764601538899715641075174968255878328878538263077934428314270199775672342236553544281688415086007071220290264728379198844209551160996804657088018131431871111736022034282089359395928334977238428635337330432779676001587062423411501610790378720056591262801855165953005264728353108219336255909507514147104537726198991071864774072639754080002723390340098863053159329511139166817876149263772704074388479839490156466253007199599335531793124513862892486808199526261408845169218029542705227391844746234679844220198847233366861637403336628347673723575015920724971168819632747954892492448295873469460470460663531160311431792561979153137859311675348564293416338766430550714673962859022724778394925139850563488082883293871722963782299970625073406082567852989112210044364266046857668971447184865780126546292108064835526648701431841560655328469907139424743518102982304340088539102856665494768356996191441559437327053773091034222352711615089543545023720304682749209889219383509360748222209689595730503048232926880230609519208643955624555293833274601977177365310878253865100325772213792131772220504201553606786776789893659418927875381087049509097896688450210751090269068309884898056466510795165666433220244466903598975209417750419468356539852733779156274489597180312633735648394768666530535656491008119867223926084736392370658353559968549992220328032092545324867506020930997305117960074432999977019599062492788667118202300646154355663017173659346952437972099998866918446857267459705586547020667556952265559385125948992222746369842066591169912855596032717753881910637500210971189014550193775072050753817722584778042688331513914920837759764613852280802740649743924533766660861963541122373420520874318063326692570132361434925807544658744712679649220541706099187025803179199357094523732501488662273258752268256178993353264496381361814522025194351348559032444617996842666244522622728022885768787215740917404255564795053928511964387817226645271223014517100600287545514943056920449559724156854679155034133903569648389830142768315474583029250439635406550323425926035263106541212945371395260675162175237376954352555747826102141588748683367837006106193252125923582472850921245786749111524981101039100400329912768444282150949168512841581000863840239538908810679182368286523283225630587794107623154292947561138117127593980129914107823452935279380074410029037868486593134504714649426618734539750339209820891104022427950238043029617254753748651692303403068637992970479065364452587510068783570330119840972893346479370210258672172737756968254673083103466614920382483780905963665552506390957889898353908475448554032530452210547158298833127679183491429720347153363542249110202659361553099120686795524814174138484100703462775798855245921333420517542509409936877278694685223497518224496243850899724367332892975597831242885398770498398235215800852527038542235792527899170377323841027237964855976725117157962272684256050078246516497658627182123539992881653078581026252019788878408306839340776885431320179267847703121540628806882620236696969348504281763686929926652505961073225335907485843568749607279264680636563489158288843287018192055772748111602799562679175977999252915220138566742561662941575339054812401368438307466164605031375780860320612845891799671027145985962836349431045192864474022616425660917549084444620300178476304171216939540299361534457665742411381890027788277773073238200903851152661774495782409746166511412229501139548219627931979430621681040876204556566099264886900967217453197163837878542929320997261904438388104820177632635409381166336203113368618261994919870474567244201743511869448774262168613833000160529892796826418778203997332328141311186473838937534906917004720711555295577236471880693626570803764345066508761728856893595784270284854377917706855759349671300153388313845657604594168005404498277549865591205110167680658883424165112004449397330953006419509789049047982804705865621013783784688325251306002964890390461228974970646798134528870802624285192375582586638830671228363969689257603350423486148532246019383706871161927313794470716950828535263693928254355749488707099938782067923363576608521564399187494142159061088865146204183222599413730777888016216056625963823531852736604909932939663354727155837629159442133666094469813448936690383689236031838188636821516992025231756786400283004930560789852046315472515841858011793679026465440422105613807243799378966474949984594110562811383268753797201664163285400804774617578404922241483731367429039973708847665124462582429895620247312363451024906374812386847344435999854133512271610256231111353820130848928682549697955979069204175773147727170930866999163489114505670260901186198970889317568275469868102940387204393656822866307335164596566036073800651118532634193782402252491973558775935836427718547688077429175342967736359559278368636141583238471241449139777586709644330664104395745241900452918099988539270847901316592786235039962931881186435320882385069147896722543896841599601484705851547587284340240369105282968706092884816836664157549001002486766243503233117371498313744897090826101843180370466151879290511009637412431810967871633270678459231293607508101646714543907292119663194894221619233737451589213449180621852347200037963523538641582748179905133076991959307219621860028930352130646027325937519031405659775425170167505475864118092665552639539276198888459533881041369918770583954102573656266475771757569920045229380436959572405070491307276118952128474019033681448241086150255696860445281767360996019731874250439774180022760657839167784523872246639400724434839087186736707573253813908074603710505943914357030756347962420638014216985139372980980757863954436342130662823599200810711069148733123693179931884827672871925334234654281482299736370885555271245729124713492684357252098107523279915161606807185950407371487387469631998211467112703011285969588889000982338334907612491978881371355342804712011167840879766432177980444892987429355094265080136987266205994573260829247248373935146602847009921129206249337836260495023446804610684404031308725688034504609479226016911571653634825396697458538215157604086028273293448516897072835007289779976246028324900720155703529725995197981032278164489107499227022030044534228143789291119668968159011690720316605284204970622354876978881294922800059031507421729789013371062390290965503218515584717054789417566694396886178183206062060703883432134224864704239068712579578497062978225423658196681125627873615674662469551759844476452456824911557542687762830332449579599552970702812628132788226377932510124091264379486037702875989158962095778103258555604712951440806693371711786323952041061866382312762229232783837223296606586058846801575334637040727474220645405950390845056770693529961420711149509964909346373408219466689811156919413440720416655758579373799117570720640794370501024783455191545815374575812509927028804301442889354334871785104867184686091178706380489497887555247021625949099842341367874018984542427998366237076670501716025950211979939493872829831258479695550190622430221292104366817717408816225312950144281393168002456431145193219319205397592215749761381176370284990715599818363388038487833193290278536236111876507869321557414240770933140870611719286789727583979103012146832557252660828611425613229952892375380631561357208336782976663553354596922250424344588336001949012721659176341930173022549103590737433638324237268918927416555481223702178887306424041409387462221058806264014223339715757006655929038333981349490971522708073434023303860356346504733523448306748573365153419247083761534446701074396635259246268447995398228267703346331552219599706365072921795719381250772551272173185283726806313215102002296221581734278391013692554194070980417636414084271254809411904427946658923968941797540627593110460748046831436927154975663234475302737875648429308174951128399469729785720373028149343957488628872137610753994143074121502853369111440088627953803007497936654741384286204279257744655777887924366639754529226042267860846310971591363887370408960227638947741902874163224450614460535475787162157381344222130935839727428790520681920056123103598080460512809249323807659911563824463597579533895290836805946915121894452701914278980954171518066224775545131167168445355654282914314432536558170245255195649697263546160297573581981068418637709109080542120117309575793285480604021678629113934003481716741317703506640757933648520606925433516214677429804882116240800968691991582174718704934722723295227334696950355556431367206578018967928322801494679377228981728757474682907964577812830885477232413066254829045608684294870126354318171890448676606734935930611095619451973631408317180629420041820141686806865900048828728633959037509278222929754348846007163524100571392336476686753562846041634434626512836826662437109975015372140250345336518948198484079580604687432136034586497702217038612804995293750673372420718434313001631414413684783809657837656740708863979500670727772419922346676705058590196590759131229333866433214802820304635378670430976757559219120947927962294035674338402566049103301932102513745328773774700307434802742147629787086026969810758235644471378718470900820590249713493872539145278640862901690237417217671491696760499992015705071955110155197383440407382163981452679578578556402698180482287458112481501182651708575330426297141113362526175001112770089907820171471346289574019653190469069291214021104224068434099118673287070132101690729175178851523477881495956383387644491453010011717848797477087555936568138748914180563454723366125492338130765253384249077105900655329787506805023716457045740355053721899453704969208012116677007484030669024622254643699913425616712782609135910988556312075497526475136312840516921003126331746002723899118900774156669135668299555069291504669327568835581534145370747659974760168770435627984096981403569158864639839816965534965548226218251308841298690002043780279570706824343056382123480909644082294135933722783361797350975465672999495299619433198610932147518667914008736504308446429639718058893599730083612546881778016646665699874241214169377581851162048972509882073459273683555033668015274521686555797000602297190456580790007005260118450861711849089760880123109217700293981428648141311015466194608324112827191853130676073743982562660177213306034452947691334032460916744733200222016038457215630790962593830302395201303845595914472367193837962938843790029106452041556476888037692899729185172225441217921962895146283085763176671057128756586129958383747351581267908317043803876586536788122898421019080943650404527574465656723601582951944449160321688072867690123052508221568903070596088870312981412299621911802101997519700759687188305821820866635641988269191172116851025796966275746008842310794318929825128900354430519900585463396838406381784326103611773537360894633157432577933517414032521496366712905866331145106312933984775615291417891239700750863796529402005444561303561800442536395064827403619806134596844988686319619906509010814141538233014449072775969256461657785620381484339317425229987246200893705654645390032602849107582894884267629996656377193681858457556830805539620760812886626265585895215455962344153680853275561866475915562555302044254211402678649580297660323403432777856472146080125748437740472143836696639708044247802663374759370671381784343433326392858308580514058500314986202619080337694867984999585096719973648525771812394468542229013358153703931792409248264812801056590038237829405778614221464112236354992725563829013758007759712956656135687413507848253983201331626649190734237348766986603867686569466690072397750439580702599388444237646264335224692211704101851581791779715105740176309558258430688436457820849855488319261782285469666360162097143252430874713971401676011939114438317797763799808072404260508602929165568781217226280302426571564093862321876768340203799318178443925070357690052508011302367251855244806906979957181232920427997562174364469877764225067048162477694215150372601850529242801386278530213476589737748362777643698748045556448090976094762782338428784615264591149968094250624660856782823097855903815728703987441579722067626492399454588820222546782136916685567388726036782285436511998144902431887776707723910268339463950766188671966343923710324208104991113415107647019067817454283876428527631545932627142471506125269411334504870563795356939584836361485773233158143299616831961865152017031400307479019322736578991657313504183805032242255304208026552875807867006814896976932688337761939338298060472326369493411402915658143173631679685061677437634785331138910426569042080935267093622941468576778136794780870168162159004407712770378364858014183859994081447005647128861178720246999753144798056372553816597232474787124982763782138040399369896985958865760894967297495803961846319419768337718896292075731496374737548029978800334401656916608492422881243952838421107886564442752375432781391952122030172994566506858254259781690293870873441700974652523319016528229898063001672980923676405462733091465612496246637764477768992943842071146761923891221280681075538840568186656115342359425156986009072022923957411061499747742495276944538321171777069693068159122071676451838590582062939118916991454217796416580751857879906998573726005840481277305615317596471732735430825637884553105378448471661381630358447065675417778994136833700161781626707521201257416401592866962149434146424401062074777461127577787895335106080229552768325283928863394388852381272652031271199782500181158600678758752043981391722253563358028428812249329388013523833458043402170042048409873161020015800184244813771755308744231666230838668276893660795058671138452836319059392028242059993592608768586659578053229986067150870231054312279849213696302812439847188352038490732528698051786350049809948572139504197121925710159157973109914249047271083652626933995775109524987586516573956728173469229793065059654117113244553515186112662383835141760648496474481317270697305744494588194211144091549259262652241253463209281675435163726138994420483955995289692329500269675569499524770728973630983311986422776212640599290142671187284425014524929775702597860587355363869204723778852261774259476701668592845059000269275412043243461224192658253414198411255332881394856438722819135735477025257553817962559731877299933107050830181342780268059342188694288655189998942712809584266860083297256056234167999110649138328803158534294809231461778761898902322731275260616818589931496823592745376509639799358663431906315984860260836189718763462474300830944612452054380977594713619189201540650346202422663342776120187478440936230938309815113140954857338227082890522464755855829209504513833569502322540950235770046166098372674167548112900784832451123336177356874623934334832729733222800927254178238405031948583527573979581284208573823983827766755192071963760822582767665241209789499063335587608927125534311141159024692236479268453821012461988265878067741952217717444691431520750559950818285641456056172120979614322101003803890200842779008157259081674680560902435597111194737692159668480146441309783526956118932933991262479560615130635248825496115452718169998531949057358680901287723787826298445487177626051270226459993818827280344219053092171977135371360339441687803070521134347324524356366779048337871225898000317789876112521397717807051610326556249503460737293753752985295148538975973265170861214611777095976167671638132298073562349259324254836021168882512512467020590970637614149730033845705206669032232869652805484527223205772680448905151268565449880478507114330247542574761643413117447296533480995955700757803930351831051040455137365692796634316513988145088136442176643039762343561249155462685587938358004271406076429435470283347886387201889584835563746537671396020244946260908450104916910285158427920786964495125796627047234162214412765914711043667933132566025828776312218627521851369707175324475816319481993039035781994672088402061962753219074363500462252057055635091493565231466994524097554729717586628809470321757985541982841016098832485849217706097683084235922211441393420539839075474132162037783182465304838810460298730846758093817815516308425636172517234357030681075054738308663476375074771897873299374835673793682264856463027683608997910782140166280386730122922387450755341230909381613803295882416384756975354750722019400974631585884226372737664814076398231606728392691089613611416632385009444540036656185493006813174098744442685192720162254402798374671508406492996596672905082481311519615482921659130864147660521497897885918749708744489612449763183707142756039875321069294415536647524462003513686704180040760050636124879883998539376844480048504665665101795361539965395997077429962331128410095844159180242149799426706705562644647715286264298840869754596342402938825012145885790742339939787172484533873302136793614865501078773887166816013145863010169402021142978840633169180881179384599949419651677502021151144918989597915284877100304099869885521724030163135825111867280728789950844766904009959497601119059368638179403345965247586119214557101162984206183860928881162199124628030960782051148058253422748814114108460737581324173218466802282785433058067661184911080450240133795700748705623558233364506902095046172290781567369900087585493948583958938795421255730366899782599324900109702608245750311241190626108899978163186489769239464042163825109342726325756898119935013281901048207067675254408988830293678447579274442027422583163606573674052878974367521550915788103456718519672702234921070136614873743624582088888925940888643152505240305232149891562426820745482974644551319932849617012480436681632247343307581760989627889926209147696255308781865640685006077747834227793864704820415742389353590955084393398525904062111983770456788361371037580275834329710283342873312852354057334697483681108574280786220418715333534544565501988776596065990151229485250953181811720001046977368989745077400250606465651209537489610963631641072637154931024995702693470264552831514533810972604654002146039775698872183738573195126592927914008647766057433961848205250150803139422583636654156809780491547902943473294326859705944014731661123374717160612382087395861154295352497491907642629881541111955016714247744925579023594511838241600991424714816117615119209108277148577431096272810063085564831857861240169025938088791300440673371330747445971885970059661444050822433058633288782919916432693758619942860570303985186734494518106949954565347103988556081159515060913360041157892345792751384566689833305087508488231967399030609570757406775218201508128519285280576017488440842605779716635817901299464542467888638204364230202282065958650725105853569558107024363546233242875984273283647245733423843458015175968483260453748267796853871566199608995602488046534285683673974595301794209660150454748967029433408712880974172826840911883055189015327751409134149707568411902307725131666417484028435823753753945739529581787642137278321566541788259433147200131638038953550087030458392880620772350395068287818293331409744161558462392988603286031238327266205505129625541124483093050676329710567137206491292014535158169621140388182839229191144680493567833106321912109750294096354033765926617535858854550315594455170968723400590103262883350140203919961531858357955086456084034028783903963058654742289759485244294355440786406543146060250466235057333726838605954637854293105735113910984389705348578158644732598303041121641920213721599738310033721783691495338355233124064442959128990796929138953426740530565989662928721012986374572000977631688641493889249471243364054084927445834257833878514583134634892181606798122164239437382143666015619089480153223969135099468133571887204753206339007514883480540968567537174852795871578443420229026970720196754406404175405144180425931999885547289615446576114018692746995606100081148609808416609274725766289408375607508657137351003286142704133032618417169317175012197041191868840997646423140448024411833937720729724920645410060996901280951555611202632851589472349480475685455801963404695221653975402334577605022506038594909120461904601066127216457231908819582356779245719759167793220505640571364862206277305966885535558318034006474587602115560190715509639149763225872926462872147206701689169048479515969495253769549758954833800014792876162808672996281137438709390787025032613844372188504042190341157459263024329997288858839588364531056417386009642335456292157675227220423913208169857181647035267366929572776355734281262770902322635051204580593960660951179179952705207301642652400002059308234972699918334555224218048743270701357649543738409112918463813998903829230614330200394226297014037385938578172660885422088398556706973368891344478164217518618784469191829197722131159138620081439438958418093450130841157275298515992155650835936552179035874945807925413219400640897350762482688150720155154333005179467498121299861964675991946685194546571133576437717872927341882410506225491167862150276073858311998590301698756794307310811103506262503417247340612800527376307766261249299832044987593940303613962245282786125464119777350595522589995086069063133682834201295711522755597258841794209748574950017653089111104403473956871978955376700222896246248541082202022011863591941415794695464368533163589849406468541611960331671705565601050264611039119911350190942870860665897556279054215186732871047585337557430121805573441875531793876738016480734460572838643372863440547535289273120810065273642458495145587045261683472781177204657356501272772776748085982915724318328442334472337759461818559745783529725342048622987854361557162729876771873967338760158615779958169298303924876669929337364951890482425269143845346991602477401400520815997531461785106645769217929731283125340956563033815094375452448040934975368861857048937611460838705133269655085811468049317444677884497763718014395416730634250764416445028625783669491692814312191194217738811232444197740487093895083255486515507093515599330245646121003109641809177571180164800773692668819431068104222466933314161028587011140827491396926148232092154491772597875152557543909691227333156715628097659156819341447868055501679123656654804648542342945110064611683242558589858514903912782522230078141374897083492602102720515679118354940926174589834350331808399706490189043734513186790260158778901660355075725040337435135905019595486442993346824578906579623529692466941762346992147483826845660962055318510801197804808252546435913755735786073113090479895021994387524130634036198104952076460902012428197061003425279752103565965316062738148376022064349269344576641935928885669008086216934905047424657044040539270041481340748197055965137829767754843614473210405000971105501485744024130424619417737540574598718314840754160647474905973470079044837984181044537555005151958408010595590559036109870952789868642347326022454531143758257532134699235373648510800993219397975019433602730991022017644383281810408665802503616330750943217263197127773676897490155117686581466036229328161040107518577976946881651698426717580613546228908009366164991302458205476418353071952916974753044671151094214232729947809091793858872906371132711109869862179424817123819412253198847443643974508751955429920144075929961070782446099010496882658079271401636991698711179059425365680625486797827340027857735844255636650286776045695911052734059181339503288411607256054055542337844486915529925321269515057408982794689937325657792545132296961084862253796288327859102500068887866259180852981659795440037856619005861481481162629335254082198196149871608501540373562120825588188697262556837342570905406867514719295940410881154169107562723051155256433982879321918414397859790360953768985662653537540729346901137722326336302104847202734975499652669750476145115748305210508941983640430668214491804506444162261249821665912313818624742329349762392031911851239895665791306492363711642167542959198001520829019389682294215575172357706688250113406770935547839747622928121480469216674697077563627585181971947598831998657412090196380778254647781400302945104626466559537858772549655465975701824034757231722203695361899548245419888957292344854408127317675066285592269372963971578136047327101215469972770491346529327543914472914702356189961786354140313513758469100674040106909130451177421624151555356188550596370935379466131947717704633073252167496717714350577256356157784707798101779670214703468014286997923309243839624900940816452300796162243184781559218927917949189044681978832722538198163981431150135365230325882586642280391177808909983679894764030057000647811289871011684190069678803954241656044102665525243532412408366348173284545996962318374864931778223951742620144867469324015251649853799730296649653865480987296393791832887959462352341734605147306226383153977976656203197580348126750974271082393646890841559289992208228805040133648897226083638353744484475956974390635628107792596364983390291848338658103320530915940528037951462083827121828992327904236199621011255446818704584832040747014109732434680021138316938044097365806861776205956048261420706201188913021856661669661764794651503524865941517208279143493514377715966356608661649515112736838651372070674656638697954966039442569971756668253349055062047591898741051203808099210710507789200797136620810890196121106483089584523436541504116176598944140302209514613370385505119948817668227043715305509758761336818997007398123542168558712545536363117310783598187199834044528329734756247280331728840776501690905524151982685259024723806445883289991181447806817398417589134948507634376497963197694524418329333127586034859012998532418289081070143686949241397751274994594030850338954551407747617096367793543027728604714979129015450534215914830493330273986967290006987689787291216314427782292233645477699239900538084944928995708520595012125409717926187427453338651966011483219899478766966523291394461695221805368883452508145918058427799628241350699528111099319439256693586083059755110012945766737841691733875938298931155368860633116794214196106910259824710575153684337663628392337146772298800179472916042961184747394330954243806772278594712312790434569479042406803861134585647586674340823835955826346230515684042102553275211912089342815753074846643236765488036269570187284892171474100590040478550327241240536354246946252042138666657562539482326412376561523545282152791795941031400043029373802925534387996783599874437338993374748146322048480261972030120261406617320553930195513543197086592885916095897626868913876027140126580213179383543318167635472506869266369069370355807414133051277226754581625186645855906778573406657839625890461243480408746586492235418923648155073932840249419220224752611416945291827160052717405411086335959226603507866822913733935004924459963720045773571189242035570695484497992087848464148500111932860643386239848808807285841533116285435889504432482734643070579885727674231076630847760614894283004077740490209550828873057235236727060755725837565602296423414961265043044542242418019816812267435600847681522963250186400493127860286563247047470740682769760524517392810244947612820850972153645716597038298659560787734192904995834643967359423406502884334036215698302016156679349038126957256645244893674051745540025491998445560912893269759040527086340069287662368765521813964422599521116537230003803944149575132357699320005718005551531580269184578294634302644691152559222608037570593146713423380995461964713131836325465742610936443345298688454708113648176091082092965013109319303692631447503049376493490540112049798785694097687181574927833073525238285557392151113605691223801315264869644272130627319429180186256426395196919445199680403374275036177290323207658224933991080362967823647843983179735353433839510239096992945175206709792174258256358589216861390865220855258204749742545716397982021036576821532864948595062225678552843870601580475602680218902165748960625282026128935237193770052399483101012118262008495162434753956005259184653273015945064383281448399064733707153613320276612872996337028286917884837605016918994815930409812099548153745558449683887392257966336265513216003355359762491818218832866808847109509532798912465401026250572362820546944064653730600184476695413843236250805940048252277557069004918699306756281791014733647560590652128432519058539505286293193991164475668217177632372096139055604999225872857230845737530903685347490045341504973437098739961977990304371513397503114020308938952123011985154334647414500849006475736371273589711801265489107548404518490541090263743335886144403220493648995871709837562135761162138919628024289085677255085597142778903188174510776869189134220816793115221897095939633334708856132876209331413801284000808807575202438693931175752641711597493410944168621198929615303827437779927203321475844835127969273608304792592430684074545982080050752457771411983761224295374194585808708112116349341705164617408301680606576328068318192243585658345186863541212455551063892780450147916747156196931039496431911258010546893244146947963806922706132242524996829274360392522274727622115921974018108016115693164659497088392979135684078079680971153189890537024285999754280826420142964457083718819915425065106796316787109820587046005663458291847784003563001723531498372293585909682345466269734383089893810314948822347473774785124061947372476806494019223653484860737941384572202211187075029032636794465242168380678689031905287470283697191578085651441465184369204933298192418756897412204332627064171986591346639704534856690108879252933242117581232068543902026870123248043788664761913896818286523836201061234894135366926441290967121727884724701809691135594466363329834650718755410873432551554539202383755653387562961913128707195294567523566887138681313997188395863872955865768411115234171581076240188397251409308716312469253278371789837420163696358868812187717775021991567303778329913551857416583110373769503336776311555406150142182013468173901166562350840143336376860631247070203636601638406636810534807657339779555216377242764684067451747922375798709578897853192081515743338174339662940115365672421060614637964684542369551223426194619533743942022907663525634528304307864575791267147296130441634612300613407990588809602008859403039771042418319665404594843494215174626723959538060861341081913686093780156540053063111771182270934687274266400050129547302647161658111568367742667795282116163451296847958391301322133629715099905209679565385505790449469209613665764319243256641960990976956545013959705847212442858563910325848208423295055097635121161995369401572869666402226036203171086903035456433819705898468863923161947444547483905505873665115840075498457190568696449586316531139639590877043940205745361697961870970380151504070839268794613436511460352458436631407766583138232761187179283656035514895506372799520822780714390810174549689539557712770507427765065406904323326588257602939423318813476553133910893013369983652442254073827422573694439496739262245605549627523171101254673657886879680737229072543780954758304146356110270147449657019691998577078112685634514519629901648549322353099262325122172007597892533577990119885140164450993485259444887699171579707248041632186171667853724141696330092273924968924549011491964590970245350058957406509845552611098638025928205799016735086008246622866538542626918011230361757553443103377583100697221721335517713999705916637492524602774176427416717023015447027682187184303700202444084679774420493330903018850341047833046894029590729412195010338092754588939438828773044652468419534175800061554517881110508843298427959511166210973944244859659111820644913492862293800006600064215485340434541837755015938160094560113495814503009447510230966380508309989299120947141174151422693703156369987931751636791904785111924964696178793980204160823802346130655402702709366813654864063170759303147842899391228613335433509184526742152593543727986369753458060247181728926746851757560282750661745887712535450317798634293601335841116109005381292176719418743977883038320926607899864313763541178505352514712890085187986788986037911303349650170028890120011542574224052199788977980906846189685573798362883309112889351940625842979432636846390569478201715699476712287502094354482360901566802162877856859059460705494165527765793749787330933612174909506583104045903522258472582202896195682539967669171767802023931365223951764657252624357153469608891901323404338213394711513049810052791044766909690744855195108422495560813823989225218241265494444246295871048647848693895681104742992575815702197029386478809789905282769519511700492257791672059808089804384526307687938223698396425781453320313589233261656731851671252919862313926903571395426758055546359589339276879502933300986582523431909460839764474528667299266941750709141907566210436334623343175652483097084173944189619138500965836067070752919535089045643049868217286778634932313916123792837808672317413238677916466677598645373343582030198021612072325972301850321741333244132609636334194017007710667675765938262193832673837321285463146204444828577084283979570795027259405434885402300779027516531937776398789415959991656693507967380192325373668358414310044860720415308771119577972836386222873663523467994893555411885098571596963052505315524370719837104915993371983887607301048452454246733184387641560018443454087430943462419655447616189920984397455803820804467595243185371420594399262997486717425982476041017173755185356720970918830494796469481020007511871682169007201203270493603850598281795647152327179275733939543349966542975595625125968045990814982209443088552092098501334058484430696701772121119364767874458041956982310993798457562069540978749240989780760316683109657604472531629838001992473227403531881609211132670939400052597979182517511927467431609197065631632237488784239107384127444460153008727722528394226307976295917071218064491944698372985435108543167161245212886282710350891235615860385206189743945977959093283618142643378912170257202365696047444125193433459119041649498327398928902926988943528384790265293660934598501516412161957794179284868324571112345520925199830189833826284749411197655224221794744638071623508913872991284786242697850619876629064000284074371904983716914139694193532032033422410848722797291879824911756314986432455648704343446260508741924807256497677435963158751195943228004293177670298844486236353260478925476942198792507315620707451517305575565274085078943212014740188837208850963626731025724683163003528161082112032412465379725921887578314970774737075036215419557995162206916335111144507643728227001464921840143131517183745518497722792288163120437950215922664224111253439225884390317643041112688585177847856615023870815840286022903313891818017020066196833498022963712671118374887228147902558254127781238730463005855144161490666037857312152084367761966139913859227246386366546386769231704281333614607082334731686218369327022254152455707438973525358718873970728457820866754088055337349411760288916515123087871969861058526487384670310525074932457842995905717134140594139015846057013792344321318426797733033871783027804538551002681151662504132635513324229049568318770355589966790543725691016636648654688506849885377984917940861864475423232356812931646361630757608272753836009889164779871875673958718784871651894397867378150430520524872750890440102414474919674179941957644756139984696270227990570579682315944105664766439712259591833320174761859613664062477280893678812406176057980504559333096999848171579363547646340052958969179582097154370877348261837647235335004326639126123608506832981944655435135799230834032204040339677533039839946238071183029835545260111573042740816074999214504037487653073223146010381478071689039958303446022746054356058802979608688905659221823364118231045483011533347900808202140088281608386150979153006113804050682228580015997380694238384390077640065873670873877725695869052001313060894160504758148253435365118722030808788605259445772566732891574048458437144712187598631082578556794192178973588206547246741666994423083734862405150082077997061089664179149781230775880946333857718248157313278225151414373007767980974659644927904759258293291447018950799007168621542613360651731529542010563631990844555137835800994202305975652780341429675413623296154526305709168857161414231149337460005888270294201191517032834932426868817995911811125606735564043942518485436144448604590218494332754581062006361034511429033175963844147963676240521565747399146958689789147551213147560445649630372093129711730440106033002897238920043247905043141577007692634668302594266417906712059325205603635301492388384514205045329641302527984184862241688728858245188372606429391533492515320679164185597508396961929939701169582078266526882725060714130714263437507414961830885460850188705068350375501413545345221176831999794261817348231498073951425490481807318041370543539049909369941272251282649081104009771900334823808114572946067557121553343195604963054894966725648148245089901038310653206308855154245329746182947566490117657407688558024440888956115790126457764008872031426038702874787093732408464392868374528672796661355102703746784061555840563246937904772022314503835686963374495702727592299493229034811559493094351607455123648224842021639228766800254866714344180243389695907120263564421805779426660553657568080658197623301578947221498606829656483398301453480755333240739466003639192847042339196131502468159924902873644745677779544751822683427507641323893286499801680387536556334700018108681227569747680014738614545971279776378981171939268359988615260100052453195965602612293290762493787298010347303315137829834870591782045792990369296834221849971421369896228813922709291781611473470611237201362052384247437248227336174502994348835348231328785604105793399566759296206398688040338928560861074744302757315117838403475309684647267242109668645584683294672357469555250359155549512058117833060262162004855807075936522687846473642441846528018344102212066622846285137256160739556063629471621284359572738763935047781445893456328972603246276900290971204598702623235472526261502069408634333300603245528011097729506414495661500563482697657704628600488663705209952190250772981147875652714825269527708161371160086871990868133837719486663115340788275103792717924974302854006200801563604026381714629204341328159739800440057867996405685165294306742739256704405800645462201092208092903603482070750600074845417478260077284775003246964615521184114056306434493510984018044245435087904224936375172307368215262477409039267648784256040702677978776434292845599656892457269059302514161088578083719223503532602180442125028107698648011025690462717169270933733730198652829429529367601035476906016689023018986537733951225037551293814842233645533690731534974069102581832224667787806621098633272240142200290522420527966649450925647171728780198466525585476984487185674541328515693158132575977931008879652410943544208850703109428010119586800279316800212943244866053656791962729915170052665343469997025419834950509020706412628654306430331370278931148989146321132501374682325587091932031619142691224578065330079035556658502083578580422487309215234440022916413761345467063906509082789233555904718838185752997487142296326871733757681911276268500837819658201615093466881746264041733174427891731917815364801066601760229420815994783847727636418944138971804154952299313160272155104662169502256621972772974510938626795236391768571515681884486519859410082656688943084872142573758500886901249282640883405734352376329939983661397312824706775864407146006404720019337239449079109370195558304216723948441310991080070825893455502509760950931593951549839051677886928803335017161430546397591481721985427968698623104507548634950464398642638142916972869044686509780053930974840372843357343434412540351122622129619260289102735854436387485199899975378773685592944273572543641021168372747511222378834593283368843976831319375438739872726985972279610715637227894778526881548411607314384553702392774873896546714594039153619830274082731321368402780422358019738516758594515707537486589468014829696282432279391835046783460326147018511133786170977876114017515375923588522848706231067360084291844844507109292925352840857602950027226890948653396860866387365196843479981661939074633481102971624185872285767251266406677228452597390094605150879164085425614477629962192071262601345597517100438444920777245572908309625393922773287308116138815727475671093941726109556459782573276778970838147373914092963019207708602722022599444596080346000052894320396921835879263075966384906344379956448461689840368838230429509605569495802032043870872783504216458561629728376838622793754391250016402179821340864553512250116191287029531271221748544400942225913327243639402609112986462374432754306923311945278699825525671386862757435722466841568900170667371559162501565615040557777873927346082839081160090094733291517920845706864631968535871409544888004312324762804896180077307938510843241204461280688054452484667457863376033483696149267346245038129921256459504534341733300270602605946292299573097755985939295013969662469064851441078174980920992710388451328653366132429912290895361748086095432893403901211683766798192887821561069732130843767896190754538555972042452659881378852975773256629344587531190146936401853365021051094136126693101090882985471234197242098565182571623048892248212921817147934108108312792665753644616285311464933616062023172843035625638153547773964115212656450240650354640700056451463054260743019681509676047695249111290736824141235728273764325549954787661395947632752339486000561324306212829147944903273910928568670679597456030816759446200311540531214134135408953503538560790618314790360724263153396494520534104394515651334770909591722780137165997083466874253130515859061456449074951858306293269745162954221414512092247106648776559148345459248714734561716156638536904474481168188435529645112680029934806181765039847912306744545872513935498065103317455632078567185263464532569556997870481582061031442768909593153787363185669043878920239006680057883651663081631487812174477402261931040665436171207185668939889853319441619474789698384518067230267738223831237438181545674133902454398878400327722327620765318159556683845247423160776825336905831321507926903248449472859594200001395918938122269059972730180218054266537327887543597205359694903808310428006135832473207646765416696598060315970937680402980226022689133815131576989968617854711523347626605074906470159065179665073924238356912763149733262364966705511381928251116304620169076166751281979374692488868642714610211788911174038630144619637144309593422946213903637310306155599366057672665309229928648221140583697889316982017649076123762215107529168115363549865070869430647237324354944584445915268478866211176274885013281185873499408676620698175297364816804781757962823209189844960225614266057308861802493335128595476706000104490722591347660641859296074301032575402423816734820893813425815625965957824791767467921599730542068038489176342952717345532457484511372641963784453199883885005426924080654993088926142291024274962974419637410422128384520433927995194559460251694992932778196869606618003356838001409635954114547138736548688129403929840399931693048451902761747665722299655096865067920268957894959592582320611357651272132741387446850756512136703926252786495333468035059446608164960053428871980535162443075036547554055393113618267968987398342699348171689121521810241211538158180231138042561561292509857004566431617687655267425906837935069514504634375659702878826004025609023161285589437279004984457206715692071722601268713458798959388777296951970503683649732410637993499008566578006930945697010063935341643611446098247620135103210989871876293134559767767625945212242084133560992175853272037517154713591637500263879550601952081130931023081121407848018464890999534506655926403128609606814183559523939667268745785014198340795236115084080103973595772267820518637732845643324161363144639464653170015821129919849980579738560499580002158791310789565238991391947109603005269891891808304654412793240902312625468136035291750839567134499550077227904127164526246302029371295850574379514736007753993310314241534804914035577963552209580397585565157102019556389726048729813355016997335684871899602182052770527234322960584147294754947257479903353447091570617565796922288019264663196336132624429334102071285041748979956781282651324051741502387587241869657049980636333168945119793075714106438706217314176532022466262695001009997055378121585981437328960690606055598419041255744436755511854717349605311759324438236797314395253526501040203257096345166207050371723016271389408738466440579565806352199286283167092619729844614115924135735950105294866174625912288112676720172131024413105123928520512922808082202546280802003166873528378225797803304011850756243261704978398592597218277915277118423532976943929568631740570317252593841082144582922631135158702187753218082809885384135973526328493258029836965769268148531374718826231691189329626740176609335189406202610771709662782069132717652554503596676271244010038840158276487966551244284031046202567469851838117849759038513025310106034485839631681062626122574190423361232631203679323883243589011041004800668970499003753030410830990563003082400718812882139630125596542954238338830740198469509494054171079895550539702943695880530565073919672251659454891581706376687880132269439838048653004688315456273350667486944500291841764753187415889531798342395621849826191272370376157376460345940510079992740090422503773850338219730921703452801913700207629599901258117004242257325927437453980742640034058909907659693760338907656980021634332560544165631838302040911284408189891907914839555165638573554558223949650817741586813051073142861073843933768169370617954693699886822665263742101837610081701744429461668158800803899905544640072822247740711189711753565913252626867946886738005863604615409678947598052695961512677513455659955965178999861598285660574675007960395076011729956657388010660221687419790215529351538004559217590973457627198332345142569637210444307871984490774336839671525886847625680096522675574348150855249402062245979976873825039361391778893425797692652440209962181672450496703390565721972884463989415752201904544769025449925008630445051178583583022192404420735598573308665595072880268460589510292066895063915291983649050444663348789424864415811625022119225329640537754403967395701142751084755151907368960985823234647131330529532128344732309062470125815669523650632361491952877375086301960998172617723508829754244545453507360221468442659932125408607647734719884694871532240544590944742926677004564055306842803565185636092489674606028328006982718063634789362999509933991891491993032668135155556041492494834284973176753756336515460958943791659822673212385851202464259142043658555248209152734710440062603277767240498877985781144961238837219817952875644262985672218579938632223435046032724958373466277142260875381967463593542114429800426467640930072318359870901132444037087526693522618651790160497260124817709974806164030070479626201464490217530709058784910798760190597898510804097282276538549661283359054452777740568997441881027376001705786807473971164896686172862641224110731261057308501257498322747252751251136615417755016771727921294972465090518379041454732298704394578650130134767941691251089414253510006962684085499258058631978729564691595539471758790794058853495532897650702145654484474845660322413330340948487319368319163797823627379651317812590745778343336826572353974748462972918000563353286563998054652784540981572010763206501175355679556445258747283430777104818865255168546464797902110045510143421301762806130950420947993760976211593142627937606803319163044304067294294902447301339724266119303323662598524235382481152189676416320501127593537176111942310936177554736503045884649572640481773484270903762104046082986995195954053418632878998263963122276847531413477315157383742981898882150208993433114483339867876355220819413555883975427364134175283867843159125540096811539910547818833113390999282081556606776582930518477344450364432815804704831577502533886976125172757879249417202239931156146315570046365905686799803990581544425554273238551672633178248705658644556084972719298612298343465287121019819855575991393984840966478528538013084764140761752068722581260332704234328498344638563059404976883309639550703009199252824201757211282116840693390783281668436616335761897327619592019343702278589084521457725651880553786742247227481223026998385346662683375690034641072535193424046194777319355171375648554631964591773255010635011395485430096023720778621842213320592522263892382603315278955153717893964092750977318544812770198177702745753978207665398541286077424659635434571793914187257807150559164874540793107834707744641314928591172218350079954756461217427913189428452013937752361503979445316601554341487567304068260681370450829764562308069008352513432899534933275606665470382293967934330828563921620743756657947739774629751181728585916491220437801555599585999141789342883924574042908983078457430929119576178621646162304231147555816264064487453039995044188049210211515999148351615498976127641702966549340703172865300583502425440178003480700974564099539666465765785147179784748558761105341525211994218574980989734765882158036655088794578977091421514071195520513091739496787894697725183064158856889436000458176764656903759300692808938037432304716996112884091801359611816590683178425234747710202385325377438298513550411894852816946241742722639437412600638751696969350395746074341154655104018815849790749887436620953893640368481586042779576399633545401442566036883650259183597077372053844769889677321683937482786215009796860719860267077307168673370687769241868202000347170385217456417659062079016170678761819545584604166349969743315096317584893059830950418318422862458797082102320008133296425571226492871992004455475109163300508648324707821638597503680920781341075303219155545856703583706802995971438922066555506958919627888674290569870423059787684155159729579292517081087441578450647543371178912643086901313774055729962040377581511136185688823701370179217488824464516037744434676862322319762902525108276662878431075659954830906899798013329010056218937585906757874116985492286645276282198471297960326409028904328438001065174560126716937620561453508202575780794251362184063935636970673767846350084007326221206941770033917425438275214744984190926278093042109014529225058321445175743267190986463099239224622448677352006952246731908864029592146917168415410879813690762219566154465274606952255226818350589000601570401482128278787727216609356061682305885228824617016429824456831299467943815907300902044287215175947129389782326274278573884427197349170000107202214329613290168035178688594161897625881134751563729371760366835584278303753362265870608580727409621427243919401749621570705403101251102744320033535033673624335419970057872619556741173538088909617950511394323315543114448823518490375827525444965883774150861164745473602424135690959401600964556071520075653425866786582375348805599958682433776716456989649942791948790263617430699687120287994499890501873050814250554139566553303081007927896002171869755970554943895415985341348659047782764846010749753861712127432551672870242451455995067082122822494812744431738345861597646655493137943078495972779510677059588057326410972564883571726822102682063473302219095604250605367427637413513824697339801220883535938357960325509693994784540687303345582073225179686880496497291024318787385546176122136545101491595039261803601636391325896996411127161802863677013587826211167627605357201549525840783100070314841754565510869775306104461204571954598266769691035276495013127357215744001806214259478736747836373942775115037861970238007846880240133253361814648331687888211795975068552358391914280195479360806443662590532764466301107265963627368992935519003556153835028076917669786932731569335270398096258815254712694311752342218419824529823755979279120078769560409010408010454100617306726137573889260196750894069216701730299909517037348750847468094128651000326356314829480445570941692465559844181857606924636841728292265660825303804260230082205635793667330835671500927591755197269994770767420252725815763837693309646111004723389839813756418269612678837846613881019142795195716756378514944367703969864542190579485495832228923107570700883956028606538205425796418519907493366527156947701662066870465749126951207604577780467193749237414078580478261313727681783716220810647416590004510483830939006485704607625626687474355733574185890329404327487510934885913939410222529091474840027866120697628045323827784079801827641841847145149049417553639026372568719460006030829416041725016191173551655537636598070522051179030778897585713803644909177434888449984820270891444385522928313898664011358536018572799913880090412681533184301073617352419828076666137700483005708685947356417822129229518050278586602754659710121433752110244021818166588581538979655996137681755318630734808783908582903076866167864653566939006459459884315159901497974401278016108621182641087556279489379678735895644776721485577234047718569623165925578795737521223970771810045990843881551057587491795203231346570437449448840922086434513384302868414492439328110574438907357694815943397952468995315597821788404670680239216453584106672261871177100476892364239829319793948539744183764432382168175675041178692956695132827427738459407447973924224483396281730181164682470460187346163187356136879183699502639516162829831483266783258395344451353512836732190850876151224431059484392476702011759720491503257400399880033451572509001850309236614009526992365742608310951340611196446925252527550196788354027482970418059893313735471627041888536310762582759450239651955555440924390492637698209261464806518703137811220417369385038017438216802595096065680884021894616649978304585829649149585243280527149482131400077049340801563624903309182480710382999279671418416537475078614171693102790426975665448539251995445143966658907688414741005807850054461283214492451678557685132421164649302968419785920284286060744327471315990339863864008327392546392882929911651334905431928546459207811483622904140057711930600917149165588555571788648629995735970009992452802333827061082076202284821882334735999521677316449145657516137607198017911886696556980061553966011567545834281689379413642225511052193735683163597983035257628275986906502236720371024977852384791644743618927501302460235594334150309338310502818937317857757031400503852823920192206419328681270515172727933281006552460926540156380205316743633131789974793185782305722346993309365126287605096409215135098790288217015434056213321754299377416463829837733292618398802260064879281058624632985310743644685291086675287305168105382887297051471988281372329916881794386353647010542041928024522591764601719162288338842618800724987492655796547839784726115624657587662065779398991316927769277229648300091336747562559391987691125267809508885992485717491920804703999002543038498720754883475116460865225652032348717340336799652087236247056896643348000440793708056506992628677736394789482265231328206761628979275804936786252644420227178772121068885492820034710084067029522474491869216758377229780102137374447579004149944048346853184750564272254578478813833515443403513026886550314219707862891361628232419311600521329943613309888010988715322193170715856357433636688439798202317975649192020283254363666018975996786343154813085670504389999257617686332479976052663354918657175024430852715939500232734059776390052228619859535709318684730464593987307017465357126834253510901590136108916054608741339564383259698090548999150534470521019637333306486319836812927181788094485532711609410165584522572598628897015815586431723230131626979295946393122382433562324934465330585385811536316698461897086188652171542594554794178637740289383136433577416274417084676828029704146882481718880813322614795045841523249590120452812794233062461756411246782534418172775061362056369584660250245635650871860191811356598692105096722147616268898009160719127774932091086246985054037318559310243873445867838232560244593503218050396435319555362739080829408183153536165282034369524964250358448328029347851013555725296801838015942942135271799188140701290625497145007000549809349106679498327696810477150092138020003825239463806608081474774857576057183340099475146879172362904649299334471067073348168012069007278283722335351497887031703606454258110326340032999792104806206033529852862426217775403309695683381009493914727843217877816639212596130776161149991884423441205417087978966680418702800959516539891869672711024158946759055565825326829907227105447293035016996949026831862216451882229832620137759375889789337686872174298118268099095692158263683195855146973442262280181987094249732557714475585526073674314144657884772021010606400502568176932183427380926309589995411337732787396177133406275550519045309143426612475632966992206618441247567095658206393849352066854712781932434509182618563888796999975424110552492205593871519348634373509578134836526469638002236787229799097759010891213746783858917636986847171651629436026152839877803377363709565524746991242185373234825587302825939799515497306163837420866713186437355424656888318811427538046584492191594742720494096704048675765720027448620914793532210831857539666002511791737315760670647950444804539868785516266312556261367246272247277889724799328531878683273897893281675363759118877832978911136504613432406732689085910012314263568020010128969726536277111142376377495157908278394909715085718363013021017740226486295756919464447963153462599180344233108980805347514168874284288611274643844488875715288052147227800809961679924245666948575150758924501495997363634817081570885545444491826182127805731211369985610178430590024636742561336891448411649234940551424851686551184582145316347478218247879822664594289799149255790434967722048217686876654897262512188145272843515575430883295873667623830472632839415869029624045182466405703667391494017034583741612522878271247484167705595841949910835978235909590825344871204735233392010101656700782953939978561868645450208475505148457054014658603839216570201007868828263087028427181088692677173299330446543593790360924359833505944177838870076397104558672611720232010394621395731386452787809456026527194723992504657371359875884059606776220788447926786829699873551541527471722085794017124346991897217269389966188053434235824592960394164155910029338067187682702155048917740708822084036359929429569598910325258619708806650149015492855940404741066014412182947711078466742251289097322328848367983555530322748789581749011551926260797726319137297205136663025544599213554398755305969415289381855287760980780488706599941414603502144586056875399572899245676441543487135539403502984583674258915194469130132832354387340603423102281644959785438279157253319161861762420355559795003683206165209485818933696699011105071429574877955702097123680809828440101279815367866008175188207077621076300574653552622145349426064725772470407679789022535662741888265413640742082872263882593912808656346226186345402694448549461673133348727684162769620323597416650542058842677995304283368817982098477796498946675209292534801281321566786634616178640089781059803162655726744994079772336914602102559745903250899162712646149900200835544272111452253818279010785414110567988221927444846872016688475704810020691849744359630474725480204474046839722982127443365321460386758636921288066352533292326305006539018254244410783133182922029941377051013331750877256491058277191969519848103979921148517464516791748646568690877003001363981037360595290175321308494100056988352487832119403713985151497523358731654746124457933611068241489618023570930883079777529051219670691861686804092548173253226166905606544376167816484718328789267593655367899052803973621464185113733315574980275115525865901734282521436479498182570215127709516914108181580924797709412213726388746136047067576605608154822492768440884873204047451860997782907814374939729863946019129062190755126312768239831064129179340707567812869874032038223370106195397343103195844987603450406876614850149156823582541469964508371076858809130194165518631945490219758972138663744388191334108509823276318079064308352843400638936524419379399531225018599473034792700225560973400739846932337616748261403372460026218197137036796727232291033656453626564098694391497938011425433246377569888892244217032275418081569203431015836875216335039953305142280739090681504664565654096493043248827633230823263871481440044045733933234546182091102745762576086575935369482424104877135080148141223897276755185515012830461409514165602439278044104560440801355871268014529061188402510650241076784364569641734125579327036053462658355867754210212689609236933507359299999769020849869942248716796532366408445603622143779600326816708280076715756825972065493930145159010409689866387207816082779928989403391792915691411476719633405182298427094078393201035888524231242930301599604822073594397077600150480747853410468835349000220222889578815686641007264557170563718460006961530006928690243969545115140438325196761496185176592660015077538944639559839572904905377787921709182362614108026835084428072247191456376300897902661151929480976892897503434064326139259132915514955435112777482277419688591903788704306771022599498182520445522523907287979634904465138067250420263655343096375438015284987376652625590750342062600064525196578665528409620715143520752981884412990468604583975459758038547069438485850801263570007268383232000112999014498486011670734667316323068600665791678107434463844347565142198693981955414122992075579715946271011673969584009562153130924359894895620892504707955689721393277120735404409067750935439226016862326518401219948599361205961842379657354174958017842568891025383416418658294383632369764870683735952442523517010730753854020228847841201495583244209922120636789171070081481462754864275485623350696943691000557936901287411088245272534100977095418906592300439065037456888534926738891399116623482577475762339990107062910533130207692061360222502701204812734462800611672883038349876457066657481757221908152048469880561320664768709627338571540722475693314964145656556619026914021000723904181342604059982115105320936184156953933297545807652797785535359985298075142247626200963075078920822361141389317335000000272801040592874662128835921541507417076125455425953782677590093087980378552003341942399538234083694165595750570530059538444363935169989993026848087693814533948666723338820238621723637184101167158014347959339424722839016851639347941476810692750444074712567992346621218729758083475705015329477820572245735585211040282687545938009958460646686415965896980544531796361045119123108712690182692391364787392890692842754417265857446284721497613776977683236323737890788181571076640909377228075008368097687679738664961807833474124213297468153532083099422637337730528156523652669529128826691546610532379276115468935010843624034064920153045161648699783826663254409118995840376604897685084010375034452739851025081361630652631782180558710078080248523163292619243835822435749415650461904422283283463196212033921049461608081229661359743955406072118237546605626899049891512575109359672937861103294330787236902364709151127401920181814312638304163124250354236426116390031016724703561171665205287158550168341154420027827047138892491958915665797442886540549912570699284736983573946850719499958931551660926265756627204271452903125419087174234328807874300619878214398585944002293185928439622909019550513122343533885801081429338455621053995683402557329812600267502521301222893593556585449437090618217475573344256188883194948069987609977129352486745588495376283017895006934098595317759792249298185323777455941216560164661621976306142485116203628771500857789625004471771986406705568610234746511579958860332782170968835132982856375563300874945227905924507410318851303054328554820548220013903336544931437623871528658710559444512616508082861151341042166034244150713449856977288375447908500072251770592402776403486261512286014169633250084480808330451618938583250660410816982493077476425943558482159347311818797421018844601472854041708658851781293473339000788144773679381818002668238959305164219713839176404697999794499133758789560595128426081712621823006896317275494187146625961399999808260089925647288208379868786052123551377018427550802639143062046264070262449747683855828046244453981225991518525096050077054062377442420301015386627410820579364191072079647485354689739824299122183355971088867388195631512622878237795914835547469829919508703002632346670078043346088881480569825936117538966491120671082885157051961943167402993155500749354578235718072230267542741974184823771752536856183391266098854065712547494767588533466643905741817139643667873724554426720898504073906037663389404966500244190185449301841245935979131045784782788744906963282545338383833142332560960327087046646387233603838273653092092783656761299873071629644194696680121092812852347588675527163250350567799954807192466340731449698819655288163698246272041518546278857583962508247989236658299232009591658972265154015198700654460185432956140804520209512859037712747633080762531207330475262459724635341495388918824543536523420224718917290991753804738612924346729445086279465866044317349001988441013580313906790143236921931684089297283577113667094892913253126981078568206639349088169211317114306290875658239530887217329245247971770062214621351118041171155229874848525216039484063412035064715527762568625851924756678196479595239170077178230780446073839900096877192840914248805448160681791502404054490384428500103040879713620038542379404162665088620589835190219029818047749064392887445181478783547872600746401210749574909811855222154614957321533845834640438725990894433742062495803526300320683868036438069299554343792216987631805044732441129930434143644501164504598677444111551162058033633254430311888041758657318941222373648998575410723717858537501059702469360789316787516043176679544623518694404092058786772545613512802117554069282416276543840057965738159379950838656981987762838132216380199165052093569994055787126476448041794439924734867071930242373652660019830367024830071932523354230699198229183567392343161677066539391058455342692932283641587649995356022557807236621118188085206538250883787102458438158015472341706942909116970158559724694562863358964766157480566023427710976364072783461108821695613414658182557417435940684041830058951263924512593179694404460078998463470734822202323311563220162633823755285239599971525000413102381603947195138379488512760604302482519799455161282838640707169924008330842794607656081372220525649270678611119169674920019869577883773838445143037866579348503054648241060302662302969281089147069412122930535253399951048324248851886272821213735773262149964030981760084099893021309774855714678317029122867791965283290407408643733536696988106177815657032105894061017868768891123221642509735331460665695378084515501658256649153106785593738390707763464816607007683339164385377400763318839287614875534041510911523277282266007836191525254020774063234503028904820085331380902540700881921720050730968775319972040476529178185312126319590481701414469771172763101829961993716614351145077372309457316065024469031234692322041059383292289900819301095010876653852133858231298190419992692720973169917598033286314342937873884827201572700066026663773273650552484632791708972020213377921231623541577226673638920467662509477374214398291567412052869191344523628145056041700597261951285531304184707096419912007813137717160272467728476209166820697088646149941700654895730250790681652936401337805082245417051015208152432483566866466329390580480738143757714305576329788131683959033601015512400711514525900711041967819599978054282357654844398969314623763009164586348046998548856619149026816059503426543800911820735074192451261084560696517659447412666569666183851426053430412886913261640177811704071224620332412102279193804533581869206768953028249631621860700969597316365548423628270192415264009684900142466207328905795759724489164380171086651620523403863697961751651576434379431828386191403379214746504040932178851875916843726445676192383131655169281194787522412233404960939148758202944251768766687752321110898220722814662972962956617157986375930862943106245628828927364339909475292082523278554775124862526727746462457553897546138131845385590349172114723161228208706672809813882792926194095750262987885144878923097622316180152732204240042222804749854284045781526713577429216058740180659159507367134009814232495229252146221283712860668860361453121953359576053936937721501269472567699687601586294050575651642424959963568678414372112967318597897112014043537676379139443806004046610479507443106803691071806872869806501739761921712230131099010083257682944773272736409573449440731643327339255527966111837038442317266233288252737718067859152970749223169703482366104878638400382233572857083944725063462543703389107737841925613497739829520736974481897487914773106098062767327227118386749322093262639281624052041374338143488427084446857807719918445333875258401536085725409843097395034385561528224691731339539242020843062465042076524184617071134247223471973050741237458845923166664156686578398763984062767716769041411894991624419835742499849277916965869504024700642182722263620002666523212261812188297141146192478661307460103234099088571633617781978336755955506643613870503971620340403132220151966194311431355573386830209018958616014752996530095928314445613109797034278092674194149364926464448339071609683873849478073368727558236841093816605887071906442123089490586895508489731824255613524290953074553924622567244396583095290651891627181390607106144835989188273867701320565507794366165047004797210737963821554257362880408596576471520116330150692511619444957002702667158808774982892969646693207229314407249959917359841585327317544376655097610821585684550373216999226870338986360559603280979995269035403753386782191559190709178068399972036888387693986959709556506862619350591217452203622263977113226424468030142447972377253260823053194707234909441102807694076996404806896671848301887780213004520677453373288576777784226553384394966253666649304116694392493943237161167599914960525979223411776149008081356088456301052631517683783623328852134513278442325162008065543185768345937147847680122150258140584922413769677122227824183248385562626756081250284383010719234108832299858442298899883524822561478605122733516298969817536715810534582884323366822134882491872992656861547546261360852871710583287568070860363750501695542990331782513063916040418338121434265595842095188852449069139339249530637932363313179783077663085471617696845418482417311335767873201793734941260974619914589232264136691917748369451450294366364623484459069249538794655316210135348828195367819247437401719189551613177459247162108038686498879639281544725185783544961109183545308653593086511883405465118331386913127996995318725387880635678235311664092063715456153984427499037319772855621716796084525983850722830053730570087378996509622806151706401606788429254424801404994461875341989704326007543737645274816843097711412973547482797763436998345860817708145813755631172635519595889538687879912288985121858722161305036527727750369807837605291762096808227580202446937703074713376885245384428232694504064205985252726274476476198746195212989122891763505829948664695601388521031834360277072872485005697238964220200750776266510356487800724801742141777688178759728634493800773196467496416350670980476050976644568588978720552096448238469693933802516338103170403925660211262717560448857883023624897986138622738905457224652191531667734789373574239321754205190326987347161345675269839165824318141558099672588456300112333287164988379354877737661904640527400204969122005472215376955540828649413055338361931392574845016890614380013287470329304908810510255588671066626849588707653583141935358720399998968049892638822141557699011077501357418353243458287425822981782174211854177893680319895081152447881485811971135161874144152800581565334060390356691010990718595063498410158807191096580585316580078455598523567712321609837461629008782646212745214489675336943002824613562454965088421986896085342114026445707474975205187157465125909952453405992420422387246741140727743910510739120005134137363568256698118696614421813920183146642587177814766658139224003595076569823096399708313240652803192069811827058615436048562584502737593186479576524939621137131237213374695388565138030285362436618244930812613824065414387281145614575711892539458070738896680082827317448215116089598930071059074039294267818810251014351045646701429148353843250624239114452588636198993265267026244545358456321654750650967092469599272700461102739117182176095269678946746225901148122613780579242374954884248535643918947230555162010329996395291534475365750014169109841687727494402872547585244810919874236385490612093762712885360655805030373900711926189037056667823510851565236800796481346333576039485879026434331530643568448486494937155778109293615511461985234640909668680312595843021377807738315218024044282160706940953154557112787731108968308058120508782570870411224043516113005327652221527657450583595482173339638872253359898527083517920984077503611664835009293961193345598311280729964701673072387049110918988766280619842949545431525773621869691272794951491334615114743751561151384870066520253401502234074261484058628863825868579245539103580950572861895257310765246450854350872578897140505092662595962889169769631418641975490675883398261644349526565421188016164380338457654714010162385627510330802833915221960698662900646840705190345610960072351839276962147562895155752151129076891757001568577387796945632828045022469294732904788521380083484296666157589902501041588432422194679083969643806645404351684186376731743298656493693959793166680777266270874925237047959054439850272967365010579011335419300220438050431444680179038467627743732741431838867737299818140933122018972397143866775059903430275780529432314724529517607667633342770955566967718500131004037841484665063885427467425464180830555813789693090015955584450604205253332088633760307060221653979244463198872632630307240753757978748091747254343524269749056339890836939264621152452345652869510894653775825224183480964648999545839638103223369214303817633462319625155428067459894028925711784534539243600016823791435180804537360305815299009525984627594629675917406739498253313480291465141909675155627763376658593306241623778193037079812626457432989759109535964366888104688750437869574537131183187103032456727132334693471112673104725669761513418385317649042648136424868252020698254481134781854767337378479002118484203204139156093285034180469372692509462916605796448113631517043050018436240745805063452281207133749068668797786400107249126996972922277286878903039168616217364386542721860841361773961225156240665180183112214137117246538367221291408173096364882574279582125329100941874362651682286355194679226345049952496422604977852562819295210104282227475726093212215052441669617139979459119357640577433242089891056369233397086714521027488777004467198537655611937530948891727003816044558697373164146877144081538105153636611239596360141559229293805688610653711432714238043192386989023570909439730216166891742240458342872614478883278201542008301621327227197080650181473900689408438479757776863425663265511903510667558864916159525474356826292392040466196124285861770834606120825006607224564954258789135477371313222628385442127041204693387555091439008344150065821169596237543861591280287526291680088135580245576974266708083915605435565715894143296280782801582171985514402362340854396152404101398911085397365648612585230400063096056431581022465597341183101235889611898820543973769211014012601402132695647282060695827553706387170446466031319634518082596609204315947549752716990899654655445409638086567303122997802099415129781726814203592662071526194043927184269793366423398641559310415654933208295100598178403557697515350431398755721586758435533948010515164211898513701267301244988938243135919567639097460256107362579038610365655080750843804555328142046417795636551131046811979237962500602924460488349224008640659712733608751347672279959142080346007870046646060591626136656956171016210081180853763000940068639776135253767256430159981679355984472178059132007890891402720477439403569898178993611164456634455738250084145542761214424014480481675084355719604482089494096882442994577563048375224742532789252909690700561755221210390711390979368066422241229045874197628236287422530436011674057187269446958843923343298398885272868375425657386667326560826201789072385849100105658082154167175382465225769633580079139913710438217099862929599944309166009348941353555046701353057063018943940969606445040648319607701201606078633208637663400657113897901969085589844836764596235444275577223952990346954058713481736886527015981329445184686342536344009917609521549732868563829789101776130720399814327592745370415945773488358232738298234420201582697568125077191425506237400659637758924543372288479868301018629882255904876227704056386432881158356069883352324270590116824918171943415567900508897510422417646630233113014150702482740258454627439089994331247685115514786576316003494848863804034731478366347865939605619001102065648043878884834317457308334520221224810328645548083265991583656206013862671071054953258285020951223140424351319820212910482360577274573949949046991890514320112557016104236909850175791265228873490096940948445569546706368731201406539489894600244157346057136413138084091739635337376573891740447822499161262752490842329081570113446576495590946100642084115239878103327800093015704972948283333567143331003247047988176072175543354039424283899889346810394981025856474219531691750368905428004555242958748388601028761034682995003520588491395405573310620624423033092472572946414171722657176597803086094955361020717121618072878447128324613931598641635772403821854893360483804439247157483209004880326521658251832190238355581951548690647448020437529965583819970141787146075100405796456731527402704359640668738911924264848993696220824155086838134104546390126263454081110111540884960102798219013203284101919974752713661958390053597027879628445478885598796282642430946885071298727345805211768739425668481185621361708544833208285135185210577127310559297508551086337980656786833065068484469742243482793620119137350629116219496120039556498945519517908807381104771341256442240362594095497017488343975112486302065445846049987048244365402696553925006147099506854914812908363930602308598362589046203945982378871173506608320311398172497643698547190093618870840558298839546594457607186145859076152370184158718636000700446804564679174372343026783525062760323731300522644257397997497979038004868868688000647624975796282658857107640115367759942756521129158198864403470080872798685370712211239930434732105307387533826932859327223647379211673326037488944900691824307026979711302520533274363094055323470684067739409666404494089437231208125362512702026841909278957474850728834128430230593021595970854944357984219949884407008335032501612863377685099194278184746156269269016054976295721103416713179649569126778963723833174313353275443566736960831510953721905708120215301695620858715007488817638683527153710418527707344711683606596023715238172459508659035939326767551415144756568929207643433630140585208100002820299332533836239229395881055493572942089898630977317452650819545168389835136092447486291914495673662672937243672469229808560280472006072828089160248848752173932449979329611265500874396566374793497596382616310332006434328603508985549153964949120638213535890803622459272460682869674614540012962648596666467870536476801887645640304645932046947471417262657126951909170603158442408367729586164090197484967463275717569518963043574020150609276690284880671752484370290297888537891501238307321928795868715888657694661285028257637434888226926938557839951903777022050561246370085820443359071986631476373750624695835339275627153194441069076556960171320505317519040717848149027080886321065020719753066162490244286391392048762198219632302319062421928594580971228202254775798528722394526488947144293022972615335388303945406008473864289049116809962381799017234325179020474652419363327605127511938958540822609769478927722390061166252333779718115129709151266063548815984310842954949181111745635785317420213543138657797022800601064239161690658591707748173729104178660518233560709683273618661762341446294064186980282232853736114885238674730178318987039490528643139883795431686151228400403198439323256851552373107379652742906952214711673139644870360163152262945432968373012793072819581714818117777573385428541295238210669115650464135410658679572136060203807275071327120935547540995132380831502962125730743003621290388676636381231778888367505518918294486516543781588192988385347781019456891423388643640823963263581271313193073788597907901146853489518439616472499614917677928803733429517149223708848091476027381004962807968480074507370495195100827644228189725582251734223516100277552174381101775931493298302488377049881925581671050735031318987142647367259780962778990990003877211423185866536709054543620793376340479620687855076983727460844792800487879150789430317564937754820382131546228550716771415727121858629417039340622094886042814733584102211760352659892901881830701421894401201200602958537894450462463332054071867926856224485165892487585445444524686248394298966204245479222260906171276963239143725387314147585181162493267713780607785028431123105207034157291535746889695043886069896421217736789175395192947824463136398746185417467221839041154713372899711321720709406996509249714371075666100567272237188331289419309070484628767559509014583013106309406237537617795972613872976588069930850310567607433033096207027490861730642156466720941262052303896514530899255679216797974059469113941625794976507594645714719259064361481121033057760053758103041116943832248926728848355420118679269703164605596135604811921679222614527084989228172072025433095940497810978545504912163483190130040180505929681996602454909190509123750955481675185350502573989889571554843157430605067141062450630411534592933859066421287409040315112871953231927632750828332313495575341944409100469671564947255791178863454122338259299263234759556967837719872474812569221415847217203875575611696820011184447593447926338223704703017602439699934609765375803425175747344582089725752888389983512319325165284864701109446028813432963514976811096499172860595375297274201751278584243189741463312752789191932614772427978199746747668979796508942780650153292824949996539606148276154957920550181715382260689677591987028190793485273117886151188055483349846891301513473835791683488437958960186615593183026184331955558087993590744203884026802525917629614809718908668510935505809472103760579831162913021799347297933792559319566785462682011808441181784928551566818053892228067034128443363041249506835116841888815399670051490636879052934993489967412591699724142348287563822939516458680319666306637610464788759912869491866590264573765974578325904534134437387293144948301625682521333354059992246017408420960970343969022382238386880206872358569420156604992855908696378930378422377793933570897935327006374082468099452090466564895175348316072282556692749488340658516460273684981259232692320907026953059257051377808235352720204063885217363783655738853047767807714942972007218403311449054888613580080277772240430590484459192407605786130103536885109625454316736428636626324356483610079283662119716676281755760348892520209684916803010066054721639806681805223310466882739495694606095615505602561550812565152614123505687692638936664502357885362387875226450580456095792816974869181099494255538390789387393410230741780199458381275823924879070320172400529551085290979055811783389861369400036383508694238345455919450357002375863872545422307096718540295376327672607400270350881298284225103031711149974593509691694224228106672824447511582954464996748027860743310688952712039666900415702045434738430234156156876947603499898664293147620330227424885235216491128377562567874990300291649549530750947945113349723619208509593470889809453988603254169716572097568042202112589543665038220908260198806569623472398813107353440817067111940841756901603424453718284415497981504961918793579149936083781598722060978013921665172899228539685664302182402549565808569015130304437492627815599716664343050944001239498008228387759089765855583767716092795281401421732786074828311762265138773379470826637383015926176616631943364174648925798825774504453964831551266197886799002572870788859303712447504869012718589336641035383942829887797230947029910321971387596137056325677443724800218008187758521025426902319205426656025088165129653233679832201529146631706126172063520575979810838743361840943796705440714261633738665785931990470319750451910992474620217890700498254814084961197214344174203421256029327703271575462121125374124664917213195977265018490201766928845274150523729890586858975585293538854175255813888734479858929197063322869214100600845971478910819545265589885053485163981923267308909889897740779365120768368303541408472007868389174309442303030641312705935903618228812344877683271468428867218591252031039280756248131483797654918346062896325569452978501853819830573546042568749939220493534866557030883166181128198875941754594082517798013819257018625300199480882114026301890538742025643446601619780577601538258170995731639316343700434679552107106235383840950438113271798689913033978843224549507870296013037595804914917600751843976892313469208968078841088298625891702453887221994169352120417627321481781435010540404555623751448519114926554534351530232574539034895630224287474154498393046079010234232687687835388004434025558170124252607444825795161123973566044940810626381921080958207190755935910868901938791290318281561084780407256658995967822144247254148363956159876262398612990412729372076686042965539664860370859677945322834973181805865574827057880789743220230666148380726243483654892727053047633783681230657698624337593418554636463376868117536976406008715995856481701413900904506106550879474409552993780378450954600410272206908280710365406143828949567169230007074376504249138614246320559648096126486134430969670756663687483813430748699208395350816966855128111910536245929813416049862122468675705136221094929975129928054274247867317810027888169317253862213387862849693693522145754291135309913441152778347549651243084679945035697134385495914807891886974494014279509546583339750778928923894250263247892871335637039757334098786875283810063090904107867862413627271274967868518149109566114892701108810605061612291952350767528113962318100774909510987361834053090327699360227766318843056538674971768570454983961879840623497301142303580756223719144927799247934251876474347806443375435889212045394713330157582246235058838767415396107196266373343713236763250477013403602906180325180597070279243841186694911531721466281575050788362432517242236102504383305080576317075832999703290560782491182636109411137351168329956188245321210944118871119009540558479379947370145163261754212086704744530331085552644160363291829411352659351688868989650149520696716963099984167714532716014768573170206707752349941694848962733069819472076668903967720019291131403883158132465486943716362926842504593014974889200133151365846066449473263415993428363233793006792263208978531168810379122043347636681386139274361861546141502519065161711060647518525187401939903928609132323652763946779465525074401713493801400385269539388628357897242511696005156542487538661803312196001224866722400401876369073336616185372838042805692813147409912113433371846602843980314941418242132122807167932532403013788216442060721717657015929243915148302186494727067447051939953464195852056040537412582716835669033898303463895967527837029458314312845414603216160992429931850381873380011887796711736906240404758026726958875265289685715241039361273009374101208394567819375883973131619169057199752007373134660769627145744982582885237611463926491969249220776105422715740683004494785355098491475883899814530005433262944379888934467172989761656147190804672230107876004611352949549742337663945422128366149292358651326912086434296235661076176606446266915440034979485797342094947683159473895322032295382567974306311601262978706712687138506900100455354526561884402913510392409855676615827944121665669729915155350352759254960004602080126368666221119092805741921988235757892945149477634001924813533687900688502553646327340731569263231075884439149167033221014889846885939435938499131296169546562659794134361730531665347283023730956730382903369398294249176278201216045174775601025281561097770055915768556463836750345721422520147241901298025787155837322834223327309767503594685314045825543334182491551115670247301819753951796391363110538321222881758756539944986824745180919873891061774319603061391815357678031127351794520221962269106414497607392165802675475159230978294846352323188504028940332936413434311426857282679461085786058069636472538070270710742131294045713082426276739143372001933524585051558072552739991286203812239061496648397484524307902698489062077165872685496792885556069721293023908474688796434348777070330629500645283394066949760006280158473119118679018388358226805924229594187718007899838901889976290485287710160348313405218954172704890233182356811230708367357195242150882608845256623479533394263474907914996526104873286671695749537877886699721143375914599120535357573754142734604049053052244799532432574347814938914237738239989032200316821299043391567525168826100510940019499541795957374997057204879579302851009159780202704646654781452464311173725709472450627873852947682038100875578506276359804150825051941485381408141088137337081043639360976211151391580965850347051716062870248837934435313260082015513837304964818996150196495615923689402781035780880281105649898450843215860334395792690455891678867183609516565182498327145930798803816983753499482907576587370427613984867720080250835407067396257610615115785741764022872654685247251531288191984483490291503089307620625281405144863952236560372233393173475212528847799621045112906873494458217846908985420390602064572458659451977331647108670577710750670850993580356836934117968897859954565712000454925073083486856594653373164986817689275786293475638053063202582800518608408314027043375122024886539359051118817271796606108386920431675749974858220431447256783149161370582739713033424199759647117323228488829981909690403136449121119860302180470442665950144603241149035389942961528731773975541824614506830631368467759563662316919772944456485109767344094245346831514496886435567885106693173312674412203244842557056536530387441605491933745003296797984580240711072874466921141471825973321617958662179829794817884794452517018455632486782945131484877029391340747158126374953236460060168142528125833704247194152331724121216966064431981540122257786569391932631043427324749626741590464866024224843580030589096117832554276530112317607393078154167343574681602452852917282394314053105525874372393329373729609133092285152479916271585138901624645863145936446421066984810706940508692121794223543479574617904598162705081337020937169333911514401708505170148272282927100468598391968723990374933316322730257286000107785270408787656296896490486832521830558157885979075282918545815016764866542373505712406310914052417108976074950983677526044839804358591823073183361672132870239474979130212111982985164039638431473010550961450543952540917868448065442905865087204516157523511226039100559048285384018942017089540344607531004463945005288509059823866130232072516352345858900386783151385797324082059992547104827186751767127101543222959970197099305735647861067238786931539608696034201154536831970534593199979221926313040425647767328833001290214799915300018087572995331244840256018910229079814694648509486059348105697848271325640493835740677999716880448905777014829197350967151591093212146093019481970476457132176454410874542293165547941200431755084790143401758211497045126831250756184516501030444311024303722378738003139615692683652905092458478734025490968395685255893625472320264980381625223666850717175456062030043000223306837472159177349613112762189477178623197373688213974286427858969666674144250289812461078913361581204788978530908630753410361729251849794810638377745987827164495117619317444287701189077705032594886830350458272972377601809511737399634134402455049486843763061471131026427102598593242973552586858976231606609419001666471127981963143205317621471938378176749882772324508738412580663958800297577613686089513534456568003384155063134753809246373111431645526130343026669577995023893962237553955122857842620930809835162841027404605353947837444249523831196394690921656912009893440787300663238399944110312373108384040366231038644257818073216113111153844525102428723435189646065545148345980376537595209292546162549540157323867351311897775857747897144164930128105875954419162748316773725567391914559226902020848463929199874805649364769436143699107082984513518374416132948356685802332847322468921361326047865051760857690030136244353818191170466870361116263085077354154365517984493784828115270899251948046606080692409818307295630187055886725725637375354594003717144233739027480964352558557789676348555853597831387202906069170330809728253687676072404753331039668828164828254398246194757553976636697795318587113922608002635343325070982054175192105753364021758335678539850993708785465082060110141044488205641841752559341917812963884102944004361764285148970418683538266089709353970471245312888411097878535538409694430131607282199993574953612994528552540332165542002130704317155020304167749997722731632981394994530551882056914985497340732268160868355447152991195801368842823772068252080555231320546668045712907967443219183405389422617169723805897062573330766971115459796676180048485028397077633962407969124566980055890272527215329428658747982041843851289783771718751761361398189488404023329090130741504885864014341275390733548972083993828494480102517424477950139626970777632843902583134539217994869407584639836085124969425473594913915593083935161006796068607892507871833133250820608572002593610862583377389803042715599893776577569758549600486798981233326597696135111994760780993879513740208958082730480716403021938326557684697977945071323358790970587894453534752585541161256000305796438214324852865716831943045576340425518257874599848230881525616489993968636084419391915494574853161474792685679715341783561682542781658656851045181211361112716276983631225294604019201790157537548395659088037950881283768785643284731085079384851069634570868743637270607434463405809696133202792311883427417216068424664081026554637291857572754235750972392750053806646039160299335286543719960333895563312239438740108981703590389398573372312543028715753692510945799782831658140948636235440720122226382771961276732924260554372506164172977545123921931571351023162665840402609359288366006792547752264553584370956644747257190767200867821080582577531915784013626913583819008158086280779324380609931082471557091789679354234703740951851865327984173931593723571788833400691478504665149936622890722701175886240721080480607027132680800955743412753096671777017536854512649144216086605579576846974184262546875737000673440439746284266232671622093404579585324500006985543965039885953844331359045332262221627614521815957914066697746563169727736424573451660312375760544041861961612824824843243289625378533307836002292853168908448826583264436681494114293404583007323256582053204453666397325437021595609015544909331465083327806686522451436413266506969029784197362456463346827200535246487879630848956586805227664674786619480920670050286974522527646716718869659260947721170322681602870701153585668640688309616297555831015470535579699526217865270591316481404702220596980152881864989136553819741811815793618301371851936539616379589205109915813157931818798045186073446332210663183009278500648112945546721876368256668529403960904482564139385689960908252788682667244949976113214643057409259296958790419382448770338494254737511209830148972130826432921096224057340675081678627012035220668953238238477607990035332946642592841725767945890137786814307265165022128753462334013791549065321819720196019930349097409008209125167596282458036348715367698624382671935710679817627218542447646324136957598478489089495953908306993996824632348708151909791513439549262932845564025771585631842462038057832937985892309864801939861529182977242254256564383546708617413254499083889737641526612419278605802782566791762553530550953471906109251840388776008681329394140371331308088671382722323554386115523939919240793636189662505775733623409051907055490239002187700753097552252936520480466262968393037152060741812287584975465613228988340155076584353349048709690742602422841760448775222831678013319154196295569577791823113039825009034983805043724712167751774264231501239543459153431179395245526616598525084644665273464861426279538207036073393270991707239999623912421629213170475253530051571742782947398025282701139913125029056984714752125697150399914306573800852452284687941750266042886975817511177130261200201869493320312610912589252226208276764814035470947451951242690769594907533810272845810263286064227348162911908173015286539950968533174247613199867958970924463764403454813229462002524903643273783797721243127243830687066195070935276628512399051961971805943034724435676048863918281647710580041411821130485283729186145480427271050348720716627428461429252207445402425625410352593998752916336371156901524052321807412874804407120099275358540756806856291997154172854639433532743008147328612543957982246645838426789424892243363208063049387338995446653563950661579491408062185956834100941953698242456439030279948889941148154265908516075947862804524296893088511323836961244359691017951647276041922990454361425170640437167793850239965054825849617935135813320716259568121197217533392017222279644628911143255189145804888100744617435815036340683641598647142582915585970334034590429784195653419539366430452298108714223344806805457296820412699765042301709448691315041639522430124762421085088280534117942715996634653742385962936869310817531596050317599283229634180344412148285391109628017675749958474289025021152651060378923265623614917304256247767753120937972569393118713274598669535649481484373831773146161577194144878135382649885272577823011710725996663705742803168311462552787441615043974098680052079753220981747412355616617367643996858947999332444293339107485311997070181304012425725266783533741284492943670935578519139373921912651897712877686021261892009011406556091009024406799077551309136369392496075305737080990770947565370841587480594335879153923751971601469573878346565609370518380299034750682645861586506492555618906468305907917196152572227001682612277878810703226845511608404108030503548861074426601291215093281042776571641477422620672517067911832487360979314859060843807375205331687659943481810940618521765564277845580437298897928053385436992644730792160768114854423535427555633720116825138687390752599843595778978250241464744082401888469182353299514432546576824699005363814042297416403531111640801906152146528689327461116600840873575563827022929442310971036343007733290566933296469778926418924338581263921322731855581043182965344716648054786852113618592334568858954327305993504873822649412109295364513551551501047288276538047729948922564193148253236575518971684485228268035698947697706879470518675734832900604772861912466002571037254148051680462021461009264773765935367910930785442612601206761184601361977641230421297207928137858901164503311967496808011798218709992083785399580153986724868822276579706375662482715071620547412677860681934309145065499347866350281068893853193911097747295546286859294084262816560453021083463545693845728408197254584979698568929280297271021926218289184300823544174660757042703699197775050003577574407147436840525640053793980185917739909191642972068951326690961298893056849122104951469000324952853654773415023995793766874525113564460564302275875678085219971256866020151606753696572108238330211961894160836676293811724130399725647795650839586765333359799427819857005165622892352493908392224127759479935316435771238465229482934606596291535092483509219092717970222552653248168640193879064361887606602593816613494590075049106272348927740084094797362736203745855275239372326143503018672862801962632176164457481081943094983192278157454780455539228306465172271242296573836481530301817685682902657483310376160690456756940025901969621247888097267386902531653123335765495491108222239047023212068365625767403928125278924880982407555617086526270170146258575770066190683520293163046151947160517227704717036900544012711108598075327325869101607914593172803814264839950185380910616075762176203234472688458832251401412318715827464004862452193301878312565524856129285023976173418462141930921011185280063267369521080370102565567026746448798845835208964098414120800603673502244049431502766435591279676247098066929945780170852259656544811229696664141846320969956976048300212331404237363871228421353222679019010509026265747651191956317333385280304472611622680355889547360979025429517569530703913380353501548829319587199115172173837962485954359060702896110178975354435916547862084668535350650120965116264914542532616105951053276809910186823067388067014429359495841702211226649835137432544256594695952344388049642616289290320427073758416541623968886299177217228479796780639447071011886940010257207790737462982926857526156961078892538452123682043384010918321443145431791766859895430852508410799988188977360662538477214046120183422211297154925784493155488405469244316909866966007861964425946205188994778414026009880706572453174913262867924784146370452864520236886032410145641853588856091966890110593054456980051785467096384156358468909829927169858310985523125643334253001264586999204616400526117757786146728157281330961279064699283171128924690829018914690711985047567998557258006210432486723042664417514042325396298682789535758446870668706139682244830154743065204454136656701182663468737752532093398947551652652752247514441992147573191882410731866709438605080478838682878157411020977357367493138564812151363364325353793010183828473719780233733817558919306643765645184206463735711780232339194145952036352298100378166996215122193795132613176036416826304045561157170956854606954333153965720088794460214225574776300957900479326923744868825351446579405935084451742449843892992297080202863606282163157766595851559709319384707088019217777056531610866363443492190917624594639417226210386373559266454820182007361748491157050691582218323049542702086361559197236510505271791094754455517084336187183022061761071071202892481318214498775202404983069886097847941834417555074414574727438224586589399412517970464715122788350137138788296623308036137210487884354731552147063008171276170731863631028606867634283063378868852486060256399697365229605937711093301942902611795606448565960962498200880977990542099650384792727535224202320193341205566093672537973459714507718458129015839509660776723623585699513278275663479031057808170786748515643605363734760904066669203395873440992620912542977654642502194558338396179104712522370661470968504527062053262792885730407894490120706812523141137950195007518445546905694425334048730540227454716845807745787882149820201656006169233951714934988796625201382836911838941391836374719812110408950334647881608315777304092921379457237134478712875138513564061045764216388209497385609818699491474899402166654821677892980110014596256322544940613640157357568304876287039557973117335243456441857719004692567602744525457787977098492680086378006287297072628312836300392884442666985413774141020416853821058362837322775483536429829339640070792931922137829252907223200997556851813583587089320880196723778656349928017175172594367768949330627400570150000096687581534545126510357553428541298353386132662007236108610091450793635909586623200142622185997217166361192875889282040979376617793678434608839316253924192652816513233882464406148143951234494569134982085622822416171411114269559884394822570823077042701426184671483647528094715860668815818843344211762246372880666594161264035352012924372395988117942015632701897679250946478492030387837345091069139939941093207125927326802707008925021213087906212464170179567852524929604471427897681061058415581032027699492401833061008070103785798207189134834152370141107860711683747611505539714531497555747028312478617557975373176897547745990004568699968507618249074558090289641874886635662369368484896205870763096856123981217280798011397025227507773792996972246829052172067486109652086250278655965579483685301423908469425901811008708772454516983289616234991951899773994852830639091621438288525641280489604995216864922073240348972910180937351958143559722920684115818934029946140454352430097524024150298180652980296757710999332873640423192613844473998698849714173410388802481929578381789794851625087931355879039329542653748433255391272959408020003155818205545106424285951443681538204980054321653111030369337808178514980893579493142018115989171267209043427627947700382020857276066032587414913027188216830130088899483607505438767072528710518563950564958532411023593095256808733994638466742688804074698790064853343286733181238947131652604187134249192970560145003534254247787834445778028222593872637644699514130784276110720768699111486506764057234319960365057286703583758398994142123621668556226219447598840844367580540665102290966352242513569025293855335889219597029399845195130216492513739652195444489080699875749159340777950914094834365960165443546935464528399968773230083268092290780203361791213239248788027511070400785862351621336669317522896839141503567917986295348113885862785305698556012610407926522793586337488207075024628684529627386934423907445040320651359760168595001455142472394438896514201348213101313782897909919675287554565755498457308690882891290787400404021708166858222529997144096084336464012162241676692962151185421522781642110378587466868028147069969181910799048160289547976800507118773794517213639314874609312398084697547334447309910389232561150374013085938483665919687147594734343289053620530154813795978859675546233101428150612201645575091355545887439384489772185987719548550158767817450102020096514789016128167756222833938803107975635595978528958586461275785535831208389412519187002898969639471137705816654779093962678665895146861301628519151725913882429601247433089256500925949609629702994746949828059795106119088543723681850749167516307719184314820154675116512736162717652070789997355786054749940192074683177391993390269348530084201664476434738832365046256686981012000094490699198563368434463666040373049363916841017348538348342715899576758301228531095062367356902452520254860969612527826807482281498141994331907982305817192265752430836590047669532178940798674006622435045331292153865057637684923662816376994413746483629276779928896815404737257957784115709028325233036380740982693934904419162101524711516190482170924703714238549273709927171767325004696758504383700175650670304221397902939281558645745248527777984527822484871815028528543652300882414996522899113397377314117232250569164189515126689431717966548394239653351054197451762949275405154443726705738383773791463483981760052885233056726166216297912898018516327023047284501708189525144187000488706852574128653117454838813942575553231353373544744206571221426551541935514913250463280705247602537180007801090282396518515549578257472557896826156521263119972558775936696762344646734887861871883127988927762603265820257277611541564944740176551586691955756824134301935013678477535612944285336288320995754606129712822682775903342516222449249266430544467032101943613790512026379062734377201992551013510854336373145083761477252214668431536910698601945256868536038756444775785619637242790186598171310871167780038955114519553198100576910412650841108402427183694789659659226038941239632935156528246118858600951048742066480571482698391278312694580326078653658530522294048777348081750038976594580795322854637656386940603500358553858204965488240027658737430072985334303799159032797756011170178827521504238992828998527606280182598267316571901955449908879087837324178985223265459261222277729759161204774699559649988763466084383746198191590818878926013661582678725952636633927070518622808881346743913464078418354015158246154908918619908806324027469735175834458665715746551397458752614414423808403737153289357900580265881165127624889954587755114841873534877187073843261648389400300933184077743738979437091718878717884640220518023051525499840071180918143027330515245415487019314846333026057946559030295152830827341714055171443923600967601030998303577408252561603348246733778989985312282103058632307319844205355220341731181597145451456591030063845214223852504633307174367279094757604793351016175275809613906069323616188300594261262297551632676944918928500443283412546288555463172367299438666107002524470477914432748663711311340661761326043370420628989944466231913693183332167810599578853153437235846264139847988140412653763817556406045017773445796767246862240988680716393327100545942376361203370639589751449147042669504760621847666288089639264581034185577033363147010035438616964953992071126377489555680852919362156875603228638470401465616685812324666091857708200066349948597479586730543490848003610991875516932146389372808026920409295719181421937028287136940776540882124395567358974813872766790030356404797787033414659664617409668555067298200530810587240701531009784724373174853925331597738136049095921386607085543599493298267351759117613472277764330864832910116855574291311078227052980919140644923572486793410544688866372351532770090356758884348769979400634969537251275973155839266293570736190512510793981261337189366090396747719661165730309651925725115318128757421622918626620775725101746013068999764897700439263195567858077710678313499120326995970717956101568777898690519083065031721398939522480830117093603399686430284165935089971685986895884958594074640809118933908867738229120256680145977064793694847254430593445047441728107916618982765160887917059985382055403229225050037205226263707637359576260011377822013721578709202215469857327314223083715405049947425284517867356608878392778433939153996332924682281079766295583908165179331449894852806732467986229479883494123842654155085246539328192490130931909909713022579126607467064556596541887085409886031402151632375224601172370242804924820454363148950593077809374107779421675066975792466103726579150579148254877674771153093311304225614087155659147410325711140392457292939930150692026583945794742620599769015447265656371183734645628928666903912955279343085049872803895449779722208824394987229055052494518396993868965814945060377656092909719121446207048005206370865932558894831345719307369594503605087868775590528266180093612259755067307449284120344842886941658949668277461506329836990310499959544479540877487009818576410434518655358009648239971703380246484207958148576769783836243653087517003248577921223850493323454008262538746890661720372698703587224866441175217206768701491858937533414467268503791317744351119870485496895715701204084023510046442358553939397727415478841314227566890909002699633847170886409698208583523049477323759399717366856325376897462850397641436350333567407352675249442040570497248441578145409187423856919187281903447337958022236325406752126128836508589657933809474451404616716398205662730890551280716444764709142413460535684647727824768125924649025195814979834433000135188817646077453136374355384909003685106902779016747952437313058421774441588412124922879755532080960341938597965478056671589326857114538681915639074426984512711626497492168065082107286160985924991791612086270651105303621521237492101863802610965807870815007899668715911173223186825407416580625050578648908049874846815160037102376233370571233529973095006824403829788793026519422648492881096761457215245444177809337429100535969183655060020047221392082035009500411318902003846126674595550836641516086616269497976150046824581526867109669930215030928207652502537087176433254009444006383612366388860027852984931191864012623480836368507655401360687980625274941034268770018071700789480504859272697394008843203631062247849410283563108416396892720378392011156990274566992649333800787009868681872106817491319650981143155342368577614587214516781298186080623142880146839017007392778821356867867280439143621722595436107758499742453619724428469484887493867748832181957103969032701703723622884286097916199413338621604474148465203405238976132871034984889703304046232642920754944321820912782787916200759918957063769357104511603912621320728943932422307496429910999613931818871166923171617332079482642253358181996138600191100769305555060235447309381355374901639789138914540270173553271876348399376313748871877557230214075118013696440772147460132376111860502930666884293683078950103894765029478655311256038597623825888164192857775062650738209651447615776109207777424360212792877975552772479195288656216327450073450686213027746878806333101877748934379216058288427608010518287656986719233661704415645585684959041773378713938061921172090477952018266183119939621964346841859115926117294872629713888792915907435419298146015061107607476806563077930417925950102524489682133162532651756112905361252188249377821276080759504309088824672487845527281213547088441686066218633988542018052540891351983792776285662160484194190685984346776353710743214065562758832355948806245207982181003759551986305576415047957904250866259154654098640956687443814407007249637964994960033873927203285707681018233218411410484392816277539457268974090742608614514963918628256440845281195949995409482520003493744585757062054512577701932984416832806254963826003779264048714228929500856306760317657171080333840437448014534397854659404633054118936702629575161821954292700845299103181382780155375920377383113486764113406634429172548154319670322817473597502495052059037769410053313881052460761358884486106411554602001840273768850620094227062164911785163523046354647018570773839760232351685891319472521201337965743928325419595320207229352079335455993518776182737906533135119506345779901455265160021515812493455103966450364996624717142310262183305783509861429767976547428099942865035128420394072265418713504900270947075715642998982385952130826510106604576529291357757758482455896978116610848684012539353465927030198588188672451792108245736250784392977712788352497951346545160154842048312260043899454726907675172269477462278360624470925821205306948735784560074116200224566969031450849021545206081328197168706714796706416248543273482928640890142006955764666071356796908113659907602438192400018814218148616368499864740567483886342040926895924939066289166470190484293471914022996655058746119105373666364879653583266128904388447769764355185208780605603926124351772376627091708764461138866948331274658707330443937550739470551543204188474166863153133001439606909180793568468620174907978223254148371472247375581138823867026254596216418734110049720990566663443395513595354658162496293346367171701153925191710175746662847754107366873173681168744453942622600251107873039776757628988176960868394693049992703887549352547179998516054218593436222021976397340701586753098591303913318391407662112938246376943283674862176146710002999487218443053212623902205813418939335022944055440281461479396284529296618326760474252424798853081518138301108908358287196024883390928497435537101111089255928954709468655969298742480423821740878271441170848621122449440681101397765427904406263542887404911968669174816812144534237496332843012959183430930048072714399910929709164903217760559946153418761884771096125534777346416058918512890583371483691585976234195600257532590021644186985454902459738702644406923169392088147358902890092508960998693166585635217393211195567623632356302275981059351309787303887656756425835018068420286170811863321128124305354662366418306769391793505161540123973846239715233431558549460204555817688418946874288834375787594881599136151813177205700270674913568240129379587146120572499672044293572352014887610785317175698303922381695637862284089666810502199731003480319019529500497401220893793359349174138221076988570539528751312980274036361553453691575898613436474601078763167516961458006817427490964878422827259764323068848995148256678179608425124273265107708728781655710640343284269896600344420315584564128756830768499863316115053785860597714832048200903561021771984614312279678047020362159871433858383827432592593360373470284209306684488732547965471558409337653227888772404152114849309092983375814834412044113565484145064454713887567208343519255429885323662617488285972098739884819120968143522216778578430664116546810348393098298501359235160937435728257457290876426426810455892064815405012997399144946368749666829732467340615066525257807375623235193468590576043757871973326257733093845903157503873068446825534452979287832426144797801572788726812039720066336949354820907064374656469903610972141984677111283769482881614599950769295352113135251125404118468281657915646926310689842223364735442546792607077446783806352208897694513634169283105142739886050790201104543030595142547936469046078275287477835876862753358295156889933773201820583901732554515693605254782497102726511497823650335204097789961688084933844741989565855670503797694849151838314550914127065257790097644432819339982950442847877672993374512404234686878030563123737647865301708477542255780661042788568915793421502682214026434879434741404935831415497395679726350924509212365695399661987654085216832170085493569198244963248615316611561652859688150174314657662909791993498056914209481169617154723036926473049728662802233427237970969235494646903384281675940614125128872955835775227582757549882240165755735451597776520167552526671701244026861817118193999093321394910695127561341995530667431417765630894481788075978813152738811427042935862092243750898063926448676277571775171152784030738066906532147068605187681860933398725373064276491992075829631319552445852550985208526913336598519167079083275564791101953444523893401060577419903101647317738171789590172765628177148753534375756588519432523242578124323356470836025701120491463171745710779943349000831026933812431276049321763150006857300013142977786415338646003175433375238173899340929150948909178137144055710564916387605087956165107944195763243811588338535326272139297493471174631838488223714609258427911748345998742586357244412631622148952599111724724986744000979667847105023238983816392569920330351632276681179807364468075408852190478053887695349425154586869522620896215771199783467872268006854052813455338074576842452377169917407585235587016643978776272323148829224845268383995588825949049441298613781414483598720995309338812609147802952964023852175146904006531745812837385683855312823308432876652127006750359822648295220725544237961302361961391545428772390474373830684219373753242798759173231655026400524538163086827859364081475318297274312187362712773979660544622632574318270136925275828730907738337107334971030894683999760467275209845471219805968748827789689651805319078170010587908662091216913602318727199558359350698348996825113194808728889613285537897410169916619502956906530002971066576306414384684842004169396020773922271428549417424615653161679148178283441896776033365431306875172158898448166486198308785039805442958742425232595544759913912607521139536559533763067673469614822315030639228187146463564401513183437268875291230473291004819665124283400651815461144140982968659941615782607112880644976171978328634081979605676949436871023373254407882899721884292459436196950848624214686482654166002506676806364063536642467502843347558908215231599676478613474929329860448118321576163334272782985264533449482498678720581080350116237376664230269441381525647681805359812638296843719956902229412044629321747570827811702875396376466121791006390125438966159779527961238036059070191785421199662828714853088342897831730445193713532685051212916053546343339911768291443133099758746531845196874436455926517091269815998139030167717508497308819088504313971629926226773078412713981041069474868623109315660744943139052826270803596066891704559419192013961108353874425345010036829976154983555978222629994135632436558898606064092475269880630742227012988986844226200258780212585702831735623925426540603203326966799027919931168927804295778649892002704517731395091265891174346783987633634274723618655694513134705548538962089548627850875450478482738915866027234072654088979369616178867521621631905524666350915783422921894250043029656415666579519659720081044329301956540722698577715218956926132419888594208929755046023177550040117602898345933620723804857930261757791557210514708257655276971287517229498593757969071172416908106827859473400054644559759511873036677788844730053158299979659124090613512562596723911004243383760077301143574587961320473948725127513670162316844328024184147837876791578373980874006319344084580217147098303217093729546391775054500757845844200237521736376459444333998525216398817048637489268600672929487194032708729142259554824006620415762457074965186742204972067097134475610328368715140701636335748175718067052082333168182401098875789542963079797209618275431567189490353780942770882106656990976192305963650692498016450812564139813295027420080041711124103038169419981452578207657383064758266536836009733449024210603097729054823986227728283697535817063682331334408665215694390546141965746785639728556971416082911982831787206936272295946137143178212711832419542297136294471538894754753234241562049775880385471148828707750866176443055160426503501159655079690820221834500460320485217881178536521972380425469822361447436212881173383596571945769661266437907647112990382291996082235745025169847729614160957041920791066488345067288763175050493313397676618322511330779758816394051716677087336490500973286434962259122686179159680365876250489430119272772888174002510111222658177346012410206077416370538779710623723619456883342161800378042778615222554026098992572616697302951469055688965123073262292416391197756057788399353333435202517698570687201027963208545299694410573436851042022043870385373024925962049493319839396471467857681512974367300749682439866987816139414722742628776578878474879546822794383595981327308719797577105683580505060148883645734807715130980280975134758986278325565875290501801128546426294708397672660666952537967909803421745403133262278264684229016915172167766128067842502542158991466320375510905715342015255907215266610171388624177254983628947270766956703761283914216955406693624862120550307648406519891186399663916764795183387336270083322257694565050673292620800747501347000024335820672878202015798736587386023321880747805280603266291853776013013944090787157260924183041775619229640054479823111887865883549694833421310455676244654886910880102930194016818751967856396864195225614924807985837101172978779614055295592891578414194964629186765311503972434823929407806144941182823761149333930680468771660593897610848240879163001303615643293752714047672185922827982539296184425651032370735811621192643095945956010725750678862483774714492862834383848675575592168479201285230450374216356135699667490570122271796994520753350690490324459791176434503704806925767979694281195059274396593054286373053038864930758644044150955111534287596430620431983861174549440663703525575630045970620619511749129956363436505629394532056852017500132710460303562605241611171864916498338369862490199169471078104726896137613105602769467174332412005628735092589317031458813803842238737737426900319859801912823029935296663884393299339418727903229102859358711599183487101761703550167323150021189253767775727278541200963640048250791241464253807599095812856307174965875209212860241058181533970504570273240037701980606200554501025457532999945597339395951651835828366477687883229189032637721434474021769725330453710397127921484605327937407427814413477949118134849500240082806219076724243577408315670734391998211927162030711966285442863507613136418141728242129018807072440187433715409511743493525989537659657061403326439348697742527982128683585333961049783847558680668244304495401421597250920152807116178786847075049987567631433937360242382231493792848687575383995219439409227206639363965029902035372292282703801553759371835535956137427690760040688444387017040787077247654713618237444619017486949502572916889754936607185342785953846559075048530423244288839471934344847293306373789551538428962498402669980020021728579760798524152103856338741168824400632811748789982426849460262521248768869292668964851547921970727395558785064633206485373419634228317675875228085806835148926796012801820352332684417046411688345374924001906211302284570159329844538791415110142327927867060947612644675841209237685577419723416731935858427801171941341750109242735104553695743160833832155203661451156071997021499593195871418535146604608325791873935230356823534866716778202299311300019764401783056079649387391546697734816176204429650216322435409281589079770841426320469211616680598055997252030688150089311212126722200774245695063234943934167647530550235796048456277957371848922433903590152325651605445693439126498580923758293383680096642530454017516384516544760823067926605653659317723948769763167967987563954557088393760305365772116635616991824575278082514255032946539060166364642345292338543061905735916805189804665933227563852582771390623857025676104670448754236770358180864308925935889907440386854875072359162124220664380481849993417091463533048060127791824766633893167879486315925078936730623192971625278614383594426401105373652191386252189632351713332082543613967842374930407656257149654614920474246266571974252347234843327910624376485177408454029202280854262552210057073393717618467430208678757195436718602019381899052590787224155465258527905538843602247542526904337596234959721313531560467908927394717854067946047005889887961534980659056368817812933269241374336975889040434432502112101231677768472872586847476836900503155495628815312353612585411956806077640032933448951463428017065519784482201053798224532097708136300865064117751450681004945399481653624682969559322250546300310151674841980104164544261864998459388641870487155353018820025811601797664909674956959613336840259652563326144539158658735620325288134336586775557007871054747274488238048441443859793098080131910238087998320831027339893259452592820400285023435820822273768101353636678841599532353651571573011302897414146158041971611041382972117517716250199855301154965226712894157693211145029949837782119708881000959232990184152598002279632153069199646280491472227976834445407659746633834871348970485823409603395672643430054119899707830169707615164370800217314563113262144996221627167600185797433127306934490020848993086282050445053655472186844461548580740750218548035698168748626879728988239167000259581383499310552904954577094591249265031614501824875110540007255010742871632080879655576781922842427336049598049048726860185212140300015445093670109097680011606066050304450928275952123322212845907665005715469483563313124745369764955886835049172291519553810523365532766007888385700915692969454425620681656911945009217038772226932257912761790593728620135239549732357680972352027013122689703455930287396471415619872217826598826329929500053311486972872148461511599187401896471647980785281426121357000988268171739218447430253172878475842665919952963665463839420447678104454689630446734251121088499381952201958346350999519812325328301012817161119896477337279792640813541588453872423335867566862548045251290140090112841513945877227834597363974237700622075011485998791135111584537235160668592970678269676809160585597741714757267191495532162178013046130176784237387261729025427239432060419942492427557989337292185140855481801337122924872924395354931404175637022693336688219491408284470145984016841930336719656863382904484852896501560333069979614356207563716030327668050277214095631618811981930346245278101747920783025201167839254750253236303471357419783457293851580197086767458147793870364392250563835516310968151810632620030340896804983889775041508838344438324920655921700471884308230821187233261501118307892894675548282187727145527528253988588233805485915992395094046123844907642347650489259888264457236206857787611481998545041157539287040535111217081870983442194576220008208407141162567192360891412428736274507969631380859936700189158180420839485869175495713706184912863301258221954413015928844123866895580712231259811862911378015216503266811304949330476709819058439315362680241778577184874124027652602326475573213765991792447164722283251747039353560341006414984036475356309853726460657787291270684050080359368429240149731281705695723106483342643377492984040887365020154496330087893492771427711317809141760803501271186742634338460683349805610625341553506427198268971123261005071302106191917078903391600991297079673081362221542579599683662540313963223733805785241157487285812811304962025819278272682724411718564928944261142678627203150718317732098876731797300868768419784365814370555238489029153231017552085644566776382027302237676467101733010350465325498812221460810031010719024218451033184325915723748304130260780579828456126893371406727908077635372722445009533943671635803090065242453601250682864784951853174117727677910078606382596960131508487794348824469499338975632541163564309930843139038499086550701316894380901297175059442899218655123072379724064537851681189602383384372778734610783832322326178930878899047471651987849609151341537030679735101589941565520260149276804650045133894965373991000344663095922513532013994167783513727318827869882297245871205955045679833872147899825117257753266453427791315993236734211131562960116170004524973992858843123593598790386304065063794709683399739734989125702867350687771972034564957250813226776772104128773120815899908317330941425807130013007045202043835803285452206665805928525802208384962867844722737876801694535286941657296540245557889022979475712569900428373749554155632071892184169301566781777116890210600027911437957347126576561015060196016245202561730297585625346313913774877853438890073718044860527537004248310877240627897270603743446009720319978810263653222285722999334615720867557891486611568979343604908378825495392930001190594824135693142315036749333843359249497784478461793834300565310779121851859659551140830435143365857474450894718015055901509383293973369191444797279910825202535042350621752216231733700697608140564191287567138586764738610778486863148316903564290068976552224220293298060933501141061968425073542836312877006401969011253140037471073382594324535281442051187229305588092031886663138353533499318832691605524547800583300925213060198163082337628695533842030876844223432691324263060674859116779704766601465943093487568326615401550371926291550777173923147838131393014956347200878823899283699978615662251524640613397560792439407362681181528441139081827247128465940981243564408044573201875903777937132047756414021586019035957261402554361515447432078272975872892294417912870135287312649310261328939073749424517537356916751001288263917525871761450480318698319865163915476513611631000758308015732104889633528033143597918893847594246829257264605773748293932847005751104135924953852810890815677563548508210011913653046924429586045579375301920455236740451967802764529883466849586166855370226120974508799754463498901765128294728052236970998649513538873260967242988817600534860076132003721469599475567171032653998661046288690056221309053307728626705394863291774242904484463226919669518555918607358334480924268103781598831545096730595661637898415296415203885470512632864953281230268790999100620105906601824564439133979334394285921292608050759766643230644472355332058269308008973840032801888456216164763746037210478641964689578517694873816717082648775681820197802265935730797763156642649635553004237088098392309500248352099778356518746387277985971948067154422086743820565211433086399551490472159088563691378958015205291510519841957087318003457958431746918484548280396787102277667896056542194295065523101848509890305509249399958060684494325689274174827731581056593621591572709515372584602161396919641900361021256798151649733421055740623828557734311159905433789355045193276344006850800117651309311705200231330393469130085137853526605268815982810740405997396769692770505298416354626828145944101611339738482378268806419605360127541087234527154045514477782913599377259901852630895045999019630210494479206854153855226159850156944099088264702196835107567831213466864765523331951519780120848810541725581590399141031328787572160674122273962698476779758507065399710368060313859140279593177135729513966320919213007966388844435172970271600640882002048374458605078122514367904025641294901529152796050387637822556175118009883115643259453438352432174078914444167223094442751353805074778508146563568372429555910663800671301279976025691893679847287644367868896954412686642114897223581033241872048729489643979857705442197240721986861316741902339630215527773478603204416610172699506871357824209894018046958822729789126134380775815666925914264742302765366310685795699659792786306427337598864928855403892559276394286044512459311240639177585754857696513706409647853150553480241301691079797412458602574229709188455931142051035161452578017838367776019819926415578426924615536472035217730452285978284035188732457094686194163892950439266925688998435757416151425796307269864433841294811700028401796548524115282200437078170722390538631934401500260539591630336427537859314879424997607967901128528617571112266100243079078129722741952108624435183078146449049624945753311689458603230614847632929965642709671013423093663683858513910919936046171945249509699796962932724400133848934339374920387101833401455210907474905906462510857566723809038461870495837374552816584784871268623562344536770661281814137258524392436966353250277126605153324154221492143442844657217168852756599269680175070455091777763950244216981951721559132178190887180893185323915466407840717406925308735633201649220703693105928675176163042642308562428727112220444406625785817990541217733133132501094380976934045994283459477756089743204647525765836738028137939432306426378195158451711370113209650368480722857043934861301797333069910824844946804475952266689854018450058231096150112250305799479829126307838253389733392101555235601068124214938215677775023352995640221809746268921240021401856544173008598670142357669063654858156141625478188536424699699423621359229900052426182831163502062234098187245611578663021360174315315758407600992800663810703930537040918504070393952751814118436450921573394745531242707975755224834378775400292886713645779146943872520373539429054199159664980674621887743060956638038666313958957578318224446730688247071818026799857619418068360113543355867702575908130758025104151751898503103742025700591005727031557802624158057040497818743456681325988947708461553398978501198045155950990460308485669184822970311504815778563167917634133456793993792930058799864010010781157100741075201809688602865073764599451163417549370201921817436459101471316253950593272414679966454745933628255671316087365867146082556462137861917097181687347953044627642430534443335269539501742362671673052133960430676080943477109712581522523300182298862603230835965889899761787774914217605090948512848539745150201161493150015204077041320493325134078528158264527461085343650107025057980761327735848230409656726954260390571414246145459836721060954410141513733050831638000315227993512039832363035883826059672848243069790177535541861095960613415192917227796499694208389179182612044281455832116507136113293557160376937267753921123319509582705540491784113423236847715214982522042894956613273052449944400655644646808969683022645796866529048803349129793464708138913055484938288069846434918402489327978187893399498486293893013995080691688014463881836261449299943130182774694841522716042281291503255417542750934356616857106899329634384780042496981435524586222765637732875796340602913864992318062443017756968582922453707479727071977402929990853143384909339061338617820684293768008131422972621038795286743619437035335608600799078311628898843072519257819381166336455916498547402158605056630229738204483389108041121110284609586030528764859076948668935506935163706548099268539236702163745022738268761336022450622026896079877076568028551979972216544089817911182685823453625467848728693598179051052132392581780601791625212097399158568866588842077812684154948944964590107710271596340139963961434254414573426707901480641343546450790169751479562060636688394690857328308784679368632378956583383029949400344467498440199689173059959927619278891168896342674627043240124807092245557190618650641148436639941485223410538851857027019726476191218529452533288142617060254985454338979500554457066364664583971278430200624450632214054320960330045487784759869280006456460344098116449097757565046827636304755514674308477446532721454937733714099647568827807844257061517739536744261688725758346845026197268243829675027779583642647537640530893796773088295524242814906652286826689142367805308062361645031478022279776869197571365925647697079439384590016055606894575503149519998144822960810607924973263158462826787084582136615278422431823344811917994773840950084087635467575424339914566073028573515808579181415755663803647895530049563241241206569139908664037116126263233970339045718201125655590590194230361250913800029830589958204117141975450942057029418391513840746713547520462961575053893660265381537830911372549659154073904318441437823113651239965844884900827379785911828974572648188674820656878985907029151740437338148659619067069066828881377671120927786062270018228891582120618477499955529422054079202743667742509676179068810229798365077770730164665425564787777398818451330047053979922958163557271311690549623017855167892464031815417068902580341830763003907373299117340018787442285105508306192021923370254504646252440491669051744360289424710911077985837144652480223800237269232801744009163132838991624581981597166868598479459673045266188689407252986305645918879453058302908077419974499850059534799926113682655654843424879781251754802834152401862306352781706074700127955593501126999130243981567082728970712364241728372372269915876616078230135402732621906573708673248322714304016666239985120711472832843960253053342041828304627431437493445286499422618467938769547747900925439201965021947113731701032683787096580817383953775904174849577240824250469140038802932398926208286339359335492163330999982115594998519214142078628659532613914195341557231373448854655836074256294102017533369489250464844607548584484179359115162422519245574518055751812499272282120618403066770011327159691668081186880219711137232964470248631400687799431411921566148099580738509429363151148528887659224772947442627025059234785610621008664132677488773182512863054719488845669464922788843597641352602682894100795075323196740079624675451777261977891899537941301000622775264256955648304783638161558895967353141374901280725583301584193961322575268970973847623035449609872940245473694483400957720033687709562024923494422761098251282118487714563088645181989378637430061064894088681159885483050859971635113831702659171985657196842392246314255270546137431114422759447771241366602200368018089210444694538038737791622095549000944579141269006511562054907798119526970381252166937379251281172621491971086549032227880522654331270167786329724564486085239666960855361923713623174572244481466070675772163063622421995986331978665149425405238854665806531326291155138752281051648436038193605047422190815668913918046912024840867076220575012014906319436599711460358274899995395000359768804156649327632773181116423071012192245838908383898752491922088541996388477961805158229845526840175233835975711540568813451001797320551289474461951999161498967965423405369639765200701526411014682016510596259329216542927760228327124734476580536752883172549299787343523676627679224765509216074226950948517318351837170247310176686915147162305705227792786448221282944177016173522316122486192147185944036900164786932583704213003749037529202620122312663113559868496745523696166865539916445782847745547573231181066383576591874266410028091355155169063406364148596402232661877936056029320940529478066917185847996422786278060830642636212192359537118345811623867431925928345462878826796120026866000356332185997376337277902396395007391085846381211183792019040962359826525753657447390433077022848939931893317900797859242331871093296807858431473231494041035800805225336783562819032273189330000853205520337095860694941792460677623503122146100205247787417237918117148018077229374049365596738839506923954030937822577544476791219822629189755681925069829589201764692432206997262809038904412069255589354272618448493105219964364603107211107655842707870681008752836406964672112664206891650928979026067709591762545527233136104513300111727587259571708549316138198612028210182839909812804229948469571984417333838223418349353278043686667625437141560868562798042228344385336015859262383520307719961172943497170086122044888670492568270026511183092116536635700703132210507667409244686354593300635250401438908075270797982836180060876842113483058186240643368115666234097302486904064737725341744177901758780999242502389490196197469743734973058467350189366349374816329317445916387923616408585728852766150077395743009988556267487160944685190127787997933095067366594540528723558540635878190138972216310815482834822020959067321097815251381884780292303559693624062233121846405571299748670324217391267991856559860556871914330196292037052153096781995389318117372580048802712668547770695658616836436874905005128662091376723659834288833589492002127483245610810191086284063726430848761327229234971753036169992056240713341336293590691473877410251490186585128991502314946468290337038538526131164647381150126513056233905899696512073823771438130653683943668375243407861320675364685679885091435203449555730905762384964779728340983849983822214425474582542255607880599697385125072597770092370247919812968209119870872716127357153316331572873906440893551238087161639210472919730875575902658132774263718616077327579784262101306655269345487878245958587408202122801798099481281896684259967223755657935742011541100292720993361349233315183752954056357815753980229576506046650922292906716289920163794946134738890668845272351683974049979750464214653306414874432336481003046233059063187505984997324028853197491895912295642404674044825288724684060438469753653031757402974166018364072930350992259582088373319223147883697466996311633534292420478002906467347452370351596751430696112155793560587090268536251832832403067218293096172586255736253412293639284908475431349295299051510254787903546249950044804125168529859544856199752513225665830025396327730513902875337847474985900357127789953127097934303321967832937670092237940673951148259164524943377943045868572258748258636499472605162312597176866201336648027204297255564811143608058688932700663801855309432845152997077387703320336759130752961813626405490839572544175405507082505353729765392601773646938838644365812473754331637647423411204861602909977179611991349157581122760884537222662163294636814585141548210961379439779248738659043021238344097884863072270159467541525453019392531591919658995215943703007739959791014197312678678823186205141651120595702407542708359948126537814274079032900798331964751886348581428934350020240471067855546663060201957637215969378272027589020032096730420834662489842516686139260073045027847933164868198624443628374685714852714984498709235405625604589415049509781577013137319755970984203383299783957073521194634800780911432815462480314374523282498192781736897177361075829142059302867088930230332945052436285438623314212858536033430492684079943871205105916612456534708884363626771308051653838239496517550778382498233192023122039214684605574962156110741138380691025622589612310877645289826932421554330403320261508968869088455631426494852446880060443710220279756013698331437743785023559927428766535848301567369324010286246418339131223115946970424272248040417249006601689079799897178640900129485909327441408206186787336573778013524104194095193387831974255232109444884232649032216418853139641284905107394499996235410849631022555412037172287717136962005548988712434460089204223282758213763230737900093057419681681135193746573497602566382599079527342589593656198054769626180291509057518239299405942837163475013354072199805016577380705627274337039550905000464299569287518606016409403684987727873072049099012453099865731487735701119805291466305037292879057417878875023121523328829397635158385229433680631025859162878172672631085852691177133705612923071399698413559231780294973486661744450287982584943629435664844698777070855168391069960406778376388449664272530360870159543022925034559155156490638869295728956246911236519218199874989489221637158848400500639498573933127895746777712837223175645336311291805341934551631213648495875278187501234416026797706657678130346235269980805519392576726737642925158811851968357735362256543603941187644632579807634803609627112146263265606885817569952717332806803917677512489526483394037473767688217164926010313614830878576717561285257663581370943826995980399682459068604309379221674810557565061287413507904327887627209847503191349070018268122535622792969230760700059171039568712440668205097238767674721446451991398260036256842189866541457019199852237709525883963260064462617633495668050786040117373702950247288418528505986475651848811848047244426107142977891647884766190391957500421968526067365721780256369534513679972553337461659952505038446452288075310181398245967931668351195543534375209940862014625051300924744863185176196669451256329493966003370311509847621146716987990297980978192470900387896518935995742367709953763221360079184137853087988480844461043855426072127992414587952757305973915663374229399348607494792946223901987028137804573669772406701460133417815239882788974409857851641261970798210057703284417452207086882057250901311239929348328646791752393581155445193113402033594596953276435026883777766238127639713495712629254400218020422862155791539052200266691634605721585618525055339709153626912400977127449650774123628926795500475750901123908771153344000305412866507172457603026728337669219485261755612741200795479246997267755698056157595854232075035241805575242751619935422505287997954111007323201575249237005845298376611619759092105045670744597021631654661900768151165718767722585675808302042569392962853788074353979403470663556919093243187492281266835040820799107433280347512294763626812509975314118126242296013163005726502433407092118103110729714642464577518718570429360058378829759360359145589619129095887075637830506926314262746360013426273255784844278792600663148237101604946004247858403508746999349512109948422796264283985083787956155365731479879874321559996861425484862420173871489883453770211712253167260812893430179951040435320558225637368103371363030896696591768860917781280911876965062923058519882860905975281496113598331195752589768262684923201117734669586011349300065809725582536488043168158454041355856230798412667526653489025923890644282224330279801497692478997761851993287630580250062301441405917405559511919355666267923895258357390480478143268629090155896034316176322326419741278080777232241361393906302648789961363750952960648605514898445129808067518315899009759289159503160884385539177949345322582421915843853188223023158668503645914686807501153303593862935823855119337932115806530564949210529077263443754766294757211427551156196165124396490289100330781966667364316164844532606949845537612256027213371117808798797937578821267381487518913844944848196233027711209732938465268967996322350694247015461799593528538630412376465582482095135039218439995062122492897873201051848913902158221350858531843604406644219124357763916629090924906427951228376267323050872455247397582931163557385720366597412151479329787811011239732038757544782196593348880034642761288254366847912121645448364487919302226618667326093652221899101200039088040461283331152573333140242060920174372515843367318510654322600722069234647040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000