PREME/G/MU292021
017525000102759087586510513282323348500861070046760109654384586783868086813441831158776154292114458877566709326852335317460517231460262124560964152476833628435024019733406388446625087020091883225695335123023751120391322802849716622835686004931891113021901936511360179342843106791219624418692905923049183974524305649785903880537821957858381215941888990624161569673939678697909784647370760153546000001586887682113793518196180655099066511359255691851025981649227407669544551208604117688450281382467661743854567571552036188465248473064259407634647028818662406385392533293693578239284347265905915932154247096446599202051727980933208403690477747012486016169038646045500155270777869713607896688621727913149285504839575196456595057596885524263166716705903319655184679706994133739092668328027467955421661304414382725860501101740902565485061891819013792286988081136846458733987594881759238436914678460193378794409173884244746617055501528552438047077308186782448300513730823100458026579983136717148130628354877712774344405444843300398263729311840580381903954997350637545458525729098937370382512053658153657874195006299036127353299808853821815947804928835397222142573463478064361075184067195363537867020443777332432904297896313210618637441046434657225003626385200581917274428273273217272487715234584641709785932907819356068538583256144244433500118571264384003844546947730673726405016076598144078522373785501222279258782401561218923102247588672478008712544724057871815165860301263461502548216985733477842059468170559407897516116205950394648220460849576999796062031176089126738571980176648810228986665767938941897058896744602838639477532671803179388816330820776452732839203755714731333198882932003142815264327934629380736445903610391071402703527465338266135693249480900161551053744280554281910173471654524852435572346543951711301614345631500188553296122411417929175852674535349772836356614933615036338009833542355696753700247110269227011564927435784847201821992275056671703756611388645656847549380757117043665361545738804538514007730747747109962757353367871329366637442580667525516798959973322627215866167595294369698120334828766805240492569437554164435776147387221418622476795637211437751769537069122204473833601031411160504019758101926189762896446221287319691211258049191176996206990693782337376262304924017142840323659083839442568766127026381719509297146465063109406667914143156389727993817660804113813500161749667903079966257397932298809935816881984940047962367719363853372362864710157219445460435749400682747066488116970929479399665217372017436884879640487560608479484553324449244571464283172546661113085405313250896896119604834318236980966157916665960927633769557426656830042989049625810913945586343316129325153034934322118474798702852089119109015290950507029747719614103799360686112321596301530516984304541049052290071649741319117359957030482771307656115762979608635191363630724577482986837245930070373484091022724846141914087171113483501729090606401909594506725652813533278069704736345440250339523169938539044875033064582807078397376114184991449609485042980861778466922662440763915656162118682356859529374076894122237014920363423391890323083031930264516474679400039562965656442005642946065302640832197053870305015915024839087788858185371477572753751609805816706604955209245022139284316038087653466875831645546894232675703742211392195321392141802409130341529290119257135156485814376161310735308749545707711341501021130898246690017567860628298213684659814991491905852516271490498976214918780474459812850409704383777971599516575969197545242185118927237117906480744861577043094207617562340313540994563119752707452529830603996815688407327037506034618098265740677727668277310091386273338470695238334410243313758453824271857669421697007931907932126033228751270024512041473685818807921944471929636973636174320462588578127077326006239302401452701412772299859939135838036397721387864817351033754092433369597284560807123372483508026754451877333636884032903230745613080035128608083751949011282449332347481448723821550515878789121073276520923568954059980589914710466137315226470667273391157160687522007087225984692013678491802634268064547519885030031128771287853687976387373365739667025367889384479332372975282948706380164848732836199802582989277276365042219981900732864088855994342878537005065475803040622878340986560922537087271982491334818421488216314430663787289260988836957882193300810924202258690154929096590373174582285896170962692098561614451934645478299559797240217653200005162866668658036152476449956193377954483314603180676087610530518245204621626564286299052589461662415769989468154261861940488998966273275244494394790056765293400288759268663382556878897029300098464411300719732463307549244689061115066476685762657166563382561000813414304344623007582451773961425867915029300214667875062452855546467469544434748674522038178411286074795652934171453213942674692980943381821133116033501657573023032646752703414923710971450284413502566214790807122035119209466415204863655676757689003428025416131570326628909867993992958273547954010898321623815112585622320478229909714290037137946599533299298075482302664095358796416606704898485785557786714977488414165148760520833993336854099212209229647180437728686088537532628274807583432433663336609612574769522944188734974670623276661839274121966880030161278107012509910719382115416487672517482719845786001393198086601845525268169931648515302421383324406654638811067714912945820068136193428404959957319734446748249878282852353689779757092390579923018550977832674313649640991983088304318541708377695903034036374160904576021709430267186937910064863027485349525794622888420657210550671226905542687074457700548587515477622302169239409339779994656630949119300311890202011219293207399276962705379433216776706233644741840295053562606017756023777829240307359473048394898999550650446813720824013222914549569699992776669319663450777394604549688955087647381261047409883479571313716362163080669739978593325479637030436420426868529673354608034156670361106928205766133922260542213334730532266077438722062354260422109587564086433216409466421046608202673842872424150234358904787775872908528564256538264874439914682478870193068211939692934520564269808348447971517972820221285552228549379635471787573871876073417379169315641764648111096403951912302645395069802290741714883193388951923157922031327628828733015398398754706086307311847391509460242824957954044414855746194253542558889268395771769103252053840104052121920298474652106182016062075151584709556641269316726286602816740164592711552549892132183304875443384137337225345832347239146311855046612093934314446356355615183502143655676417992451053748580504081427287962657072777884055369559564162446125056349750074122783855009375393335071437118733992376923586114733776862946594549676188598724187206838835461108356376670979923411163450592277477602922322200617785795656849501483259817028681112881763790826610811724957365413142661532861681641726371142121104664821929859022516803678929151593084150065198339653972151829462637027340230704013247079410969303181888135918563006068045262729879690237978295859852564571643310710610767258032997584909759046429279065919387304440367596921750471173698743694037949462243854709579608275462944818385736064776470843702612199577366332496369146435379807115297568257070770274548302514494466009166024674499713649852947016405329858883755903016546936106384206386616236406532848545705537429069083007925425905756078066382327434798135805820887536671080241043779099604396064766038411944926446713181522273849653926006491136684726853547592759519517030082013949668658148060124253766705409396542918647409718146943310759656333479086789085886732651868857952924365144139689992433970167299718674665138929309182079447016446744695288544412840250482762750032414126732620298764919630810376533222777907326966128653645003177246932915934180735813684210339420940314159165913401113168718561818143399785289245197596302819551890943305245809504660113992255149998594304715856919240565827609787981407870959727608308707475380060741755212146021695894277555564165842914610796334054670894528471537598969931949719372505266658452759175985182409278779528219917232880350642554817102385475489422371964743866085295629847859421748553665894170806788171228143140335813774226338310697109668084079312250829090758675552515353919543019156007049291985530916299783545730750033676816740917102067835734026886431975577964333577962069225276452304444726159957111527513429654790956129840580149526348772053192661738819261961234610288721479327093358437932692434993666257971459503214288845277984336369190088139072516923207401582932920812649296801328048245353062869277847435738290675713917091292897184499458619541844144389330531719193032864551899419252208400284329287477482450665878237336440552678000160975183602808354145657298735893963764016398532687936014907444534412168564460637496075745444321113919923777790882067691942407065004681571490536704810610443125650248546939666092935669428985135811916616627003933838014082480197348427426098671285784975720446043713096579075534420162209997853767112367453116371155695220015437216312973954975960940387774817984798376045236612845793932360320674421239650955027268620210221626769176703423716038865578723086500431184987007546945793919866186839931170475732120389433807953343059663975728116837210364510162248093610382805944755204429349944681358324153381360792904181900138271797121332839384893709205912516440713154327813174875407070100829094558331134446390583326841453977487876307230963429359012269124106751855314225268310905702015570118987923584229444111012834988401932841684150718250166797804814906318812314786933350914509183935534385138833528298130682116236518274010633065993581602246833057422613283366537308251680494247580286405653141324922697919931523713320376133334981068490885048723487890849542481514924276065685106978869781848334635448619990426449193489331743855067812623146368914072819126185920082659750308685460993928909415151506905566269417743932525395289467763546436964038171878599281553930220856864354053169486244789286371005660015487009231800461941617924864152201643536048090229291745342611135409928434408901141657753128814197907480148552552636798000415373616093395759590045891943413640391426830688160694316702191544992497825688025722373527626587114837663336803429022519104542962861158876661990834483902733773405475215744086546451038492630936499680109955703367830313624670781762056666060189269712322086014972047221607276954993363591863845293459522495174888667544393095318254033318735066993575697726035668974280196360830949792728049026039575468440311574125182113689682703929285624889623084032940552097918937970327316432053572299181964353336922361836360580661326929336473784924676230864676970311505444117900770767271848365746263671601086719176306411184538102638005251339524203822620034604595209412901267938158498755233576429223138453832244152988478903695334384753828106211810698737900330676051523659860040123344400213921034299070818335057127540649115926423358215032680782677288225291360939649931169630046395227850697917103804794052326153999016599365750765283372740177259434256679297852487571601970610164605763616458370192067930144117998882797114358592533338097338232187919614211344405272463248729937318747700168333979749560539755274738768555651148676882484899031229891418829233354394987433520920284862440475806237525332007866261288828251373367871191440341177659408517724855298384150264918012066930138031555120493229573685308277529140224540360837432073059798201131019680554047444942019372871902382202160491405130488137097301408689956922178194816986482894669290469507252365802947041771775001527628513644182092449395526505653569760546124413351007915476202598381804216698428626002302610358265016438351849036845587605130638852508790150689864988951202955965625222672879420587938914099767139763338449030809631213487147436025072670926620323601664836771226020857112589985403109508602539853739821079023049741552914097277986261407121693683687623686050786072826153607918357812477251396162906460168193545804846149054805913535722915354610814281146485367299162298233417080289904966248131735489686067299600347265535778753099205317740982609294922433577321427580373450355627130301212791477312171706039136611728801960086248992531307312802489125023830480183772682461626654310876568439263881653230036023030443433371935905822336935454616825679573454572446698594767999591687849060269108129619949838153038216170899743462460790814831482719201270439491251787620458039175077385429366472653889088044657395367831800172644166051318648464852275088743992525525573948220245227678746028423800637563502622492441534185999600902478453911228754361743785465346965204183344651618293486876727157765178945597416681086373685034813726171675796966163020223298364113378873236883589697497636745818518251307245478431305203960123334027859816482996514130912021845922372397228023486086293315705664087524194334802157369832002896050485455841010160996897709832925493216754908389511771505584164002024746491847299614105387596653632613051901456644349760377618649677035080388039553189128700563899796722204154189946643202046905360401459853176963068954628505355583594518016368657300411173862911775057218407175363468832669656593761247805270429296790814248810056032633905264820584770410013088623755279026440686697384428954952731250665218989001653992467416433561495171297421963371131386118421445070530937399496910130270950772580565534210456028687198684949386422169229476702207235844825379215379923297485395936224867850235295350292727584055584668115805879821081773333333817428102829810422497399622398175868258687604848888113907898018267694253472103093169448269951539591804972798807265980276262180201191890224470888713170369499433974551105530273286505998511398985572252804424276280047582114326465936269813665682454573727737736897121798798650572768511180940380270711592423034465728161633102155723000465678154872510358767702091740099082071264506934228425838219198069449191793936872282886292511097502427532867242680332131120117865593943400961337282958702930085467141184123248299695723460825141889738025683354547074050188827139904026168818992486205280731375408843460774104091021102029921354226680544230805210500145302074309558667628782622819152695735287684510150948483742675511778340333118792225651696760781641133447578558703865659878882626855641278578517122095090888785968577099300711928616447613104868854657607608305320159881285813849448846601474463482365115061821176947461342894735015910778718066484132514486298103568891833143196255182869514302113577230947778490339895026502222305134976711193525678699530986234501320824383353097641715901602095783656646262348980914153162274830311427160762045695969977082701074169702036227126317347169123703238442167565347955471748290828421319092443513430276187194575589046143152732173440620077284633929418873222183132649995067983404155158610503638108563214580603770359277874750045395817231225524263072339007724310300493343015594587303146655416066815179580072242226491868078206852968783041176408682283680313939157173548281090859617789722073181282893258849523355308784042851078833215934975498004900958612669244090291138516407690623569234510902563265579667268796414455258540751441145360112064770667488469244558147823979651620949499662820780811445633534570943468498066882350083216472252357960043956526844889204005402921956037117781479239615161018493232281219917326794518643707689894205972129741629188641933055053290197287660710798184502376249284378340601877215993978028699886478118272195856800227241483428318388579232706716205902479407010467200029222715367114945662458736085159852833466408165859808026182241618353364360877336526716063081423953799590065472315438821409763089154909393750405672009405487341433459290756880281773519821215985833160333851002334174554133269388539473016855766783257737927097868806927837594475142608249858322967181114693815212468446327227252639923430061361155303707935024962787540709482262941147530527793678153582666249311377807314674066271438828442140232653374811049981502953182723068062273649759512627334958792327853207762518223955203296305303150410842883715536028104619172673367132892772073281794367070571808491517302156310596956259732401709350486304528974491034586176207555693665523484701325105080153645758774187463452435965744547833797657512291482810616021991912491375809935993941002382816799042923852397713924571387165836211062977632714325185653763157306777200267725829447716860576219811166516768300850910209872710900345124881797741705605878907022431190550878875151546547829873689294292259640468740322347905669055401382796982846437986257282901865660460289943929890531785021106648048198027903984679163669868973754847011943098843191367986920365946088663767863814622975018401428134006822575144241139090193016386809097881741638475075653427810032181761429521333080612182129860899859272079853065620162964938907738762228368019054419526875311376710372907513025264287941820717838577914836671854512072210871104151660701220001941707285850156823882984050962509202419708904673889900737085715308301307723546228216881362437065674218316598270659704307579835735037242842334107105747518589636836553530496866653264575987746874847200474830411865416352515305710832223118506458431565634495040533605937374769080835628173086656670687360596924368209078521799636383737256294479667796814728518735819150875021449781547864523116948106619794805569261827058502907768484826277787834719130542862802356263062807184388923608814981822113477719132104263215916345542238224790642991358044760170273682974645620734446626409447905455321929723472524830870481775685935604934816314692482758004098151449722328917450573363366230429941939631840678115084089869704997459979637199367337747158248013453175588294952789847015848827326549516718672015651997240246635709046350023969966736266032499438970190251500745685886868128423776259154317332298492190077870092101291524731437096617323947335056319474239323857462621680553375197682254584802053826037623029344953767526000146110029973359321226272184628504292746919956495564786915942953861826593162833543363541180364730510335201037672443573396938570819786835350439325986967680486470240582359974373752265563166156227249876648559433248773276680367917632207968218809357978170073496693108775347262075037060651163045109806114212989635546246707025880199171590298556007866974039802188141845533533337205070031192555318439976253001435774018911375958685283927565159267831721065590002554779167735614193746289040805545120050821884711190144825497946871513351966743846701043085831399461924029878423361907285833037120727998584966662286280114577079279748415152155130195601441757422226548949595498692670619323053603109687666453290910896771914154396778973495904078857257323092630905971458001635610781483938933039478594207941037569266286182178741903962354156711385713717077080340741400794853735167382605965690320359800013972642629800935772604563831884191898057014713082726597469642793578793205510187310401254301985346278411062651323446830108453259685840320316119236880496589238744331564484407563744222400140726749364396011806435571777404697270182631793573871955334101011581782431148865288950182420461442799597687428838771445594218843854468352909651351971491848553590702402336148136845263238628263200265754253123998626059254331087464400673933954640417168930316102314704367164281320193989953042097566103180236870467270890554391694520658026948920491292685362155075427121767802979203226010895411578975603013794686046156921704377891409638534129738782436125274614670742735791031472077809180506347536155787615279285171150728031206621065787430019234098009121750742874218372196570433462453853092863844777819309547379070114516144371445094888524109872234634720408727476008475321844557333456600416904750819701745034838034594562934282674976925518387191728162637672314569889626220861625588934519356558963702773135325898637865927035845013678201673827410855829265129676830040683892770880881324395225568915880764360422011429871076543181397663436233428431487557225543857641309496625310526854720030403927378152047139534563897869457200849293104600881399915320736079061156600881628642852484518979210984438299548079062153784033181525876755552347315161761429598034954114910753117145929353586173550265260802154736925571995056042436426410081864719844956790762798995449566143355402798614105348636750305584361907218447608376317734035998432367224658461132578361915716718086794353619901734204774383712068628056650800949173543234820664671062091006413005169196768241322037664053355008340313602103680379273902399442632186522732193025758662801065831829750138698619698174800293316415864582974401228102756061734542545452843008494509820262466365907106336598019592293312515281606465892293483211146702498638649656454730983443885337556881049548630546011048643683561677479725898337956401919884162994758340015353064461854966999876125067180434267982418333131485453330207872970593351919526675960843157659272472062218612510623122946602953353997587654558228900134172824071095973640844039621843815400195843630284635375723672404519832712788022167843874175470779930797262505943434525325373992320319846626816089967076384568765511054722880153006219713367938920491509125340722089596133019697958683359159527885143974106234331429604385520470181525207599224929363416059881654492209948719298886797363312457679779951844499783559175984724421135797108229146255436813044096388942083861412485459253967550331085906222043847015667426412204749175688689049929593526511496485556274787288663141695400977401709000620086182385604003153522157885655496370812264185052046067699291970826470518658375901757926696632463547789167720369438116788180566294740670990963844251771855830770674574994659123881651205045602905710119367032476565691867932675673347002862279634547052190283185325574506109820200233228939260224080929166410962517021492052826412464130957195988981776407032447916647926360998858106317795033204367901437380375908758537821816495437012506975212607797647686825953093265853262191894946081242807562359676314089958837832898385787454308064944578324132396860601179990062987488563256770326132237968561956646049156128232493424458922509064186108944864156307226277342346790558488297685246739422773791845115994134027017270414987557605827976601611301700008833505637004069155100214816357376921173124154096339821637635218607352958808993519398740098069275083344083861179650147201135989131907088334806787730517078755718281534184730443550130797478971580035144829486390436785949608635835155816928720630155453197196237610540098263120071681853645635207264187495755448652999682280936804820002630433647267055573245610930352161421004383823287106435383223593094097586440649101724708400705820212594453345610144223660130024159221618942377653463532657665579682638043965148962689083996113153501977889106035137360069566361235689186693644422699861595991411305429204610888376590489879989980930554881256522819093174375438742178163387839859729319924575265624070305786509272591454592487092369788215977162135240037262657998924776317467557788367780452032162105613722140259120921343311345551353803434777091566814506992014870429344995772403970908133729432846581356979013234315537091477083624288052506966159007750074710123554049030272462360636090132920085134032295623350439321619917366264259070185097700678385603841288834454051691078200044336540078867193514458194706216679432509407949903610913324265657514551975751361926749118844362338090225403253277102921486760134472546791820220423374063556026985834934585886202652712729872880933666826340434733660694998970485682649608322798196864683494320702624646847979958475878385491650795919957211957874383041477715212136147308487598906244711317425957044051465369004955606556159201471648595178652088809656821543872390182235374100766614116631895341146112813336938487414914924162356552072600949888659072278131163571771142304059291702259632297368671578611781794583397946657790290861101999463349801758487376105642132849038135428943134989643182358265281517111676017310737580843554796594028791711814317032287476437573914110288438568806236734324120426860253229140659419987271204331378790823091474000700641121882951752668429252979756387249390922785905517370248544470228712429421230595804726203685340254565643509370828622718982507346073298563963426563795839688758880147208503079362847789896880731613859792946396340929376787866613065299939501741901058300525263862982702697095754589017005577358343228857396816553112403945823070831089859519764585825373691307880193658311042629296733468950411747800885464996497728603229326847473967818001808176585989049700052002685860960722786052271779956444409072865586645681136643364628697204889148235029231569097501897917724171810897966994516997299524393295924218785117940354424064360163722071284239152094223994653050509244395745370810349898469079139737870654757063621645423634132964922532449040284760222204300676313089993527139568941594647757534499206783941158820973062733530946640752786887617128188988320602174068699255288451392671952581305964596872267822808888410594062118627671722213694244898696715047496611243083255751530486739816790429756203543480456579448827418017364402888519002601742330734134655161277327825175862066973129026596714923812729431948602491049263681936113950067538357639848734570903014943481209876050705441587953279690043771516693638094427458079362008339418676306363412727274514432065117014518193317074384624966703845951277895693290111666313434547094914504512089535374922732264533288754074235927147259917966185604509421725923095163065535993074190734745168427250521972189454722337230667483407925226429981226224153010452913313213685073914304341294613435629966183298576800447661482792046406248885355414837897444649015954624053493152749011384102984300477625711136502276725214736265270434291394196100584791364385916299843918220862530420844648175778303113656131249122322023039613573252950520835409397910961795657801481502917194751152890818220446816286907564258448997551569875970094985917023744357879493106612992371548475264345107173714224417648551274516317648906180528739308136431745664468675154252245693167180423319616718257984284472852717305426149350815918003504005093092499403881306072825628514824930320548380990552909641141644183759147813162561448385715486395153215592868627005365761020356104267792692267507634533297998563416854002475743227916025620293761363902984584104164875176474212664283342722965714173844006715270522970654969769777817059660586021855023967564768423952865860525965758287428322274546926622489812226881694342861292332617406810480050882005896899112831407977978697671349930491380256285184091657889424782397587203180372932944756603153004292826325885819851274531603129404986395011144437733195930222533743551215205677814899582047231369176320893032004727228937233740001541384814785780724903897806803260518076232772579076088615804445893138370308637372309653790829477927701376231850618581111073087184237300287735837664695906843150372730704499268757737486813293687538661887703752856232079285951251931746075639370572089769860330732358763614932299569220815336500975942475919845258345219662192669064420069592440632511732802439800137259454660120333936431187555978059869859857945204460721698143655767454635482866087131460405522126053686514439277347136905678560108518780929536632754734747993868854836730459681073101675583876132918389306243286085277790752197288759741006275639920439017379828883579680751739182810674812899934728085510043902134498289330984764709972913911635871279914237255118985489533220178689259444609031518838463455263143432954289852133359889677021523453307644905287060128510606092388384878589184273184010664929990016346815425306183232440104038836381910534280222293887357439473674407686595375442515875726833986487026736170855097253316334791066423433402897659024661467972584222406803393097773836645589787786861366529978767384685036551003951745001626076980089694943356234691129953820060971031096351940615994296320654724341288020255736471363507593663029742592224809498942510623962350471887100420591467162705950792873917337878365646519615118667418972810703460749606021020432246593836877169988773624543622369843007918874924161502470482135682225792383738189013334681052229083364650839987003703212198498211424447723454887130811173519849236016032210277495546014433717896694181685317103843723033588672205680997974647644579008904692077554766569792116844286234927758333924258239617475430895504701730745815960575470891457006228066901001513304395781313737792668661345461863718498944839304757457674202453225891211450810668934840900719350997987010227064227697729866863163611828319263805794069001024644145534717928065392839588101007931034193404921678141563510381432135107875258223704662798202659351291614353376905118276463412832110881701142472800867940297588781080114915502619090132282718775865450478841453337388278555420217453951972294597440055489138415448168753941443618713225508263243729611962502789700416431377720278278397049179780202195549314755454319729865771854357223947561811590038798599677830687987671496106685168786882545138777282247213572611678663451778147253250900114227132527098773964982338951330759933224177305372439459769822751260798073605740442476002382437389082085096313925860374123574704284228097329872656864720821127181445566077688866318241995742871173549220417257306750454257694418235363733309743980236070242584066039152295422894724994865230524568512113546280019526198218537389745903398309940537203881962375925182278928524260201325021220298235022285940136860593309921828400973834232806303110061888484817741388061694918581468533191324665085949106229422446283065339912923984437942395713612112362047049483219521326430817251947682177398056475027293562651847367031857930332402792829944875050030285307901791728356852662571769135845775947719273895228509540072016263534039537237510097934485929935701759109782518001979930258621052761354835499966628580439815248342596180042063741900073364104698056014355587000701611063451933552646531890208369142910490742514979248941871931843346547807486674321682781481693124686913316225713504477306437086603249861639944050966153934236981487732975479322957694418483138666994376436443910694076712879394004608683131534238463293074854014043462373761621473456504645800700528123254091309411508837496629110954440309993139628136799575567364469357951221309928425709332148793958451551935838716648980436749534391314815513951271514881031073193846430422921284326198046253031263024780215697663013422086162178766427637206403479066969011867303815285234408158690310411881870959146386583668885623554641949046851991399388925237725612838257702261369285599895961568664107527502070488951116773218863175185546244544996019976970193244282080932639090453104518610029830986384821147567008853401285120586580117406064501915716115570409893980827308995344085654979641137071939833281445032229806074385808617783320811865675880660938290720605666481082736951536587790633610013172860350783689355727968755010881729296603921213292933862481395299731076043693720676254381439556941936510411660438355054953475002294800578950591063235746141496120414991905132003429550647002720873323028774209479225583075618588907041736892945516003213025682515530694843591370946184598048255567052685630683262391062163224822377038443099134252212002226314540712407463360294014663090362851089928035599360698007772831608605714896894105574484504857001377246391401351013267844306646189724927356481798459871204989273317030884023730945521541389927369262941610927575236470832989854493418238394609366335313064971765495786534993174534635331485919844060905208995810372480300947947095132482896118403856676917718107380291242159210597689465847033256025247373994623194547222826535220267470809499018627100078584038195118229072821585285502176228950054269996845005154955408185326749282039998305937492452509807995437588370987425910084835315543788436911880043154944586791366797200583186990338463125979504759753530021832293307931301706169574633466468235203327170220861048878053355160601002915321903290781957770902852324509704091876242247527475404535485124660682141294108619406582590501712369741362546762427286762255125798820975591048684821295841718705310483110856609747526169659126010908420623653499420055867073566059505529509676491409903168720585346918695727503309060535013399547508387755786152070081833785960823820638351621846859094488614572090341685374357324452968441761109175695357785558517442259583628011077400762806569992041043602830788082252449182457220381375157343665484116097026071730721933215867049042192218494070062220670911641750274959816050749645090117554912035674549466341818753968491679304324255275815473871855445513139304646198869058695824158673839410993269233474845592354998221080131679253398537673132338375062520001876574463279629129324878102056687662104384231895259448947511469752568300106412024548715237079052626801324666121977171470603341694765174414027975601730631914915508995426300445324349840129241581277901925709193536599076282097949168988497344747404513475082219046813806718418138872168900114641714292160110357784461669551372528408494808712411436057709618433542294798807994767155890644344482431643881358374651960653078246797015801406680581887614596495745725817241972190134817429991335864029997306985843193707996377282155817160831654907133464302643845003103338869006466978225981860915344250288863503812543800452399204979233251811146280965740982194859249267081705268489271211647022285510092679865488199712347386526092314047079462090146321515616222350694483944300170064683677289014993705389312351095386440989059938007972339000230994500327217357945283459592559785367921996477331622083756212500762208883142619274963940563395673322333051524812762702463370848443140207447558278696383284573908145092917985267702832780919460414161945232385251942783773602358732496104854127457985029594965722203299237084297319896941832168707121956303119239575048805934542294023499253328627271011509645534192679302524392044901665266749915225712602227280670029868821155831134979730896469359530323708353567853771541617187937077629439189796987294233193436552077316337036643298714795249827726289263786797098258158902188159019947503012193213599386656140641351212677414268233352906250167853395738725712268888435118947000288006862332859435637399903416841979328229437845283927920167040142711071070778002351947808911373623152928453413495739760644110671291361729643201376048775318122785895960370372545203303983767668683816781023293182021217336718485034601446394403271284017605263104677920453034060431274110687054953797269190604383807956663978510614072278868531640915111192910988067695883522123485579899478301904205592850621732125724075739406451849945372818389565473029757637113805097547498425562405787280395762357501581867839129962646383175377934552926805490043136260663842508935693577941182148710498746870919205330675426065291000880795972693317204192175769462449670553581418386417415927394326986386780704975180665279469176840661022359668239202228685075951856662896750501994452780082961808554931715192185637073852028218218585142837890915264205468379847271348116079173051015706275857845221670001407563825975567440346891522328892800978597990653527365621099334589730627861049258409908697612838976168121482876697520096226881006500805753322655537612160007330973092456137129353404888732109875060365771936506070894359852380544799954809217255655752693780440064577234520804091980677043216330746769938214253737989391052853210973439084669878799444465800925084780339567937803597841243486030716398404594751302667431097808955157608290587862959921336307386680825822621651738064339900932204507984197354410280076992604947448524502649268130767003314065516589153898222513534819327413154335342578114211488695573358270009007434291831162525962968776799821690841686770915234631336175543110423039723810537706030036485042839454581124023358193639023963377117963832469147161837511644889392645046673947893342503021841854753797857508076231121898547595930863133945484440550112810755996420305686726021388357910864767512548473265502329359787063514118257365792262271648713474327322085262787513566285145533782476075644223668349737412914569789486019274844850214090444588657050393062495002308921649486524122831538330117410238808877051813793716971335912999938201636561783665364179592998330337580787581644030591671393175720694540450483291453968405892949941524118999200575047249101670699439046965862295265782611693248544588197129859665296955754530908417138583505327007321312134724594535760008050127720159120572274297591055794984956126672158025761879892009130714087549188125904844506579887100898376107135514052568287818433173442534199963244316227449159275909121928718139230373894772368834619915293029059706864830862700813880589926187217057861525175789559405063714067930313931274658230679823699865049505115751550996624591199443650139447184076884506686226576807800336351344026515962430645487642950697439284687456630012871254784394263313362924271145098593101252456337363889349988650848889356394034769860198033441992688018984354183682234682571683108700096295394896192089293444569192397902286689163421767857797924506450400464594480349711482593803252117230014131619989009497351374896019195838490417519622473900117011294675776058255739318657741151476573195977130502245591785575406620083261607868719659760860930628860941012340096903552151776999991605795450365614670972599738816145497461652779552699594770422655965206945955280038812732461913516229421424889415971746542748705598495719349088247251617184297112307493630076142376510510290985960599795058283239933371043729967349218925936981532603886406664504687107063860926164081981702895069038946986453648476605209701440926386204073593367484282278475590280852801853887352170517518712335894868205801842270049747255531936936565093529153177932431012269073335241660023907373330199686453377159252623007641796129337371718995882721824580127351381402198949309748192489937103282280085342090455819828217381189650249892137652021536411819375393295858584589610586509409062944582770061710987966026409890093263230055371838118676500408415155655880900911748395068669913064015476244637606470260590620174962998929413361906605881380380596400885251999666039380937344491298786021940451907086356765354663451225966081923026461265229307310042485459952288224517969415913123564797204241030257315377458955004924297074278395312141524645977961736340151032827248127422956561683620138222866814029845503957874283055769320084985134474206150236615613707026593419025731549011852250896968909634326901238400442391062456888528184720703062386817643314911806364485118271577724814355338315873082353451709469704774630598361303669443790879303657242383735484995698871118521912611094401037685665653581982113199649823752803363765621834962186821725556343393035089791019527741633707667426280898929031009245021830266200115418726781486019138908314972463360597250130754438349439360547217811287699400644978625890646182597994871752658146068857583684649448358628194702827400273474488590077196364705962728805111577578070947244938068292370045010788639333537919457958940328914687003647896865924063674740971546502294583423019869892408761831208253636205030838633566003899236945626905142429438249711816599687285284595840137489809979535356686324433909646803343743424881833416068851706838614932705605365981836680884433953134214469769429673890301453627406237740625110684956998129120335347756558172755959417632873228512089307795391692526124299781443528790042121237305572868981561009545153341682168236099458906903104783330992242777904148993130573775747186953354925772886817954049237138756130925559505986193471748506532314622797817362873638192161672706697967879468122316772351148927316320418603154680647429236828557174141143922659495494467631943767115576743570668195092684014371620393570814261359106133365760392300487121534601138266373596629058441453342162106582857827141467074899997776620185793896837330901512645428045459771718704654835403447895561172935481622702263170585318819989226567255552246934483766140416928707140318963401854609862631177715793587372362132539556647981676691639244209649201881795438025615684505655979958914424327844712493931998896978754655571086324170596009386539118611107019479778185841469336927008030604053929872488554947214444180999689840505934921541922612738589679774078200032758187644000297687953895465089572562591693148910373048169866686979760150786042357849909440267252378479165509920687197070846151958547775343327289160572833215153256019045596874902736983075384358009567491593255575244853433661016492002287801759285229532246789971251263663590550095586210822095507684082447161791142478482846208820073014872747148214083019242377211450565081640723988772602102004831025746225039488089872186631851208813015703799950758964648602878833403141642362063792563976881927155684792199140519099230727788675096989852295464559064319331859842170817090084659856005895477697712656764386080014619159794772481521345154091259054186456680526575763306709265210862640037486382637226143181211870222244185121954667143579187459235255300767709259912519414244568768007611394784498689877600156093242198831007674815731712778547161517092816484684309714997529203613204836236740216415890665897450370118211788060332042832795540212506794930300650148790393141533146901862036329185921617613931227685799657089982844971118921427827054930363065195123911484519662686521761665554866565911890052372615160959134482334206798451819283475081639662975420968461619337825151923440525779901261750423312252362485549953971340611170049066977688360509255886914582268741013284763852153564073752742006020113510805697856562448461908130848798608858285115301663226881098423750845629383811556798589685087095630158532454061658070836901679595260174364351101975042779206104122403979253996812326978320365685859106084591006533154693041920173685461326410741892751729790540434235367745081436239043432789392358276719861093183700219930109835918339412392363194222820652003977276693303385585068553262915682050162556768474707407485105417058074197834366999818103035010539664087370639337597945318107280144786669842739789057403553717040459195429564609459836165754459130409112755757411574753035025889139269278143101271728358101875124212760505574425967999826832554030367577396640770027875772498663634748355592033488548037188076929151501942655746107642903631911182419535158909728163616832972445772683893253778474538986863610871578124716029535905705413678293969758610863426708491940012685717816308281571717673784672367828547417944387186711619212569651489181581238748105307323855833818710545547699697592076186418660776770851381268879468956232223522073172410070878195294087749469180077231240775176992891442451801418936598037642311452885288037372442902557256787951613752393770281082211128031495677694349618193044384351525255539559330308366521120572785158885352193328518799437914556261074363380310776047391737264400027570093079966767956026981136170834683972485778133567954847114323759704000691169643475342956634287920971567035215533721827085837919905600406164427996102796717859725058762145259618097940513330929707835475462888421682684435800708953842751620470856032143776259503260857895521271656911470189277351929277544376084014129415287893675129195751248203226538386376738940867738621613513799182485794182057960856961642089610568313659920059983239054487098514958803875014997855900228145032320459796778965185631880112557672167277732704639194363196564870606223016429153103681292573337961669013932477419137624218824135640279669776872624549437820879974236137588707091873895412745725827739071226462456994566036861875508980444365321032012859368427388484293194170632380796807675401848630908060333563169743223340407340806610001957228288807676458464428280337218254665816819823696752329819112906466426115822839307867386101235630654251706485435574069533746378376294503112402876859315878329693664911909963736570979374360947947390021306921935948866307156473982690591004690236907574861533024461355694684064092701343784710796313857666460324413893868704617808125564171862202249757373540472708454139893538873711685044156813784263960630745712644988439656325376294870636646392038650238117832478916638310734198854911924430350299767867197079428880040723141207116517223801503011552440977755197531887078325265021052359227653189760869441745715869811944810777353383609346220830601154969941297848638547737979999185779038069380387049519393892662698525165386887584578946952474693263205945841982257458117100110356419156079696685967391742971731823113307073664553194455622603216961632666501602617068549498410629933142077075443469947623532461963994906442447747243668698672832865015347900819998366334074564864625268507643333124947410226506884607690418956715144398955868667982272933575434925739675543680429913384860708475913713180738491306713869880886086201734486924074354167917337564150525276219759127824468589693798825626195288984882412922902614590553328438983242480824783493249519682185017600093549283409803408409073027888280858377946776122640366494051060299861484395444734099958738945164589149102182557735181328839829904180317981260128590507105305298274190587250707248738737635867321877506585229888954160328113178695799386483354559237201171192537402563413656305326961519109522016431939340276833966130330227614442499573684720228479163905806076339605384093031294554550796034015853110825912685271547832899999925754496714920505695583968377287659563846659721494238567217864331385669405823380247879698472506552939480679885602685983179994954113570325125942168582470696310663900892978825780710398821925891355558653828784887706539470410629615633649115513248862224468491902638491142564846056881086405401398616696374948487077032979965852890108597526545786438989954196015962265705152169819896965862394999025153289117780005919608242216274107688127504178614654849098749606567480837217815441990319122474869927166777500291924639278536029798566660777512436261871871882934424360217263871364674420258351844995983818042851501099926968029625374481180123868852880258549838646326026168950538551012782909548582495266977735350976254508554919320461044497015995900318089576780439665418050030650800777740479671899410452298639716808564695333407984060419357315964545408619057428745772931677245748741506487781467136175505497403512339562877013536990383487651795288596039886562670860095533025124822318838579157002905943298378804892707116322325667171300288529601456027675197156340201107675466668005289830599356340141585360725826758924862668318292353192929214774738496315691185689444257313396249258513213348140321503460944426328110067170380369115213512345207067096027555275737493909886127354289138051276973331672432022045724581373451849184431821612184768414477151288943072143751245838588892394430858952879447118697756777400715935646596801181641474905074252478303288436850871298844612502168318898121449979320438374339933440862659178448197006557427465133082283338708438107631704387648247606069770790764276347739629874073170613605862622981541458276098125543443416714554421782294179480578027468390348650725480818874330061243330559851069839375670753878327691126279905244513363344873690575879252566985454577605126999552020193207549135244036809387789483676964480633062537839095154891069034249047526171529239596161324653792335998653155736602484792821867968834439874118665122228301002580570353144558038655721259113939213169024687150502243459232228832633346896418362418451870619768081512311383694860135113947205627721636497285346374070444073093164750386418124832789417360562284064791452490521685756674221029764614126248756643089772010569885738577525542509325272687993812685297720051465581640875456917323908112822593665150112876555423780913228240223435190793377678450192515964276587011028764101199064777478302468764091060933946527161082405725474990144733935868935680337795831658451828083517374004553576898395620301108629494143793298978966785108481877523970335080164747892324678346207622420607125470852749612635899369552464543862912391468484551485838411913752072846058349491573951791670053660133525712766381890185212221512179393603327560453176168267395332380845717090583930204223951716626381365541768564690226531458525777890266029093833328420278849699467655436480141522611193244883190520162458687585115932980572305503795944208549284515131131475616583184431036788583249093384168417649796956492089614037480580515311246800023197121033372640703439582563642620657516211156343123263748227046501349629237678805570370093946762432217942865284299747933186101921047463425331058780259248393813739072769389330982123965323982104476698714348914199558387995547048999508959060579799298001960848218088937907216744335590191295825335656608284493598510731472645073045766776356317536586785881992822502456938089605857991335204142337860823871269906814689606510568317375466650421303613845451334035745956124753140487022378530431526529621287302982883943150184648815959554959889953212369007601541295346847103138747207693444767107904956751107956248016126672377300773722859548975540873695165606997881106394795811067130706220714393646278465532357843365687775201374377751725427918939046876237610617378978147795695064131886537995291288629066502980613136983106868697444617840947512842891750259926487518420327188150257736891355947761842756732796408221632669747017523763477578946798072877748113899044906250844353904207491912417237937130850209678061094798248814568784140587707170479799166744811304677966816810730328257578803091937569912623912452359505474090222780137922751025425815005894827244400914615706394488100550071161812380315570894937371484541789422635766128655937106415053442992412016328654665777753651189467996952299821969325682783490886157276858000996669334646736679909815847533608212290022827684920397853819666778833833068465602347493982537308729640561727096946740271795290470778532880819571355512562277828993265370271465698558924737186785674693658253848111942025391963985251885645161992421860685338228006685179250172230043579242028016176381160937721904886910340072417590346820843059854847091491568117656002698875988464921572847917324898875362028164347934625036049433265335033429207390818593675493124489751450520923539464795719333614564870868702770886131944872127752612251907676935564697539131840059573643401428565255147539244574269473471889424908658986332522879920137279001042115150494397633832323707090956217957628278594234528447736939382489708868580159645707807910810470043903428725947101322158593320899395252589781678052760818834783432265609905725710443688399296893665582241484690000690923813910474568589167187402557549741352488118486805396096525921198005990822623082037737364966562436131672793940689936032889548560181858632276962359993273815293760061812575832723579644394392263254133437110748105163558402202615564743791132791352352140605415933349528883971738822594778281773690748548558476177156343656661128299002526344352709366743991780775885075774233968861178372546809010187565678937860961628644227710936109182837519933766487872431314791339373767870742681595910001045236088762644271543377453200529332629365087822875215102741058100176761324682883853957532341553875431962296946463812927359903099733392344519756171298183569513337433558195741168046086842067618335921548606876198862366252996183432340654191714725418678169815241238799272528602650911976411025991862040590176888649584763062690772030977290236675652924319659441549882279948609600122161346611144664298764810394657879303738416389618676001926431111293439893229347022060575764338921416260948026086759123731573233289235569837932545769365339861232347726986019536766111640341455548436678924027418217376009545873511040812488028644932067901101631369889721574235628247973946842812559258135606789028116204620009828549625895316761818628838020406588876427575178273092559337189184009731557447044818609464579317606568041485330629023472274729712004532595532819649348503446730782117629518355816948881988492474693491344133339285040784186171974369105481717373401990741128305719292459938798746712155993354898796608418303770846035342298282782499097336359385939854981418235048928570294240692128826910694012286541909327971155105810390196262358955047990408279267593046781666998936717908304188407752233668865657758417684270375125807402942591324732710358534936279832515678661082708267896335168932920000202966714911899361939779268175601040714861118155145660525392778070651796844312131990760329887163551352623674559890732997370325444704306339711657940964085021415161466632950076984096317175364911786710850283196640861209249314441662620838061470690111901238934564390829250845510993759528429045217724458817690101954854831799261083805989513108029851828746232719335524166732073534818050736580657161087969516795493658426735080980776045706353247076679748814354834322201271692086262059430534655987471699671033939690877726757113726965694164152039237908525541565438204581323553160603672053435730132876025569278576160080887667649344621248313183469775943626224926112506152550354069939145197512069477084147684558190168087381928748513418596208496749953940700196363480211837391715402480031839960404819031110334435587218514301852437592610947789026218327412880930091740526363652300124492342288036883549120400912516183224743282641990143923448446381796087847096888956990922986664106697635505372587393376271655405752586741322951327517835855347776708938552760351421640905250202534784312411256189191736337887012107307620733313833470316644554244021135210118115933199896398290006252714461891980261560960827183492509373918484696876591880970597319430151344337139289508197719674200184950151072651401333249910982658022412943749738875840541380066506195389409258622271001477553741763940662725222731980763530033729997644884725489624743644748951975049978443040190960120900391881370136161674320104513376193695096960443486829074202799020090612043897917003042561368183560213340586728823633341519768014313945941401349650814410189564405836523490656238074259989158690333671269293264740568830304592312108105996713057193885131866443581965112054897162653940790991148041047182131312644272354687856254881681742825089237363911577988976345039866326042274672221144266929872062364353083166186650813939995640400731392234758903519143751940705036910237436950322370545260618619659735712679642315064210926119542421238402812687242958285780013456134942280809127377436319295817339295278950281312992648552536741029981328557077502424136446288390804587776159053618492316582569854149327645091020020479123749366332987169845016457170445774125722600507692341573914435537501208599246646936626752760626005620183117646636395423571300540525422236383060062808693765855820371087299471356349350464030097358972171908273768281004891564165066901459212089099972456118994206308802741464050726348539952779129088870832731939975808521369485544919903002076817213457202570226506660023255180239391087852983378240406099437893859561424833504529496968776579623068506839362076765555226310833772788558776170841355834729178054952066806298996233117715973806253050355779298872493838530513123790139928306355920002842056676870537607535536243469648283359522583905609799847331862893924244924567064801275453334083352957977429257392252699020025295304908879255123124631448363349957450200681126251323183123343420801868447993073504053599794476993656955521632481119656498749355559408674634852284829769519696731770095871067335836826175284540256766325270309437450817649781415024466353173275419360161109057558235768612101955427498062831767266236494402185772096826330865709871537197326458858127618664499153855543250547376348539661105681823006113974356592560127420212813540149187993334615068628890949080372999256210617620744726769979808341194711667619208512602740541912612639202335733086380488770052423628281548853388494327803871021807630178842558761215631705930940810995708817228416231737389477144532379440223562893539445046139697744163780883924211831150562929522925809352801167628182942094342324364832541848256158211385045448532606634897806839883820229313547133318785788874743658666488496284772625034348163287374957084440129877812815100433744315184117368632016622705462929941740517076076595566658892799634401711728187621695724203155063535150246273796240519931915783234031889362188806718590185514594746259254612899648239453745638986028039548467529656575568939056070246348282820951144539841246558664516233239490264036409514500345233226793982260483072380585923418709541780942186469500242040148910291354795258294675601157823029763504250811795290341441380330219414118809189404878427201121648857516134680657016543879472571455051471482777085577307683577170379731302543331300438273027987233673970247142878353142935617797498122607167039461466464397276290431117294895387897477021157256049241666257203712556300934878008120367364787883582561067621819807261320440351612008678523938438012353671345617441777640907200027835210248297937013731981386924161451190129248907261783754903312547836737747135274162189284237721929170504696294483424282592478023227627342384706803152602086942990919047023675845530274662202668318897992334457265639039985094209201052818633552553611314975112558962310019881716650250539754288683788983602960142027037430872591674370904975543176200326964882177391291320283952583842112486761002974906089765850522544118663430410998141451270360647873934259237870415768253880590200411747611685940248070506482965655716257118393152605376971687715436014567571090489575010199468565277193839668809711095757582418925841450063065115247556940654119945137883221655951474085941838031126804535257249773306081616208817035793751135463513330875178335467080161998487184949936876828244468727373084166285762407098751696041732095435608477494553776726233970289029633045642818681764667741107623907508818104717265992284870805687694712454974597658166682328022841871773519768502276638234166877162917901699024163033152763862295548391496704801686071238654364744281317925026085632704524467165640922059858644246990316890984111114878522456941005247671850560227043285024749858354859382040610634735903541677668700080366473294698674906579060159931362240115616889703460690916337002299159640135430206810121039427517138092795336691067790834360241717635164506379756468278820282159326533636417885744462378847688903388688622191675450862479766994143762416277017566741817831083840264045727888658776315640197104917366188526465671316028122227985055521175692351677199546454656452519064380168237426719641051550028048237120070261031219361732371763949959200121558656225920468274768852393885832896215501943868558365205586055902258932431895136532659115128331220773018574669972649457386366586327960253140023587783717674074818640780367296422123698685408617445136858511647791615913268369930663102386435155170636713057612474986899721149322892921780257092550864519440642394159021280206708683243893172946475356126159482851851631694563631397161771703194214926958439058693123362438133449524476981983877830415023497603002334205657928362511898567766058596706357665443903111817208168527784914543810726840319662577504865385828670008429440849380506590998160351059207693712255498823840583158225722124901965201747234437415342539774178019554494852636061557044700345679170993307061018693200331182161357925036523695166240360999304728002975799730821685013639872549631634434580017110230910527068506982302344003294220339327527936689322532628127456565034932115224896719008071667419501663708700374682973278439779470915326685458628060060487241071284269671402118950054920992108840134467230952993337415982345724557765719650665786759372965396974047560695623857935993630934913281706725190889247441075440172224374630110159459276149239902401866161274402046021339441385987203749236744323872947986320077343992040775530033874556205703203271450057949567909629348318174862439492058845429907551447808282175320842401618385842999887841596389059260559232342705285420450385304627090864292451663361105175399010487179040902029291238621544941851390598145181930691112451271143967794094286663097755557612671367745588139152208519329326396830146140096454423231445399815427228155248216447576465224353752580875186922896211147457875828580269934940957811169293843182507256691459805845533369639613219495904772658406647919377823847202139717628426525453003926912889264127978201216018078315787706898677025476184288467379238576897393538184710006838565279356344701567772457491612938534748399595163314032130280340081136910614602300749564986189884080100024383863351351675964239462483103418207251704360914822938560260242102406974664016084563517627945245518718923161251136319249967146857583082558310299125478235262284942355106486022111667269602047117680217595410675071711285214027547957553865732778946134860394816674887683111022008841347542768564905082425993740564766552729248081750077072373237576354462692941807221280929872770941309745414679539748754452506501190488340245600051560577084973519853536455803502996931398362230784970652361041843987928522628160939386337953531988633874406572426496572971152796905121476524423088902222399213218699063218077178454075839327528756071092948680645643425445426752984917707563345355507245969323863779594582060889478501540833177235413485098910004630053506024582055435886406198186010603320242214648946843010889543518594569287878587360804034773556973827438878862126654738966428275382567318312492935644176854564437995518439598671872531271573682272201096018745682582274950543594433374395499325130130953030211292857876574864499814533396701848606799381785193784110092577978334749572565122446977792705393069811051876985322434600937256395155488837224935204891129562838046054135384727688234558353742723129435358951225615238946074435670824180779296287880298641700777277831941064923072041252020331970373988743728221119944373018443449186829793561664284326076405424999916995536776206681985861881881855971513732187970021147186354493251676856736939155910183746069584182476780939435487460063062506834383753541607856617909775857768150788314757562360085254000442363234139629713432998321080422088639441730339822893270614953958811629029352838509440950490672135532556350230740352013668070273858924299321274211173963071816045995200481708693020416534363755332953407182252918153718345668971138374347055370781491321492067335631914415279919137838097144309368726951727355407937561844120877436378219590898968507227105148763597621145515202677737963822569347787463247505093750864859576423265390638090083725564783714943482906409472392222678127406221011563670116721943274676586633570780430405922251595524519444455372383960748805375368297275672401552596210658790406738327314334742149694072175483080815668707877691799575002174093273529979058246187070420915991746938499549879434183375500883268498189823780813196173099656205613691314810101149101169788078234315835659652372277215775273230897554859445207767058062192573782901505047367651175360243931755629372832716471774760476621902349040350045090859048733646351531646865904255185337197465466805539366626901722749566836497738082180472030824978445393732922384908239438535775893996604355081439163618618950644051426515107512179501402972623104401483217182275498645929017286636354084957452210286950055107981430576304272729603309824190933111866295710713114469531362874351376570956554607525576039170167929668663567856025189359319034649774919012041192962694159352046902709301809178051058625249113198973989700186161426730769026575772320866985247123560524147950295260562323128229232043718884590001393082048299677958691174971474601702213325570981854675959564380379594872928532968602314654678325041622752719170984547244624630422251728101978495571618942216870747163465611797734830192615538381705804033504229715712018083970444755147716840335035291203248988796601229816033983575384153148847569272993833669039643416024640000799282731421668743567735474127320030100471954250031434788643745683441579949474185786589167231648396496555858638915127741571011309595815629727391368680232926636487595525875618309173905306015317354787723532837089327740013914723207321300675531608657776064667179328684987138182193224220975411983027855311899188090432276033292343132520691791285737160262544719736541212346140749558310022072381554456066317765212769204262944139519536240393945355342791902018679752199419541979656656963824477823570482444410050956778204152352162366762571903017814396065265988910463077227487736443805503795681856329095665726078306735452149353686363542227159187870805422272880196050175130484590013337249425876289344745841797226768158333761123600405969570308116688174714594303876174732008325921267296853809121994866921915745855116729940431222955563785036659665798777887678842841205051547173425699525761414245429536606028232497644730301783068965754574065243995230225581607669290293438176586465647770695145266806285449047930561228445980232431776224450623090350853739084008334354362941771910939355903869041780466931500802608798590722780466821991214223664337609128077508119584928804670783471526003881879691178867671936063561346512443020066189481575779536661667565920130846945840347472676188645710464437763559167581601041199103175634198285001611000374934843199389946245914830410095750959813616476927370032873798464734602892630787627735097488988760349379866405028722861218755628174172791242919274464252116663948825392671838915291235120903496374046078642151483650801894561133243124965992595724465973308200365101294496781661020590882556151924246787935977148138399114835689211867860099372237910243899383112642316781770265703634688797345181859581109026454368706676739368276003064216762891400973185200505149744273957728928196628359711343350821126597163399521644214729850703525042756751730598406199879522380374628475852751882094714238056200140801796957284522581771370384397394489147662685393716022934783277286577523790211663013501234331630364034606855414467992644107230533193331654607099662047079366294478190932669465497498559274249012509351137937980525622895326059123422561984463391247179769694884549008995230723841442491649744942971719237198265472593736419496801107491457427008956473642382399530406224319579731126886260835816079406939437769951212001772652147612589487019741132590306672006032909459643188246502871872878015666366502304605613996016490976391395045120936638886123009145675922364135771832688689301001983107325339414579657542511584509152418970785609574180609323942826762046708208088647211698148798761092860089305706367217369204276688782907731693376698735616323524164452615412244142029290471121696306625061434163723591116830758726015178478712627908627221547864128026510937097094702763232986957801852098777579949712621190580395894245449912020139420401438914997459709441884122458005562600192222562027967718751737750549443392349845218922510497991242254647195362781976826588775620382870287673404805184270587087096984563926625284529582652075684778610666688487162364269113979984974478944340503545708758205593260661095887143014172999605904944432636384214525476084307228323413023000786525560820811250854915785039202548471139373244740765069713133203018439551724796396597354941326548618822950136609504494960450240703900126303693572823754426273832270680039828917616055955963651981476046627172726687141416850298531910932524129429102763671855686735534940490025268212869982371536932412589446035453325145353765408051621234872110057263461363470726054278238316608648375303589004853558613275908304410478782629356854643287343230802282241707510488376649050767151882242216342925532481387202849991954458366347966985706119140618931866790371742945400536719292792542258762174054056067561393834843072764979501812825790173042550951962703606803574524752857194955311846324382126678653627639357065707730329871960586293804714287993412968484061069420977516907920332726595044132960102217367748187133301581916471051641082589664181261058734926149609975436417977665235983006474079638353760921314907743979740535699286024489110991455133444993736581420228771063699919341008882003343486574157221205081611237857253880363687267563850614794857449022369743083859658340213114673527897846213635072570721342302060221492051413162323972682743325056164641781252596469356968888133877470140856112226037387173291877708084043595327400134777495458098697276185513982914379454790807885447346560419452494007420520968887346466315518033760569994107705099944232401821869254803053282118736719597681500453506861997555388030524312948205806457693895681102853777896771451339004125606285365244550206545786276186572554923916429111636616392039651244579588321348566062504837880703760348971711853208846966825166972373078419480297614570329643364595914793532535468504669450441761842413955077215501755453241695183326772088719204385359937965583368905078754563451016393840219894215444946195822656270773417612769710991634943008792201812459552478955500217219560480439515206363976111310077507970994223978078174043231081121840485926598742251526295723799018887618002994030680767328359426407310471961536754375730756462611832377100417984163763200675122061955038884483959187977671908388915944204655268738790082410472747321649800896311302122442163347500710738470363999689319942132731063147777846490021385140213933412496492259159634550775817778639740934726344145191771374316477560659920461814349814422084913265964042457087775725437876609574333930896433343436921641737769881107388541773965195856219243797611732368764058884915929384673106062744480438152338670247076370518315705824126566970712035529641369399252803432607896877732366717450445425433141252122431400193397479196414420874345293574910879245250227082883341943618591057004358089896007308331892038296634488474504885270845473694025068352281791716069157127872889244933205845116056715620827290189916084196269901945053488634549790896035186816119216742678714555669031290956386023471218010572649993742849147379874816341809968584356024126699274658003057113595544302979477321950492687537162906715547711296322022328316602804266637513529513118487918291181888001272005980992785459425999680953048561779676707118915609764145895407537472034805548095907959065270772044239229137101291981098158646708870093664592083027475642927265436277194287091577090185090731167358951319900259420924779803096816832853023637272675723663140411622323569236803370793069550025489298775356059259033661814338005578334149564569069323509187027583677118200244358570128349865305522882775562387592846822951090580110863613011573769297760055528871080903676445323344434529321288987731644670791700118140017119471269618596685321991083893300343131494645745523610034875796914546611484874160442249638835259398362347757982171193686564272618256075604639924210886304170433578131350589389924444843792665876841964884395084978333448055337224692391485109982786019172450834890648031207903164201674179188281807668435228821904410392018241557411870656965928716831100513294964236034566876866512869982189490044354090126167947562987888141219853857194244492231869838027537519053290848492341733226655211134917023478861037318664319344997623559403440192758786118010952413226241296434761527825493119353626767124763976870394323910484231271668589772743858884230536879878982636750267777263501612500900784319635726480783150263263527240491355960576367775884096232005762084769538040981942957268664115644436481551814858771985219331948843279727815516855994488981381277243129836823500395295511157933384692100812685028313675614994660975990314605096019376113316061403961854133336698721061037794367682357109046724372439369742430851037298791185150501495887297497964983102090157416619952052901744922009929024829650335522599318565431643027972502417333318454521309058600593355288734805810746798774309581074777593369638333192188511203627632335535920266329339679148929296209188562492973994094552058477285588749827318496786764912238207310926800673052557179582225577621862976559105383717893010837558769288821692639656774779086091078768043856297873502286226081518093491050690019235992240622502694859185765056532857968106630633247757893887002935830811350266781549541396841547573571591079685823481737782752873758685713259059189676788078803130376345077856766607046718071956083270738970193585473760924716845138452734628835239772152589605985006018006174418201234289973631293013996790157681696763683202226609863833440550396132886741549936142726115562696575456370976494620581614319275053784819672056716302873980524516242040086367674992903594094104776556116654150372111596444116811332962639273909778315790210525928520409158726834322292918152254577605521217449200549876409228241921287701470675212652911942202735928940427559278531197777742463826556690628951364986519785104203964441647827199763972770788777839786882426279881206666762921696500094081468596647863286781854935662699560263637422783307941262927554886705889309067164767492869292677483058678699126992723880967536573171939200975680529688019380770947856494706923527189644892235908940717806964731919514399599973151407946975534189961882956810794459601144132355129324348899583028695535038600761355031106472790231494674825479825743076989517816685438963958426836248176006440656466124008814263984902762768994406351340377340715826783758206942566802882872976421787713636977175211463766504697229109459949666892946988286328191557831835789031821136794763165331938206508029732584909922832525663699912613708198921152976439589469619315078051200084907949978697067919775402743311058854353718856224393182460388092391990878257713323228426013658961544018601323134519461391246956988242850979054878829036820119135445477961303732277206071621815276006117393275752046397593762678354293371830027266541650135197669815936400290682493955118619800512617012903631180998614930023685043049567855806987847470376401122802638702269164388497807360622149074946435108304160234304906949920386062778230745878208931804852340714070460170953708936398803743410802158784538489680029700613819302857286715665847507858954715827009870758441779399765340576062852018833299046705064666035556099473329923542629702755594496808520883439058741715126007618166842853834526666343894304125987772583651445252001018702727283194257995338417682924272082112736701678295905143898616815083261090045840899067605153835269036667912535644057935564230903083288334647653460906598555709644228992828212990874752480652895264043144466862818922159168335660368361456369464454598500823072365890943630486844562551124740796316787295467753943973412075260319131811745642411330149980055082067721368170582508265547356982125030423618137467161798846763185145813709638148137409936431510793187130089908243036374735986974619012191806313457056739131795774881402064767569778950494444356550782172709893838182796401450795425149410402774074926974741020708640859982848696175241798586119230546517401013844606260853173127429801777240429104021639850880472696462206458302515269377735327740383916853207522480122345045605078055761834020955221570017965137301744962950974972780124256799623543238670330112585816105127212641478768377304422836462265947123420296641350725961148073085704670821358770294218759950373124772624713577577091964049632726209743564887322941514489052033332038001202239466720062675013787756274309888197201360969294078681508288228144314174312880142733005790630054687778606390743574537752459733344201291808527926367000745418762881097710160318535062161075390442756150845766105787382760059929742955162204795511443157387717881309914481878517146980203717899270605917046694449620424378610685718888361962039152810548611331865110329482483550930903911350555264859078350516162026544963360517980060114311530801844119469072268016953461244920173130817899451725511049111133299474158170371882353355528549976748621375121378053477842284430418306616304649362435229035027112964765297843732442840102908016501108922050529096444015672220681257727484398484809368603144619920291537349143345895572043633492541269484066380648038789558204109471096553280822244099612133706140600982603986846367595519050000403371591286438508200136706813645111084536222696403733411435359881731512574641828908611916678388609693818723004819651746536334959664141956995000613193563548034521131181980252912632566101511900286016450568156380220683225479512584981982287677326618655865741723102876473121613031830954653754167038159651122896239737733854428916590572524929425163675748383086073542513752104821484389775569852136624704073965291358798309816196491186031354585592270541620825240812369195294919046581611290996031058862486886487525957371328171605635594946780244097871909445411141107183501587810845789483208562250995600563752801324590707641834134353206820018647141975534458032041550566482676754007975808855619904458047987636334230092993240570686678240623340120784612861986188962234998662470994744586050523480483829823974161358759660223872082496234638048360067319327308731872774651741906049172616434086053410949121184444974210528205341366053875442282468383202833463072761339264353475612012646134614796912569804794085355724804250137313224033820638214408427636062800341482740606115314227643046499532903964244533351339519071527695115681846613919895325653925454486589247197974116976863419559272512826324279947183473556682159082620531580951912476314264600627284702771238976842039544385271764198785218874126466132443769082288780543183964905533520741205670407953933939218306243634501095867818733714974069381219253367984164117849296519945411324704012655781784927965173530666740008962488246050445290189277306271347577116312484650985400649555920881443375201302868230781519300636487366015319679073459115656230816545065259326408222942037807729975631242970263219927043358503051091389751427872213975125727140103433056054806556379236381048560100659216942991485816599400689782404506988160079929891785856617464950935949422555124066896486113430686479282143038637904481512798600926188171620004890744966634051063744834839781565194960475087777065536716722296824354233786945744282886890080794701843608998594918226659321928288310682967796667528376970535072995675453653603793763460724013482562866311107753114686080074519761473189086265823779681132019879419747072255688718854406862174581338600212415103351915128997631010635790687718106833142999902038564625570651588708944631305502838214551153448119605249362412848242256097036457433547069979192956178863433169116149160832378732677674831059867967027016348812497812616701235679097766326057432321433762002467463925515523678617378761234513185195097632920025724980770836278538069850890425374518990411329017069666866148158627859332870507259950457855519126710376510582909009880717042483742225019940287112941321447489778256416220434118805885899184107116886297137677860374269539783373624675316875899980077679640842560753051015537258442929848900703157510152444603087025352293433169520940108455824232736683437460824984164486202797833570906132807122632103352195460416428658681202522705590275428150776327675248977447259444841766975904799561542822732209413932919887230559561383710591773405110029073356185819193847623680931896922120547034130342357955767671271991779761870787397940341149313567981585263476035846841429777420199934887944919345602760117218543062264106119321063959215397945000135417337749181002119038650278428583755578427887901699700809160120236527505777192659697745918141196358906634866316964372236419104765014717527075305103597579402141141216210905560806888390592012111050133153797186460153078289084710779943658817228848899718159268111914008651449774714510900597549290008454003852552580911274346245354881413268074739762059782673699646932870116530286164458438467148592992510069002411787077961651173865696953595795889092791674222546145054496766851512985347264037454482613858641088247440119666414811185288858935804814743356775216797340201592979877631460674324453073879305496664620289832937129321772731696323288352809612405168321006051644548830044832354828485559999455371256070306911945657088889076974040610752394351568628024669151254779467326678315217818960415078564921341687964888941169212214065044061152319103156431259895086518009311502357057028367355239205267542517150749232059071316745265141510024847562337585901998040931842200020792827366157408271843461411204452921368276949287246051033461657614572565456933323112607432298211923889964200622655803553663765759733645194896766741915638849770701484287726882809942130310885871763641412740386947668256458183224096599353982498252635889567574964517942343530647553499339223900030949510178601639649299120961309122795353645592737398543652164040355645224966723258030177481811094662894804185298975077558160908119414311274657841123297779746291234264139029032503367540192805744433711943718717279266487171683779669550344981745096953625783979412424201896212618395483394796613655089402739060866089908601971667822512400765530258413025885388570014633353972872706575877273325134822305858410955607219620800105968728454790701931519759113141011372698059162415008383273115446215011905881378716738282569305432227512247933116444608267519646519944826805772912115354881530691017617327256984231020634521266000475703065725390440504962459899666028017282935391928788446352611760643271283367630796450202315263621005367430543002879974212894279996979120795579388289727998397755340137638633304591859721483747145270648470662739312239355286485029752078605749922227895051776863113424905412443875907771692477633337866624239112266524112277450552837912842360414865945707633895751071932404644490531495451902873047382038784586517636820020659766864539943191190011858418908126961243080771719520334339569121443210659409269995451323949291426002628091093435184596813287440545696389984400539592258754046250071420223885282859061057630048135820834380752373777313551609056811702334060745168342688401257171922051070960357197061630244483714797748388314322350926743402183126049064455620018038729701030199604383078213963072951298947718821771012323939235964440340625152372372246718279613836934533370332115120445485907177036562517130929533013812747892316320996667483620794092663465302227586788092299838242331213332119955550634287964231612703549259546617140046618357641785889166317710048406896398549394750111206842738611750802991692751073402505499297873440709409421679880733291109033333853225162637380464104386986996891346287152144411312409270771383752214111096167529050658259319876472605923277918155838373675481705777463624753181700856477496175588446947329648994140045947753280588787188782228408257735153373891903819653581233232293713334891118574449456856823087482625468648610559911193042964521513962342861420401596850755657473694375348036092858525182416189997113123147032190730313894060435807003900872407855563258476318844138141412180063521854399737696071153726154277026642560205273641405356997500820101507124306907547912007561904748696305891007046567449000260795087149390971987608972943426620503677455942946227720016055531204533573487048313849425438831827364186794135357787721998964258955759817921368910402300351133627774358986407768192928764044667372546090166509807249477100670719764591175792214850854332487626681411457449695264166657005129683813914863637267556384536314922757783895426865384021834717513638307455854955816065011542747182307977316456634470494167842629193415947838549274610325758705283060051297313127519112013212496097947938521319170777085810880117080494137040690831851359301324770898563608532377239400421616653754018364420146152207962763241510576146922252299959241546818550092198765919835438841794285427592223221678017267941887120230226440308334304530119362153867867151429505483901975475264569425040679390103897565139855930870985658474358632164385230365340392214122876155494485934072432211077951486630895921945586980268691523169271567323944964140140684507166732995157132785446127352647855875075405387017626790898084793020879215567693021840301035797151213307498922826443711121734870580516920191489784293695895610961753168787704758128063767040130163256603649057601326703584523335868661603341430648133230444169719543032672564826101433635417165799742206029165302760977590271219316049091532925285096363784791358666274681862988885946756336910115172149324844721966130186435861266199396979043386736552143193746499289741021465399477812915957638974997399536267076585347391555202368611637952881140235547108201950919379848118089126195798095603942025829625653321113680545036899768916161392148759524936011666029993305987379242171298605016757361052534872005405673894558703534962130633884084187149388178897251672685944335049907393800400340503472562785515360842604648523807703705329244093827405619859615371769882192985115308634130567979712795671653013839196942576577471715936269783709869080430503705331293684225985230667397627987938862183139201906549128932609623260900968915779678465123202914652235269539703697496916437975202806673163121162811541724988665362761415578243801709895106457690663008945918213128725589189779429687212972359514801577074506183422329677927026224979504836994579130462275971503516415735333324836555000586226264153683582918473241088386646376508781481240092443567876356053617072031375079771388823288160578501491202865579598848884473495604410186143038374799199483633806262304993598453867251466727167268339059478788828383048307793791800530110721959461396967001094193988932533552404952974288329758554655908411538585480611141503329069071115855279571145465527914841909763624334378756130009408922447461241055674258472021462087665069598602628222575081783995668884792415605785513828914999221146292345724199294725069775256004491865358244385119246273412976712295635303936478733507381436051817539873264784198682839973015575290938555758529826195946552979155108381990474459623955388280314920685110954742698699076764116053970262726347190978861094915433444817619826558276324341134812378611097135568050514268943709167289553880070975521048572489158117643631210072959554858835800312877914065829909284279341343642316300377699426221366623558760726466340014285394445727548551183112849532848628519677685944645151918882843940830813116241443373293567624887296531379558349864665796085279946378417209593700022983542798296417306713449720851294702122625016819515749631882060948331264579257668583307472036675275961050276398387954359880412801151983238143174450352187628867186103309908473824507374829880552291751323130407923056747275117900846756443009834523772666198216421807115494206628565145685829873799750227008556752013198799268366982508225294640133707844510463715598828436499826222295116822655868794943315784435930381483635786396678976972177862002359292710891228799388703395799692045717047114914194574234593171422025516537880270478194471571551922133790049549321745958859999306858651560453211553465661771850850925551351993909383993212827643113330347898906492361221264178297602520527887177726274807910657459225970354607360895123866816653279846674526695986228886789890414424287012106172882918050963525730867537820391776838862795647542788120325672012885546635756742236150773740601805987641415882379305556374877039253188805684448585158428067818123657805852739626768715498150854789412139680727595971803057344145946942578967738563389466327300011043847024155472397983168367374612406911692226940007736837020189395328182811675100300496838729486737502328662789635814215458029839410863560946406026363195039591928304124986876564994064098480194859592378806895863968439788076998800053027372437925236913572135196675709260488916354313417626466095987538885758660697865420415378911467854876727788673425357814233445384928477046085169815585873451480678315532117257538478861340276193341765910664024143313146904269561100377818636424459150119558292319902846460322096162726808024500741670685895947963177383713645588329896553025569997886426869069911253423014220426165073518994912393912897296249609221983003505461819145696352038740702177116981147965474280779836632959750063012141339028753381582017066263631016619883222038570818452374437680494212104704264733747051055231725755255210781936491976385074550921926698941665896078236231279077840858193621695814339442507365909747552735397449996075992179896116084671828080333477359065719774106336433570011031146617699863716924906877864485563790275273923921050949922485914444255974082762486575071235247145851144048956606449220569394109456555100838347528737550012830341460926070314490162907390712487013578821893738697618659173591450108356259563284021002479312865063227800746687501824349643167309728076761674385279308931865299174769822671214005118915950022181713549466578700161689866966509686934673493778773900256171986083212406949044759748461831383870919773249504930521621409073068567801220705344218206062590155018746550914459144816955460462105113511617485029111412044107005923749356469336045580671666468233840916076221106430344826994080625286538077753385062608646711091107833679550328775002922132910094769387656790736230158233451178271143312328212712761343717980584738509786553964712980334342870597504914132247828547462613464982951053702852266498724173586342157841864384721229230998690115015334778169396148097088857769823199928573804940552470085182137151084789571704604078108178503963364536939674412704291139963657814222997174712009176428971967852131071839606401962811751789246878473430749765972394800030609559457924379468068859099254460232620182843781896427063569877662016567251560248763658836863677552301362492695462783511869906201254739882874196204175868957552779066294143833395354199731682438145692263304998943299233609880718885186293272686198609508321437915557955668487638097908147762561338503733871069810699264404788038965312308991233682299355032711450792754804968409942149489481861494356498861063918229714134201733062595649384368754662524273707457237887040871426385736536853459569587710223523420676759552368416750659910482354042286204778190162816788828200627657752923325231449812655100765141763231514526087009312912326227275127907486296774073052035723592555766038235390511612658912858256302991326000099729453186402170937282944850106286875636562395455682725321718672425793739472540736678148719979054606842364387660128726937483856527798631837466260734437313901943726668585525499737216475232441420100658225846266910201860642379908368546698091612056324430816435596070040369590235508537275073125747788601512717233018564314687867522277325299914037310192741965000587088349985552662988370790239286195173667225882043648376397562560964476481868397192926660395190662695954522955732760124273682026590660635748929553832606845722931985719669770235128875350005187250773204137164584986027233236225469026239858301265181641078555057339021291571195920727313925528867357211012281296625596327158895176183920194741207051706884897638543375785512532823525526568939733089531929763126552677010696362181303876654972113932287566388467898506338037448825311765596532980101246736866456693601944962951777087422255301235334827143998328747143994141597990927821356433793598681362621420267131005799037827318717398006933732169854576682415889982609674181673198996375230557041383270583140147552315148825060411786442486403016477469597801633058812408114803909671737728680238031067271605073055697693295927644211719183587875646424506731520454332671358156266459873194704153126045404900422618724101754169625476325221905768877736087111940850905805572042019579057674097273508190147094173797982298349382544308472574345400717440284174291201329864922286288589210087197981368376723969665822102187672868187568752417870580334221628345112705991323264792101682472273402128029901444714683944433133090529559380965076026347387765738537490282743453586986228897163124538215526295505559378656522958478514722097991528605079283646685340358704392604021759247802090108896048499986557604690647404831976530037862813414787735695539737918037820700215152292989292929705491572709355003386741769262848186474203539416566247482557777275362061701090741278301583944991482584779107847028657502385109986957334699705569779629570689228490678895628550252776207068093096536026219394598480386831140682643026917138178283560425874366442499753582261806304085552916289110375653934470708186749680232947433220205317723659072285830043807501686392833870043595029158722137504417599128436506107480482344741968452027179355375832331630477857571371322624327555184801519620565628065914436418239480208680034012908783828809712346863270127653277011532451816604124456713294564592381772712842508247007759574791040780815556710782049008171203266661721201871841337693625756100069441059709352677851005911827834770035316313459486916377255715475639391950974887546268353225787821431394510583929404172811026273079554593602121939021048214111737005760054967416997857552784877728052079673617772335110068617690172741109704499304323010112771305519813918619189991435018641318961168496604254482872351331349709753873895015618637596948371626843435375323862545680844952238873310035230278376624786027940381183347858939537592986896548327980199451914306056352884220457326089446570903331669006087751764611022742139707756675386359729486008345159164547005535116818654089565938469616745030440081454269744785476793285098959647467117882708047946030399799669766363760164834991036403019747589647991926388432494113673372710848288882978524016264313083496708841368217873263768327375587456078325443771970496780584719698422057103816755500610608919724716143324884619514081304725865103786932465815637793687354204056198042827901408361196633782416592674906965178750481865367930999525672297005902208123225697585106296986947120172820943854588659207233946937082303848063165595682245971664314676152712248465416383321751988637789756091917973633011752211292416159836333777644389169661986998796331422007620980404539615120307542681146885922827530361469345454653512392570278213303036448690296223491426230466823017583694194888935487609714203041243548794624744451382098830421105809493777515293223089938972643016301297366618074794419673944561343143353009108294279430551903227654728572489751894714022956076179144775738266280524530915277377607114862892594822370120889671708559823185303880146349113722389966259634959968746811706476287506725074954438941340235046668049655691056210817862685290681969950270023836003458705883297932786298061733342623697519191868747275644916865146349569489061975688723983122456413686638181648753772538432949921572224929490010553665124879970305166064366560825305464189800899370246715806554446065677049683974386938896638045527938467922788646673143944974881335112448473741641230662544923971402887938039986158789705911787437927864395791643878815773840980731982172418275257135645433498544016942414546803125280396741668611794448480698700777698785195934428482313336283144615090713695337450101043320473378203780524119851643394140833830405250132771564420768599396080408329015630028939621287138138248071937986283369863350920241917292068633334715539343901374605815617383788211636024970662829091483491317178359138939008216448202782952321384237553666023552838341011355153830454368465439613141097569572731926743676541327825597267453848346541263823531853640376442476655078611833109182771186732791986682314512819275516275223490280383164070287465279933434256519464215503133854177533578234139547980807345076514054084515185890389466172516805723539081769707312349038539178609905705982170432122442447625489392314424545503468804613471911831923798420061924453576063844965406208588293989616717881484237104667966179447521223060682762122146349253752234964137921039697190501062601028951404659212562805535771660765562505178309659527051494908040689184565582072913394392569573490493177872761839576468223177686310071741264935871921955490463575584616985314812043910555092787780400855361121814285376430401434663037438999915638440039504278700958687879039629168086266612987110650359964022638728193189522260345296555744482326210840935751123898014980727612409736928714185267281178051346703348622366388446895782011897623468385534196166223510406981672347608426393197677350199887994375225115100953560128646490778879452802249116075558300532771957619886118956017094976425112971457593395988201082414778028137428695780050922833833889495449019054475223916144071239739733234357415689833803743470025482366156363769783860912433816662555531125294448532120587083890997604523085241825272898469429601113413554921935934706341439896838697082379289370433829672427200032493710484777332687500365477494587455368530585803428821387102231883104299312349657245048020214692404040442778314862249824707290983579902237775838044342024561750294505424756461423658423335590918257567299865639768107835761569365530705510650582742333566276894633020974429317775843860601781148869479656352227356327127307580015960401550036491490274069692706836174808203767250565297887403208094073575883608298381615715202669339145108701478966602262397969838139817381459200063912439402642808305015776969032373463923933803961813573181885633213560430191627193696851335211597016182115872835130593563080378653608435893230606197981721144984741126113079169558306197213070696113575408203943782621026130975587414131397591544084944188196014115526182089282156107878169776456509770237232241123752529664845987820160914529984930014123014923370024289687855740037864191180546919199991113655797613432223197810525188888745574000439844354481171510848322622598890658275495565655268853757814284894897893949728548318833279097560252097891232729806383293053142357724593581746200901908971289052818165791226343897209990589040055250571236494172133428222143207267526423672166896557184345435633373707045758524970473254555772318052236113476822265418762645379047434675423425362129476720270437643533171959272181535083885295241316189789974145162187429672856070809945102638360818008876379618014596681357501902557429587715466403847001827852290368735359626706398098927431958669159601243981756998359611997761468494633631870945624897075884435043445768447129305636520436103700156415148484369285520847280973097517203039300090462980891971350320914424719693054203529655101340365041354269346905949279080766205959114045452517487668866533454394571676012280151508270568617774749625998867756917983278617862003581426285477760017714544805570419504166350850961190994990093245466241212951815954674537576552260508626702107361825692281949732916125378302459532584450132361963666186708368003058041516321460843780971948236354179755477855745424494307220940007770846681861221893485395661061231984754097204446439713228668799970709560861382488035975807530315769999258192501499953062025507595312238489152994280677001527897487368366221164975327098617561399413981837685487827133199417547309897101580421360228166001355365404548393609231043365861727258030777656940575311448929883687868476968270668473828309429234064639163516673640797801589924201336488715061335322317547015690287409608249682987103354578577291795325395224537352926990992141172575606655325340283390032181106344611529381800515265332233699892657886947816269925743268005635049729934944452635179380789134651849578654709378456824430220578685832384610369361082706699421783548775408524276168241770994405653882063802321324553783520297540268555220294277304155734080777460802168087296642813220099078521738751180301168480890999128686720683757064963024410001028437701294530700745685081904250761610882825619269702005873476392677044723679219564945999332062973383436876099553872903900888819017728131323932735161217784840857589720471229644002121144432408139252342160082556821736260576520909518339257978952853395527721839493356820426189766908194967270443656372918801052093551608930616442932197317380151414091842594137132036493403558438692647720175062579170075398349612015897469583261043989808500392871055865444772859299495388366119957011237060352775563100496340087641009117205539649035811159459136218898323484312340546692101542917338377637351396968216164261997159278426469501297612171684080036271384423530585216916844622399474066881874846121732412947034280508253470191885980388529679193489645524222998733338875253732056083208833837952816341330293388503764253754926931833196572374795704657822159651145457099178106485732990886104339197659813897275312787664267340142362629057281748363237860085188960190193217038283626863985300337006283246565733060808101620751537320117272806916432063386670684354382433831838714276767258862402332270712552123608728261231483040873323441094660462067095811282796233315497508913839354534600032675431583683127195962046930919377400912341318204452945349892484609618963285841941283787776373014454140609134832073629947120767047499350308743329860605211184254428716545099251711279616788172093322741581471527945659189826009013690700949811955867574595314387551223678737224358553584091908283261466539943498466085030578300246868492020242970835467535625044715614670726945211812140509619657804658895013881253628451776349969948613618973297667399227077818693526517116625833955250603923421986628823681784822632785290352679980687647113957865314831804592958460800779097405068394529718090430120360506162126882625162891214097978305654885928130559938138103923713547806863725394394664531422261580140317626317783961521458216202053541040373437610236363118409695253549698810769556721987163799179319604583329203015857954184735684982098784598819288555495202316932579028483409773921158461758852709744083132923974001154115911056890997813681331890276268781821094608957784555880847914985143831238315770623864056726660106237851056637969638350944609917376687454726788187193553088348350199321067789086170198379587925442425675060073955787224533883602941173452262258380779356028924009922747472587245229124689745048525516129668836453483970930135692855321808603192939466127502131687205321863454332311013009600252536405536718375134561381936046801013539590874559731480864164720223233693893729267320422223642599168855173485994313166431324116633078496290510741091794796870430966917297980317509206339285725896977123538782744223995407080317038826873893898343536428431306631294953425999539910878697964800701983999749543872336394908749912893650422972584389050408283149526369587819336795067427525280013144677863271713611825363828565240927089839338365485225675756143003988190711639490721601593173390022810857943128031568415672074207506755915859326448539938047962416244036370002238296396011510908880628215224250702605507229240269273832678433283679136049898176301502338122149389119863120343592924918562656692733811274848091289792462972305852093890750823745975580987415706863094219013522609081015921273002170575250997624713989682006161442169801740381695990302246128521691429408794357468049533727439559183722172337518646615235503308495043555722196487815201370362229125333129560524203858553835135620070220787411664982414977526795951798332615731794112878909233295130086958080955901840540239109799483571609110529999278310183228776655918491806216682114276260989003032937410918900487107331746683037782567542493432047247687548068840974776165121153869213475354190976504583909245935246933566519492353006405454267370941497643097383236703953669531634810698525839867256752503080133572505601681050176664133185725470993567984140168030122776953561012861128789769692236558993630845617754860334493382143573862371813148956148038587613214952060853313288166425697391114237854375494012876080044680531004789786321616671909805791215838135536998983454408574131882105819428711460331133780882253243887437271956158686909265977617607968235742537397136548298122192419331371202423460948723853803614448331752465604924971347279046149673602992548318488967725467352273252989958716709178240252696887370431715220753110221905419155880515013119204360697704407935476531128079017014756967664582397300945999734585970458892697853676393944528027265831720986961504902279651204275156626462771679120530453246402333194854659883170558231013982134664947672151338878630166445922632912398763885230071604840053852222865654751402852781032009645090770451939617644976985282341814446743660485541952432552487006172945684571317412034280033566864044819430476610000235362944291577794875999650109866055039001022847255634950631945345488449487917504085532502501166367748443479317055037684022801805467418023844732068083740083293142901219374512193451153530912424837989756367440126286251918078434365495948852196388746352918395551539718465022662869191884553454612102731440003415680258057600609270391710517716960048945152315160353554831636301972338963732165621888967631023531906874202347568870573803256498128119892551195338229115359087628263173521171085092595177767148829367559245026123301290098471414355145741836447054792068426566424371397052295709263345173603264305144148404982187958044465328148281618408916585843391838021232936968596788233600236857779749921187030552909569320829234409037600628526919887745210366640422566410701784611458116529160098723375619052343392961721960053093724184389825661192734466636202196906546587443950014468484029536226152932154878970773628426696715206483397463624116413673388560936510085784239122836273520601656636530386550601421902719481190407569551455738896751603684931926229405283379213237789220428676903758897578684258953579466451551048946570286466404897168778165940029795160227368114694314829748279888467870833836601594841530031951252120929071796680576492640135649055748451969955731290344385647075360854444671544304829408103692305651000411990955588698781663792046140860369901027434077311105843119877652075355458675661112199804970125426368044440371501790777122484922905041180467365759728823760799927376974065691477841099957780388726207511811208919241131485601096207043308902260346014257568080398774206311795816352099509653293317626960787624362402877974300350965916257838118659021820676861320786912918289745705623962762223572163277850642413136512703698420832693404178384756958402125258990734171417145282559200146867587791419023958514914675950612263923325565371428461068492857699784047785455826431521360810089976310872256152683182683214559417811611690913971647675479830930907800373174875911897677383008929529585761061516806949445278154109021453310447455328504432170855816446207703855772617783182199082647442121140501863874972365890980760368870104021468452530026286450561538884937239685462174262419860493379369206479818538020499869541594989539465163409346344534102326474631362307567802276365764929044731174811761806010455624691244055703672334024071648018140026567578866470947191397614629253534631436876193063232871100740943606566398272830133655332560800819439881642195555287068739813983231377505904959722006452076197560915990290538824081732050060959072271498845018970553741580804218760526272270572231304289216917721327436054955338705841584642712952025079092417868916186804809022704548231825025081394163334673894883430210307832586425893823375948167329020415793700815951361283315936512692814733495187527674865876837578735417983497970906990600146032057768407173435251401669954184447728908540283347556008077447982730054144596357892079340445400256631251236910721559879980784435186921275724049249263276009982807881112319892242807916167278036267167044292943094239001422069698552531360572442464715168073540921278237428345551547498902269012147888516240765407533193823018845674423464589765269873633753551323266174419224364781392123692401038463660676593737893545042040548105781683084488575709708389582638577958266973038612372844496517375838378699180894678747930009384251553903869485617985526012176305734703892707575154398598213559601947210711085110196295384005247236327693580450151425139306770945835839526816734260150686702331234986579959458657933134848550121534242317406538979398231810518986960759360032992146964940985075090213007554378392532888523570062762349412041848407838365976105336793835115910943697908126753111543125003330811339469346360604955959218436535950981776158876477164113187000473289938296317696980213196212559151176488430211668251355792437954883904328089262202012387885377948732130334278350038834844155093233096887076446819941539337068341494894145756077556885677131864406296616600922500069739367654033298891752319806765658717723282779393765491947042920745862824935680455479025384899362061627858637007174922578176164412880523244149801351130539812846867605058771270911552246808225163597747989274734421345015465302491146557601870931848698772969345972307887153703737393049327928049679603751426469565011774660984768029674368780513646596946221565662561333423876191460009535763203460141198819299819215144154680668301797949326535740945714412704040042234814610595950524624267597302332469760894358463943540667289399799600896520229360473088434913471426746618160642928098095494255087160734692149943173391887330651850306673599655595291525586750889820688503993124451097806013102919024677000038436644562822408602413899809750716742720673628581236779719620979137072928188950893634050592288574330044068080314375003308390120445822887849873927594748038454554890703340309608321013243835273694513593193067020783734321315282018430985755557540732567319634599629338354466112884411306083209623150277738509469541543940661609183784102137833357964474806233409607644257220882236118570801112216558056178543035466863816329981853810912599710582433349052001981111171531118448782854109011186224469789932758693710753285294668050858930922644800043081206260585941400501605122964710494527645532751647022212391343424024271456144171335853098033218730836581684032951565139301574167709004273055958156082057866191622278164461714227691002096650986875431871517272262432567954685448693904551104990899122659402385202109647858542868528097777440858356795153108345326110613562616553769066393563726460375313332051804570450721749492198598754904048153416861841317901861355101218012029809029714065049736601714361468426821509164826338969711754627297753839539042338689610962436259412416496534470780088584501446619761076198527630641406787352267520741534251675526455141870027094780215635571449510694754865681054494823687254037686457455971015262536208318949570465932116660792933929790697060160660883651658630446767931517130467303601937622384065230318071595270877481171056428967788202736037371471045304526369750171108855898871744638416650245807482703056757483702416798731041307123464221709487862488639559615655040319993736246238981365399770390962857396800029509149031012922983279001664081864071610652090899481513049461248837043839496121962953482111186063145087927972704326344071573533020433158538713127220033940407497457322980566641081900121000196000408870104193213906923780788312858861189590832571575245297330270578283581795532704926699770205659110625303984401060786849840829157326617101576343541554935071964268107452226626620363477318995723676808777279558324253307982209355549455782834317653567370690489283880054692730637879491360375365573035646324050230417014303310864413296807955981396415677660352617992534485687620207357640980359701167285219804993038215691765764534681300229665408539724342815842526544933762668179272641917373406228302210918282899227145225210186649190021494103761914254041230629700652687451843437090492837955911799055453958052674523537424407464347540986139713830442869867025588160329000765700589428027923663187098352677992786350993467464669558150800244014718957583851373692875310822000074249161345200095940825795869176357518314214947236870185840550243833457821321141933756580560817406549717370083996623249102468317793686222203614904542763451652070752641248674887640026366503783423930505754721025403290770007154631312519052907677391878263705402666298026050274428737067069347024990008847065027141097412971831591474327643263229742333098596714055110914179292929959376280969236508275467044774512515884004206813213926183849924010937187833042930682309289929653850534578523561666136961040367500584618450512110369115939898977009540193158587679828981173981483537898014627122719857696221361651485508672822938508923521370236917595316981049801337772030988630252810450521806542226378293126229690165621208274482197460104333910355043001174201784667776585771965758156177328665203329721929354434396040465625570197211185998005674600083704231907991685381299210146550401895264813105317503684622749830325797739395300399703322469454859622769346559566139879699357530234525563067280761152223672625184829025835399346077459330770621666545569339727332816372701944556113828743555100094040997707122365295253487406440049576242359772666422958923987355646347483220699418839041843542256008896753594535296377994714233364420772596309482731240401598928024838803089166252716056477011611967405117851813814561763335941211155466154915803636498150442043078480879925388547137605755655930349385671788704941800238272117128333198903374725975383626135334435693368569750109495169883661237247544776928385711324710489452943159333645285551019805899455489161418845336653359063572343848751685833094970198748914535330913478486736708276394452005871180423264000273995063232169882343911735721529650511258263983235112960462234605680620404431695506441553686231034819077789179124740777175205080499376998515205184276588751706526786239040991708072532428115698062373275081844028518882362517380829465872583773242968560038455450846605795266525733595380822581896614060220634985795480890656781902898298858969882806405017684979160055586250188228230517532500572343820047889453403864757068337001642554395510380752338189319153940485415944349394912858402434753728989412629236760809672863443130010139932879864503596324607585627726688448613563289243554190875079421988288062407014369917636732798843669949664571599997406742598833673709116037404733627291551334661945813066156152953816624389489717952955784797646287457480843217053110120680994330005106256230962168763207868538160287567493323188560629176605847132567985919370440138978529799207592282521760996541137863756460670105786077572154712317189092380165487376589544825262420035553266492292887927218694490685789217845729713875162375405503674903914994171465857541072171321898189480065318362050078463172430171951412401169825071904603887489118378669083617853076256600794047751143060762758527488057348768433960652881674304935249651212871684661493982574998203476232627287787763203126427038746423276272386915950704524082720247411472421994862884821729356361082364074812497544559007172661639690312716836424244373378947503595808165401593956277762565577261293590936913889602149179502723723430590285366777619678249911567418924737537882293511645668209099353133580563282618599743937551818449705287864587703307598840601325976573778641191802526805563263608504806509360387878444021691424805663189149544451397578425373586518969952042324045654354039277555464870240302442816735258719018552294571171539442920458928892442727094257435010301504591641756107750537828325783018912411578792034509902786870276887796347772663068028447595550605913324395373271213468133698126567957973723059138078000565986120715433119791292092361596674723398372998792600554925653253211836368165266875302252582555210987775256641548076482756710999065685233946238059558383386049702884586546049994602882852946065369804592423979739617313462311973566490136045960782631182380440831204708633557227439189290394820450009814866318526739951212072866137735101910916292860981599173680913109415864924625461012530579543108010851846493076452321002913540618225860162570599025256525852409369426186661772792083436260329654871513295718161617429453795008173158990402960758280978837410207189867955196206462104789708818613427684615813299892782003286496061335566931207088587010288946065803574098605272251877944236211131529557200042941911218743830670629690974877560596716300748419334239441331905885569991121060765778785332969983162760315885412200982858206178084796693349496148595300832879901936050142096038690854423570966397899559566340058638018584024663678163591880271738597135461941394718493831050316823102780651572805126695262870982642177704690049980664056660082595384145347297063055774279574743770546024876384996892241508003314746962009154574745490524564394392373482169767635782650184896678710972185722936842258035617362760767622568630046626513327100200125740131935616289902200666087558784361184873425417362033276328515302865446409414998096796611034323741000726996641968409063475659144954084242389704854620733558091943963706988496790423679558148756160441979050611588132325842427101961056796094100854047904804201590802078153876390068808004392166915074694968542608434768735176107401303740039348745141628265889668820881826693193502350082606815798277174790652506585067427794118754051300904188991406501957091981501830253837026712694410255655628631806237026680974225656296240706434869671644179486723139929461031453110968874803831748022557103914330527422338366814277427529135395134235794780099545482778207499784730755759918292038792209877671114975432289178109438895767601838924745482051419216428758114107926266260553515525203509413216118890908501038394551466962222751188177634657618803514773808234524668016522804223193295376989550734682174281810799404236625398039280628536688373633463268922454465514499498662053071774101454998919376075345021929848719154519790862602810919128746622314405684214105393380805069565776321876081552355339982926880016525169579068527623216032230754827212213302123138799739879365810616384472815513977299684983781590826488381903213443333811004312952505278014339746756094224589821585446267760753139356003462920106172871642639693823920016365147693641574298643066492385093109218034487642690006381070695733508996681792800395609318354548313079613960909744724960510517214202347621435363537432596356124796767770463199522836259926198203004607104684393135853990600520646577905089041170369002698960834039379878872388758614804874444248152376995636625511647605799166403366969531826976134026515388426180857180134611318106134549841095528218193641917556564696219943315177317971442243815344462276701527087416757132487722456055597886959561503233702289771560239166890758085177279444569306060738714512945256960103057606025993844434914409054626112291017026698331644882595862852924173367731378524969366873959265506506824830007898646970284704859986510046606749676805713798235362565243373013311338940461730720043104369060844638888942970959721460472935388403596678047364174188880373160235309761584023527502387942058659754507776164893538455456484615238565763678043545077002436157717812799695107149525830369024628057968712998471313868842730932986348848964678042032165890998937285957319133041925780010672368538895424124994981180400410060154168131259254650251661893342907118950040231220217078097699022910533392878981535687437007609052098028626203562326021328985030075470794820733109551204873514371419481777523289287488088157391765093278778755001857664930004732262931085236910361689983947209905529997127420896626082502049931691902689350748483572309964348928986824865118225721632660000724556236394472971959601049472970593559936557234239741676290122247248729714473039833579499221714238326698858511336313784162791794676730010391083932215141260534415377907278619973560790143363805073837922850852454936366201626931670216657578651836444669207264198627692590763401422871872969702952442097861864004763158148557120894090955621042828175614782214330893174276594252334607963951632874423026300779051985014266710990847860066701513044133551769590892355844092050979248274857322180002058490281398384180711144025472618607576007987620630047020840666648806121864966852740934063778711377235660502833317536163516383376035912836002392991834898304801675924332375542836167749090764060883478676979204530748242495093992749171905246396790685177844151651943785944086766278080732213095113087877181494817136341209095863602184493773369931907924885052874407359132543204613135957537352889528569143349560235073476539159660323653515961541591814507222622763782200118520103178790517515806591721793829186047288919027427471790567772462496624423762507797561625111192459564653990950695363543092600498983864491414408207753042367499565630128962545614791198966657281321546481048515342607665378445538330262134806838163922992600744253081202139941727883656742142970126681930131776976506419640071757899868039378770386468666910708180112575156757168720702950579444084737642288814821813362532625224975441821210197614730320111416977744719127266256264617643897471004413654747810713309858662067993258787059550626384455116266971437857181642756468693103494369698714516132159692159782511321300661889490704991253535296270624079162983381346917321636801772134534278640715821113430930114602556904867041846284566905375753202072597324217102842165259742859346079193204522444823804671326748693272895384017581708479681811175655567660910586440216640535480230363025052347692335343444966829429520613585958558610272171673041957142863260726729546918162912179547947226613718602947543824444930146082458556239443477257704318632666493378523067758235948761503406600102631833487976836226226820206563203705899548868253186514188746046210394079889053355912762083797526911285931858585056774519201557211476815288046614797162654623866576551973535402158442983220349730611922897253647231990895390928124768227333455414461191162196442591001740627126543836074721544079983168634051889912685066038323936702209644190173959534472063539585620250616627019297373957467728498924147969091355748585179855461338396802581066270920115870415903834747747214270609453271891826691660354047991948160975741353768824898209393549272295126031012527579361428444369722304651343839870211895524820348772046161774264668236164753408515435658708316847179948495326560708794322895845924719190639627149163405301226433986345231997523353955541050449531532104347566973463665876672641273981563562687634732569561850371233567063851531959308303556722814816586156766259470454126798622577848835040691278103472431100088580898627161188282013128586736617405577311598333796248580779144585337638156548143272011869678767991699235036451360817134764930811541872972364047668470710249236390517916216537455067065986986568094141807833066778412117831664271746962771348863263731458689061078121274492003720109021913410131322173952333348804264548596702494756946930885933352111178343204799146596143586032834619878920316923655753301720368908970222078021958057465081587618933579295950474742287158397593175451648251904167525941908666097148934238252517005907517679747741921619569172596253752080320921785453106798597465830444922128731351030037130585950108879055730346209610367045998074164441875728051380055289853768032156387317598482073352794106023403557527556673814413257766325121410335107745041875484126738854063222744463139021097656229640306720832951724438858282175258515899666271412792785101639142964153632720588515143092092788116267182146605321470851250541966505047945766725692419851172122805096244590770606375546212034996295741148773405148211051038592792116367238130446927613722555872959979555438450114848094328415872625957705482345219942524201879303886598623162725921854342250809417665951511742364635632444137938637233304881189551210192604986052344804477585495160778881883690912261098825538679251127766651657284712962687172291442863085122378285966352468925305206035168097036951393343606845513065332735689553420626348899392398395014036690681387762134292750294077799018465795655181739906034813235375958901457259126614489496686311221974031888538521735485432250157178265814784618693273391653620956979755853828607081102878772519753176506928641747047482489682260384333701496585374329114795127334315529806050149501123851650714309139572100752625175729987436473979067038522983053927439495841341732529384176266010415379798090970592884444592651694156370688714158125333665286689399580266913288470124902221553561204534538437799334811070261444732932031836368899668656597393395829033324149053837840427796222210299585387478904955963295601891653281304938900292556255637668405539953303724313484397509792805259625935683193464731150227106970144477192300924468993718553202415692319134758143792692509236664087404634152825305664342727829641327309712241077531851026050174557201558053409438024762674538984917671222003054796238306461162105810061295550945168723228215412760810808583243073407279962246812673531352933408648642733579522880029739106329006332171023746061765308970904913689652346731783966925820752845825483531781669223912982532946036512257359426197490485903531483260143375551001588824168502783850968039301824781940170499767473264446571870040532706640329317122863274060108493485469494436666676901821624506752974114637868325204518783772082786469504268720680443863553327983520804491500572550599598515927841283771902858343868951446818128467204701435295580829395494422200934716111731674585892219220262666268109898406913671122338781732746620277577593968401122235812602694544687288711186104034710979450715653688769159314565385419618140075871575797327719093816843310232375165397162658276755226642721748148770773408728301195010576930322541051094690084209660674533891164581579917286592336939810581459800148214425512386277569624437668364573877314786143451167419998579778527898995180484292037502271401964160798338835910743376143345968869856845510750803791362895712927495489218548485874569980352557783545625840326065517023659600955496649169077118783998689896762083177542942685388300446921154032661169572709166389016157478765002623285122640156735487249487227890832434691822349798866722482003701732681770119900053087940508295145792970494549985586288282458293115830022442821540295546971963131675712511054924289967068271001637851200175885330686824772607300981762730463249390700808354382877778648327145921945573155059702677041113217050926574296511237550019109455910724922863031738359151960368581063200967912848387524059180820634447335090658916961623907889384414563742984188375253023028010945159332003897390964897512161175945540859755558216133123167562444952175080960798910245852537432302304953120173985688938054452172531708102695474944205528951153567122945508792809699683629745049424906145078251071002174584191909138312573832818755494459740322366795776238535306406716332978864469038505197243094582226248422817804980393123047451532125741904943016274781332553394070868435802860953057365858128659665092049253252560899452034578781297590237901085445569288159309156944596807677206377027647824471320080763186410304629891718329459689736597831031584661509493206819671276664415509870793011478287512709592113885980947326205307488002764716746666095261518383940432272271765079652817552792754977483824497588283649354018887890006037399119392858272604140710379222873361680120879994256713607219883768518207491439417711647459419131968263572790289248897889815175243847029910018658407855165440042707972402921072697575592043347329779250189026047716077710627559026395680633237024260991355065933758234153267174774013563842443270717952235822631857914639636564850861877766204064986820634666719759950474380013334774198800393586878123543369112683212974428953195231545770080099610142320348984553511840728529092662085089711257003183769706261632930959276938018839674064485488830367683511932689210679634000477785794861181141777112043476432424257318716652058314564595241856689247763358025153022013699338262036819875843493726334600912427650435800010612152847409461766884808934247831092530697759744650128738597956107707255271599347171599211289778383190580441194667243968292184716807727396750680604977032227083435896983039119376482309588107853109303138507951090432162111934632966295031854251386386755969214630542253389493081987267935410484281430472533919313095296265309983536246178075279572911839751121117975221023362290045285576737048557021920157640859913105901694944336925124768177319588889891502699344156357375124237467996529501430267162665809910791770819623809876839209006414013580481402160155476395611019051526973423037726242362184763096495839686731082498460674717437659295004644826705873015260455858020367195547569007050485252406140113993136169482268401270738308762179910804179252258246651003538573679967256580005147077841175236857008592191736160852203577027145403864309086087007564176250068447545632841897489831666527131050623847132444479991982037141370612331029940839433034883328195549785421267570441145060963042169296742712288602882478891985957374069897562522158766321142656509977802489426937256692163767680382841477374198588015125415093377735973844548750770041430094242310719554381662704273747818604230763060761311438817451549286872648665406380236392046463030220870286423067382379606333794257224368131873427193239385732141196382619117474208088172544183025381378190763415687528600036152360908586428571499582780763607113355330535898658947392869806926080563352762364247456624551253661774181881398328945212234729669360776896975715930269185618763618783134443162464135931492759925386563153057769940948901555186314548863531435959094975549164373923777550538608474815939781347062550909340725749120751022265657225752781593451613801186568429708689207919484091841082239611710002703948609650672124141927780688559428348014717229253000107448387934948858304304201597354397787452935320464237363376220233140250347121087182822786976754427842849225222570910665245455376521912859883481942704865537021185409983087699041339982261012668602136873037056948648421203764899835367901240789661051476812185526648271018600347539124717406835677072155200015242183847572422566994476496856302060352365059141462959668904279717537869721085546883217019117957449397228352035378411443667972711949829335970606264920121355289823382577511096705306378253314992785648227757958309457636581671775362136515779519214853112031531054987834902164600317986260270933606193118119187104689145982470687156548791455010654039008561190254783716339622355253088343014146021456306047875509262833212331965140250863928451975700197491274893214772881695712488333588890613041285173218180771493653287250642065198423517827257469469998339234568093575067213279871517540157760757478009545626421521683756565153541513278140050423071840056372135087885667337335960998480316149456210729928625806011097465478543353016663701402238203569632907108302209097203016489343306660338741566951296372717530721910138688154939665294604839903996518892008285689767828665161263439393393353300645045095876812357718544719970280348285597837795888754275151664262125272007954016459237309194648553159075483046960581252779403854021958787591206382685479764960989951485974970121599305098371820574667777889417117128568311590360470017356911825161164180002856567274272592302857807000697266332913794147481353721089215260932482214995758872108624266041172539691691567190844046334635032368845913294366183468501498798706825161440287239027524669713932816970262057701107098651570173553762375868656601621601589247720015256556505197116814800631447450212539084771175350499177880592813770986876543718050299833968263445807266417526951375444931862513209597488931347485897393626463174957769831641667024982625582030165115400570232431278726451560885391726855730354391507130006517356293488712875012629203640085019974827725326992272489009479187724913766753725828686808418166553263713775397245437714767562495770179488335960177943024482888163883098884855798374729145090217567132142869294557784824377830676741585395707607258786113555485348329582338283482455903916163686891535222261215376256342590498678270751885448405528150373206463669747623928378164286021680967180826302780073490938587309037032660006791308558443687302525039516083649465490378986499286848561810970457765939350936615077564185929160343588286214241012113748024919695204954892820927591114502336256708671298894580934604088631963717961945505850723384530634855569978176146663238391913520298787210237571480460072824880526178941480691506938487438072704726227534044870710995853605502460296478696082880517570981508864158486123195730577852779843946236034384538713212421825314876083195821438444058946061317870161840059093456707675573035768700520274324201986223521520512451857279730416577334346818330268750186792839170047151465428655829158309248910750572744474494034905161610743025972160903757348203208867037227311903147748470093898687552505887087886033783129847185398968545376304753680747719139962657005512535736667799320202023230298124207500094836434368823982406175434156180637824270852885670306744277614641292579544630942128524680693522556563695061843110149735694593188530660547283001011027967458876670026992307134673338568723951195449892790344281706638773019644072283634025460912784677098192801540689058790292943347698037957904997532999245108359694463851783396606524932533903845061008264967800177091685011675347364228249611880055300918530128261226867936220863682360348470430916210750975760914522954425936832953619473530888414058740567477553231622781225758482362506459105520436107432194271747213526361947029162935289277139979913905093363262028980436320487209670940825262075493465413722884463829683559856160197935617078186840697743630788321952860596036023720725688348141717720937089858488178630211054310190697246013318462996417669988462968066551715860863128892811135152557849959005740116179445995170547178025078381398134088153712792772393672223716712870391291095335990772556726837341537910249364124927515490611826250676220582842227277237994507355716535229331331521822474998355128220641004876415123233662790409741001111885375100261861888129495293124866391240316558737400414540852145486648484797087564591129453840859635416969827826429018074353390545362984049903711799744659202059606582802012234519610684259449840582445658278778185363428909499567764920808620664709224349900989136627706482134160462187889078607710611750045519405037071913949012359029737523860615606606826977729321514986777591891291732697010246453744884465911231048937943845616328554613443189418255900454329199617980176304080122773554619642755722982630871321014843115730706361421749337949901332552910707391102999690678342890682013715487353493046968022116209477425901220559454082159198130954174529356915972860067666847051240389578803441913830065330564962515926237345026634351339346223030320624169269015097261415581124220092797880550712292062027058798384952707288856227478017973330426928843014711214831362278934044180907975787472726839120129877234727304247662423008181139609982200386349548818379205678362045212672393335548039239641472687721480284622957910505029352607597660480371158851664063738374882255973302019645855082149988228052237536362155856503080890242242820846974639694357251738159406376240943047608814661494566199942979995676111293460015453476259322831060633008301608859127082836354080369148207945251242722941072107989278907778673557828497617506557292892473513785833058052822536383697121496736334349219176094427661727796842342555775824344706982152527948359742272406173759829907074897835385514103450392690473199283151404841553214642702085519185763490208286203675777092388412331444995399914483746655839250556632568324355664579327339320286442422547634326277770180178903265886390481712420061347776725600618801811121984603599585439338094285037867465001722137344495871956217951713072765480605252632375641873188924251479794701972125918211733367284429957280903438104466238280217953309719300506263358588067907014825782160669152345491856007347710559097823999557811764833125178669376461140319502124837335282899046810416121432559546352960473913915761453724788551556070210457170860220971562877879783267501114769312760691297996784961582924198165707571448181270538132723009669297342924558253421358483669198062722343215046077318516164387299608983740277595660886186046049143265328773055740424136117864485856225647182937298995640647826309651941321283721634279045241224258447800625339908824329958779251080397714064303136378800292952242650922134791967866297595596356227778760294015560194870853106255508764017413193354185688220051137890619588854160786067716865075058379441014183658631190481445915273045711344997079143734073429189928335285013231214840109552728721109870955968802355236387480179716677201059093499547590089869223285047725355571844332252423792396334003716344976978690603180322958859138245829432358088146712007761692072656448294050285026529790563513149306114662487362894020083986175004603798483972352514733756037538610192398516336854885356326941071050507457955769241944388727309388298202794955574248899102098826839489352368475660882062518674074772461057297321084621038438885999459784757370597363941829985666596968636715275467702819151417929664180890011847284666018838344969497499251337073722715032562031454307967940374422647480271703827671533404687455754554978060633856413929724731367153221229454743860605325056402537119416521168900780945022566665111361403523462204983311397627637415886430515219123891105970156777381842950571240439987432011684684052971901736471830247872456100292161848874571108828353414471863291720468618837633468531810673344884546334323951680371825314151513684582271969554948283634898511943649306925851061768530517564280166719219661501341333938999581591641093869887923330276142820779662796707159177991620756541400921667509640412682761757127038858037784239803742944493406270891790186321501036603422986485816316689407259098697651767360727685663800421928767950133697794495443997116252054450691992728061665174674210719836594869921027107074364570400126312814868914008365439194296761882029705932999457574101834445762463509483180364185770594166873905271900191718395003644352857135710449683753362010805949346622484244845066065727854593826367933727355670276258097899446840872607693483468462084353941921416815631574478009675976987052519189773207980183083595738656068848505561019767591626071334608117739157239691466278392803422932839871436994343728384602654796235025905671546563803285972510736345165084734861420282283538394067565479205639204434294225324169639513668038436004835210520128219606578140458882608024601235425136025241737730058702214028698268819459195198821907826925952592436458299992162622483897381480529623091684720676738442671795711270766331192013083699263541392346277608180474048736689184437316385274925917053263687094958871037062401223590315452362715731568410416692758877626003063185594222963393411549073260368978523282674168998931999081785291179412900044171972538426319604215865637194500815165005051192958926738030900834132065307824673914105468220512490976660309536811477272921164590341648982177937447279571499084947863736088395781027225934860156297145193960311974239372006520535278707095859509030342692337215070803962014442476227168270412864274582452839098353974897061975247529990783476373101074789245399307129306354724774230942073067401935159953657426385177872800289889959983689739951170456762411842500697707559399017464332521482556379969866291170797133098817453705388348334033831735005782738417268845787130565610101778960232200120360729024312450866967296874374916270069629226024954853927378039166454219563086566009561394383485512761435033551444233836509277053922013296070046608906438378338110850156440682730221268297881119669105458828715323646652333796405435179608165855264149387707471828994620774083643171106015084924169317556759528887669829372211970457725349521435318127687650626286294431271479168507651460777212187995765275439341209538404109008596254218720947032800928281461960220679518164499486707414813983204795386533213426093054591885962797151784785490441718087540893417313840731095135555224035637808478892681013504429152948729558569663478882798036924353206328727734757498772404343819020481173334477313162920423957797000956933561474431585080518175974256407485505327810168641857245598005468997157062730523134554645600795051296041200779490266777564962186067060727628202093462172090716702633043724901618914357123671374749547745317741042808467843531251097221752432305757756573101491512769387165286842261911036287301392306029616327799121449118350699057384357294953851066403410164684057535459350153952552396158905808790966576791211427556901654476060861367793591779416216362843506217160789614744454123851785969605623647736134667537796882670142738381873546197370432444886310478432236636414249199621970597731690185208026884203001421013409280231802830059691937804321525866488378865451154322876537029291959273282655732251192351962545139813425041505326803480069094417543124587905146407242864438152756187728892801848507730178478432916246435778718854847113492989853786140610308077028812531892978774301362006395925810435628500558535872781382384275151279975654020084381750767274167135066626354212176461294718480545883574875364682899518487563349294751284856080879020157916977204383259269928621518058712752051497035010143100738025536330891809639572120247252659973477352414234571770847224167358119097706953803455655986712014099725270897949896921507937710925211453397868281231889335841401233821297642215528854708130967726141720112165148623823831296283114481273020619507035795801249577914119056009817356029935575452418566147214323279047401661392421522891070110356267541093225425400996896236951837622864708977820129621138405790913629489021259893884600944421461618401914548873505014188096214838762200379200124490841953808896282068001550986737932473648238700748791463756674243356415086746194247193030036409460865410583414838452079961314704172436079992182498822646295097630547431663498742832279047443477648711324168282760388283701583355699616336070831271751919619812267349632582339931879528779016056330963649734518927359561404473534383482752105242088851842293950406165062223706846372039783836441297389654497526287613370785978595661314904858931120342759906795137119139566684443224125704633717361971309538392408593652679869239185295293048651250577462088410685381733611641529010408756937198702493103301324587050167283196465091871599573315281566347250432663204023785233289903153767109311425493580710658279186190328867339947484928581187913465884186251698388656366301183460115468387572810059579340956209075684058834980405848444096159690551473893051422344813535418322101394147098927595936179220080592661056182409817585123097633942190406898401562915869691860179463728526702669321025526830177168877716003820775640165089631604172540466177037706770455416650629372938038621917711505063742480390431596885584126686906868102401157529766149711732507059766952154392009700420029593771589044257360285977462936651212455353435357884407444673121102457889333966776890752890121660596689661190602240924204516837225870537687858734445508347944065811540644066730805918954701926781462398465560578834299609785261960324280004015681896525117233110375188311943601298891609632236411678698564371052183918757332495654890213800403212782538366116478897214823305846067968608272912199940107483448792469659079661102598405834469114445524510019111916492587655441186427306986134132339067184305826114650739271534575473426114595145412394069996721035354455195358346158730240121661407050945199998216818781416301456366373216796983555905756953568220250470196982665528175517763558132887864738524231024214534258522211877352645189523008627632537556624728460808045428472543677202291183995214284274332284708573423096549396578000059784289420050737044112385354323431894004684425331103366529394203207556194342901820144148626006190586335856091367066079265396677853294204380967890997314257227517346067863622001447269917246145806025915647266085302081051725853630051911875341507064490608262078752177113199400755356022589777348499294859774823331849458364998072606486164338857409451245858668753216847522334490191737865199533681648035457033122550387603752192858488585208039298527634279532605009546189537445564295712530209895748667712897596269854577867608334890509930195925120721931693783035817771243287499464351366996327008378813489034026305840610136851606671210188659262393174506436996720953183555677142770107931312984431661060845392272143897175073228084249059114616044712829214060817100411436945016711841149315851232065450355654503764703878203455362310048405669108201239895676681086599527186868288199127824827777216045500816095909518495333147385275910464641207662762117482455762254898517551086450828631565495670396007953401215792497357011351781086701349851338565279449935664496790967756945999370330150928377922360143454588336512443008256548733868581391096688632657628824963448341199323807000148846847664370909614622953594947751792429960761186788760855879842091954562002196158655078501378182777578302032677922348947025291074713627623737488260213135565731917356234844406286560903350826913944927876306193606409966694031321510676359649457988955837733520360979989745786926154845854010485948324681924543987048404123917282756306296478485533070889849336856531298063799452505435521949546009418835543777212701104375444676200929675593056404581118384954509075153728456873018327848136784237741425700639401653053247346026510764853106815290140569110133988740021256417967042581538743036051508424768987104213782251931429798549756516109313415648042440385997901253530837383023063409307238117563995724307817474609269288472575372048148884934447790698443890118983078260747565455171501426740024317928254558621715512641815115547248209918137831987120512349577484524298593507194322079553203428181471844489683015912957236313135021408385602097935307412686323687156944728123890274452808878770177180059934381285220303633956625022608278856392955986430797494665665685132596085801306341383363830772318102466988708077554830099943113170431112179170624330684844659211339591997972751168309247180884046661901164728257371060858275991094712326667021457483717061381156797989659911043587786209955548547188494946587408151727159414619841005274969565126743467404263043563764132720169561872587601572901872801444560428403752355144126415381083210593913533651593907361772885805418840106304751241680063978534809756282357634621143090896444151440042551977544569043279326500102531119941848993955846657118574051839304576099424947260513908316954442591119465184814677044486346588117736113604984430727107551326173628297787465521720230096336481586743213991637267611371841231468496659998158522505567657555482749552967853390209469363789170158110487456615489575843534084862556440608993532533505778679779361531745936006650562251413733739514969003976566729197441368678062528060368310725945922127136707767878555062228895403949329201687317813879192473118452768805605750055971963838353417120384813354004878521779258746964032778081904368292490751601809928273253900554339322804513836181405420006545708078024843479360102498096794728224524770197236395675101272060951238243970772945835094239931912670791410730312911325596163824181533412287877170912911426045785454355090377289862291072815563901725678174861946265229557903461147376919081686837343149913231378652047629805123438995517302578741411378746582650134394409219377760368065459445238401205548898733408988994180880820111759078780672703479281583962198415817724968910302245233989395701926292105780268814803636950945237195183956888683328902171502688081913361609315312186174863007804696531517787940149861542585203785954040678091693121480389836029953840957231271784213166753415978269204702490088909685321737217873632785446544109704477387287865955343055625368441348480238609661056353673708724861767416081137312698570896230473649219475762431563385224954160667475522297978000075857826911700776986548133169054062162346544695740480351064567870615165665564602946236108057986737086085860628115923132776534001108304149718585454153254508963457559029097709579615338502552854899752924112168671736580880794543120182728104406195505182294429805753536464732333825058535531887599532293718484159986313688647410804493462901095200066559732369222078469417762855460958246091638040531545281020565577063377602353031224622770532354646842561811394640251092686689868431652361847911798024546455773588611760868411482968724535408731171240750561982176805647022379527344814996111684444014304523336781421040900348173356734952742418160650170804229454408348507389514930405487249083928595895366005392994986661489828194686770260134948167482550337670051909029611132774600378260377894661644757995933620503724419593369346528858786032742479007390325646705749195566895073399732315546427351784763359462453961708328007592988808121089377817883024834665720870682642345239199069612639617242886316505152815403677707109723725175285466565875707358442076355170443072726687339936392725705334332052935978946074856592840102091184637019322341098984307271134864798740182433715321112342950863310903918674905676870018238264583275774183375221104872382767830112345940258539713713070524168284568776825267326786359600861119055266557864296152084683678979539042883938975857493905658632002421827937503718158401497062703050369498246488042197068119221702805575350792345344837680506585919594399774241195693219607757003086075642396243121794780992494828552562947668649225680971664924078358933498396759622806052209053131379497384676039565137996026270684651631132619743949414691385059174000711952539596825705928581679967252216248163495493730140508909224273473355839943388358256785332310213043296949767756221602277846549367766332019845978257568478626133004500532190873530455151129732293685672981227055154572557070332131227011775607821276651825436964102633580308490285564452717484501557289336973917288090982120225463150196962373973637149107339614156527317567614646468526414567280834529384452898534325415890338393479188522011615388897373415846519146631522021199405889475728077785386466122194601811692343174363957409628170269464901539264612989993937614967419924548132777267071715818700878965528539919235980173899802572724617782106865385837878736169368291117120708274463443124702285831944653580063470704128699371551764172733407310297020770588034449965188343861179830808079062098631595518135779142236384180645575333691334330473744776571180597060435427775197914738623990098169216669223899453340563223673790279009739394143792216304814873301200842682828916755622732599084383033155818621991216105038751801092100544440228333954139703120461117105040347235639046284541147048928256678001184432275437279352999334904688459552954030444006508918621516213884193240983888505533973269263433977717773060862026086123752311446405920306326027750790054124436069639287256110524832294498981775261185530482056880962567069367252197271285536165118393845998835704762357153172894288484676453142352968992662860659880226185510289018062947302098958887212338702620364478175011530814417495969267508938043149084646557700646762809104300421975093990023242987660790360077150418476911560193707513303999622178687470827619093259926801230856457604320749613605373554503152646506729774411779099106353358194683389691555165885981526946401264049518667055373513138180410545969510233996777738104805917231260100103563716938130767783608497899224396118280215827502591989486335700181519397783150745307134218609676688731126392512663082774617971516469260920007486024661694181832793380508618401711882700121339906237477000886102971582988451320889134701868350763398729291856763518586999774833911943372540045346913883325580819342655973008504094388872488241378032943297751045284310843494594894276299452695026283384915764792327627921126810882808102551756227521717199377154811441537810490841723971207581227278954720143354943219168344448312584401067547284665692872819990210062152383217886339064999593298317049330012550685830326250774853550593840594283035976118071488765086281641439391466670993085816676342839186957267959793937083544600653924408333220035823586970310397532676891132989440490215226658867135902508725503673159587140587334377425960275204372872322475550367947049025514492131092369619532043996325451784198144201324158546709920852496265214452439049926752262732636046585315531809234090119308534372115543780569770653623256187216247146192505580768632784375013704852503718882237759746356806716893383449386869269265512876046469315858986931574246481558718673634239404831147914955346281526731287952000207627343423001624075301031592258448828241054165133410824052566682194898762079466618211164336909987200647123282550138947514260993487078333737990606228210503438637906248462913227300096126231362378014523178236520302144221069217430790948761656241901702004867239721645929704460615045856074508962335123828564618131814304630719434561471817141285068585754206008209214422638438703209895344795043122384266861311150096922727037185537135776841567735504685476383704634329742763666910032964477443559924305262943378926169375780326560337921061188114336743957482572062012364179314181990974118352012291634032036169635736166332089296256088462544271178885023054286675866031519760022306463980242121642603036205315115469062716380432822969386245034475197580624000177997051971080047118151027750869890599159588605059193095350186806585473804102410169970501724071977123931520189592850204996190870652174965746210252309738239324588313191275719246437504230469200232455400516250759353534309293765827806928179032013008093767515250203005687983526399421504427391001227895788047603992203620286886698506608624338892215632525476783086327145604043646102062337334739910402331143644220873114142578993567156208025421446308871466726629219672032220319717443945558053848799770933721705907299789029038476847316588320360372901377473049594515901044302583017575659275012298923501755277256756678554442276419879087356443533153585507588094855188109615823640141073672919627356199270390651137988112555710204175616851336385967339185296038109507952891861754827435872606129697773216917530919571733648174689880898610293416238767854361770106074157017178018016411254677363496534220879050402436052517720234278161765805057999289504085459828162226894253157519402799401129286266407301580497146129068336320669347225588883102780809900393458653568951475653412015870809228712664922382880071659827534412721920042789004388889369722990272768259817290642620867716264915671582078188238123586271041922993164151766984243661954176227821122540538070494262567187513698683114342794922217907584521217428095008067136054968805723260626912641339168867047321217790356248509806511564434838431924942268663330414433267708436835966494897883205866260678141360731171533338512337442912771987793380655980838572491638760515756552924599738333865259263675551694090953646497912458561915672010527518267616102588530120175834371126723950097456648377569613171791715495161183991287337798298218933394144085093219364671687901443385779035152621861669341841034359203668850368337633628534373616165461576146879434698844366865806686722307504328941925710549087021309585836181728639312625664209769270667056422569539198544797365956314795706061999018067985269197360754794552254223164719440961158943009100585958834363481841179835912725887838949524597213525847088269489648187788008970118980824312032834739745624827293337086532602146832460159672067344635489031926575406768465073976607621498169788495811078007576420687250897255067540381417082303316447461212984111746324948641670468945382418997012012020794397513295982723636583483006901156641978292323041641091162104504159165742418636035502347639622284269509570099808120717281644294680843686352031486443987320846879506619076511870424580254341300160202198289155258036214267508286576244321579486274313539523402935035303609514337183877918221300639207374239033133394183724553411928876855784271407864153570258520201801806003385573296530913569538262478140176047803137833111363776978177217591487846152126534259755583745664637212068642813089340940342795834368479452730515939941034982850402649054258952171406233260787072965432592167665760089992108579542567916322249879165630657306242585897102169435977536363291435044780844660087869293850494043210638784834557869799713406620641194792022581137840869115681608177393125635017430716579170057345460225117764608083153177244373842733129198686394696866599724407893577632314813271973860531221431534788230829225536274041242127635777181543161551251781117586792543063858536795164457467554968972040593310673741612303940126375830272554612126646585641709317831776521136907956525742377003924955246450175051287121119761440080405712991103005013854058828752698967247515901039143910423683725613265096701845672389197387171530783240046423713493216428376501690956569773863993918094877964837149865994312006526311011064997227947271118436951270044922758639159122601571384486932014218164236623487113695093214501017363602360495405676184536768080351397394963696243372835402254154294681680188680043525686176216615587067924858876142164745851241606983349545001054048244635695808670147278034548336521853882255038461988551570714041633461888905122128176553984150896566834685665357351470822297593240120073880847444529072748981007703864143131113744471629678488083880219872757050563958777389570939040477169994765883919115393650075708744914453577557323848863532083188450705075437472022502407737376800369914369829226437282340151995940182913454235682301435088190297985194698039225784625227291317622254285794094020552994808028191399579266528110207537956204041189487119376146013105448073154250837454653500098118534627913678526545262301069401129597329422462452962520967401222403697816615461244977413114901974560120140794924228765603512023075188299856380842485798788057106009111642496077350710151704006425418201463040178666839180981934560265139096860823510846966097121132871353182845724495636066595083983322442809770959564427704451797632966684720757093633888751031079617610760418789746282508095527438770758297283994310831494865367583733132453998828446549179472018942877421393141651866636328849844794081864855266045096364626070126142056099827589985140743816539063919105692031766058180177125927360313267023089535697472538439852377545292394372235013029619353493674731527964717515431897792352578995122312204298211565215963555725855561565442301453350865802067689138530215170848852473939273009410282440647856323719105819322497251259439445459900529757239914837135866116771621244551177357874359684342222525657629912976031501344224650157943024032145219019005502102992010416410688353571250593842571017669006679418557999558004332909332290058004189305921220495546395397896350477163437602441295737113300570669899519701105758775608877930376173733245498568748326573568685604996466902849453476007349891168125561152878309955425615683818595565524947889266060968925011066085306407467393129669455201547155250927213148877147862490856551113480486631199108182780997660850624970911583434778613337224044514584288202225278699841410636544516296618924683983190580612650322418621733979006619392480111956274199668030534620591530716614447843001108280740470720644929434475530529298970164013308260741246078879882309954878287747513863317562478250896859442276214392773105263111413443967763862733681704382115368405474991087939189610482838380977315073234756551907052463981752600448946792858030459615134442871652765664571184128133227856572573238584005728056289604345720128891121320844000900011198404430419134280761775682244227090642555365301895006095045812742678369887476226586927213841907050656123116497665665084398019388821720405941562911780912064192609106173220317204881144517262541707805327070415336114063354144398464463167467344847462590220168512785661525535274192658768869808779006715458031284839238394784471253106681728016093279648460324237421158616494672248974007010959651986285667567975164731916654319740011035645239148544233305433777016708888448114478396945211828215519620246312479085173098048322505592141422694528693642592559215589976801388566411109195479075774353319147969295592563140183680316048924708957947509343074920318653940013291477300504108515002427513253606538376936661453509515526739734910762607600710956919224920903731734300712373573945537719659379865972918176557400466850773721433492965966949356821514154936700986507054742166474417919311095399299732804163083068299961350055380329070306162878626581250532763900340033584101811461003186032174878599518918582665010425119712166958944844223819608361213492142941035186369960429067026538894435252226918553669958037165712975921412003552386958840901045814691402969906165081377829581544439806918457378664335921053780915702857988293485983979373982449657661214585763597561963630847659269771480604113186621559253180678317108730601500810381709692056464608597514737051206477539744275670313151494689813954107183221341351552539236779225671951712032023747420195299114330752702190185837457675999276704597290518403313087895001928266659916885035970243466592609892241162229783262183338513019319639452872152274104542598831543195221747685642107823461613272599818116937552396022536848184657974969906772624800474265494534057364263192781615042101955980017887718036982726437399697143598557571388707298739252421609029600157021751171885256498919927899406286572371283692204776215284263945199959530382363718565810697194549221677522364979112847373295782413786339283174514219313600029493381384286307929468736440474600024233779581260502254066707771923954072350238560458990528692621951978753110919183611075117590645376305201898616398101100398525398028001594431779344242754900893832113579031594998588880025828984354650829108468703910008954991752735817704340982752794470748978300417653448211710723526900009824159759063074825747040801724990858137058006058173684679928321778264767612012701018642898117679766268471061238720115898987929577190057486390378450577368256312414700777318927716476105241644678142623249411365792308203228307092317666657097211380538338821322922010866722582989229992526735886302216442639180268644274285888389017957235181086312230134440255769093840788883051688677874395574057859088638202014223943259419143021513714230168982057122711937160237793086903501032283183001639310571178903524692482550533856910730795287314845119956080354772466079239919066112322593462982486745696282808207375989378332195710220756406391626597146607811456781750592747606830868946577046532030820414001218434856637678838042612050491855926661135479358780270769325641365715490267948111818277149628444921788298112618827284300757390455998252422530475147266233713454608169634604233673975115281434171296152354992955229801421274612556977697530598069540031416632933235971591478924074638677574010733960833174211234690394171439608604278523395163966503111750647229083481737716310145721246233929857086893738684066523619525040725238888396385272616462215213781527886080721091474379336637328128538178561005730819773841762691028985842837449058357677681894307608194112621293682838721993444808988850180113033841039223417552990445113597630131899792105216837751524612771869582661365057461561628697631554404285313029772040702257638958725789408442235354795831294419395835212851631456538046568235458116097837273232988856626433686687656334076685141159787566295629927451832206753561821337861566775129589162151603600377214102830708098236736748988819624412390534219706499894228419342269910261872342506947592983660575700532610686460864296682737177208795723229686778332958626897508801407780237476701101551495049645891975295166402553376171593552598775583737580294526370472903123231439265542252319042645199226709105045576275757953523222605081586462475892227171478036997068416231301667229387932737849925758893666435736943136296640618989987597973800863373976618032828397559984470982011329968757416207023556857737176034388964725406521521960291819148405472681080751212698958792114813596438042389198387224807076836040111105558997388210970098701198976016324059682980572865125445348076038151607072095235925098402627654152931337049129834768670026228220523473481634555154703104796945616887727496283993378296659675757552885087926697511204149040132234884351424712564066662428727783846061411697737099290330090348146482530145694191184127724139360902538031683105742692702837781707803254564976648106539442009907069906584383663014945779381488262448565729271959058380904492169961362353864503730770112819191699503524362625696175207212221088147898247331922931268895430709088983983386782986185642071771682607696173742549973750945184835833037331337070650400064629021449134779533758934455363307844568897295633438636243110961047144458254418976370730493176409277391982388236272581453491309978904006615444183349672061851080240498956176623160333283372236516452518146532386228392119042849036768353742303195670848134777329431323542853257198633501654938561021840689420326496819210042591975786486683056239777527619742577170038966943868369883841905249444409737013689175401565452518603932421333685408904623940124387052231493845087169861374979453773067424016000099040982543629584457469291160832916158714324472871464868376334551699781940335137500458519596004818474711897042471229911878284001966238807002737829210547451446461351796406094134254080698963805734136689464310892774385164663689957983432923054573199259095752942616655709466646247845294693981284214308052540616580948130764320213388616315759546887584997748848806346879217005135389557603177643205246344193074368622082656998443383518923884267059946757105915720890202215486129085667879932382834665086580244011303564889331357851865380083667588823914225903976898607909869517950966183157174444290345386975290095431285297287832810013970574582963739699121614909688582121429861443980408345168931031972896572484464102299400621209395136573140043393210290282377125098615122705655860102919735580961946690851231799891501133770298324065058767927039659348138268626550813169200695074502434652736283768939512172710161305921239181735458462357583563198697900234253789811897077742554344792399754171122389693704603359980931025168917129519989950213974493351377652293563976013316059627233322422513168987477766832359893638999520835032484305346899440539401195980399863845735390623854574600387262410994229108917070348747390230706384061525808607693821221154788515585693252218039724101099384616697917709267509837648373293371736969690453932472124834588075738604985878335534116765473582710300861469853111821501882470310702486482721686478524642084660686407644797746209494582904413575456550709401175247950244025104413092964080404172181582760652448439801513829787540688716746246756946991803435065952221346246687034651832176385999111462260045565834776496823930514897913493632126290787187496680305058571357110736036020523289222036942991390952598091956960295537898013374038962817018232697949673124923122995734215478004952492784825777172591160262077450103507960913523250262971581142899674273549141893159782883687914746964867150579765658198683189396203396042021332409188628503616356288176248690615369543590264234786909617766787629291317117307971327611785717090653269209295327522433134219953514798888487600078615790338336451966849419303108039707842991704195020234297686767521505281996419705598572223833943508520215268310738037860293090620309200240469548574662023989114238592505002732378771995951319363785466556857720458633565642057101326321872216647521822178370089756474492707561420625496148295779413812962781074849714834740590198010143748408127751292591134183990679738299182034539780470249909775506011029686869390385459073388898182538382200823217911090500047624829475004114885846095879186330641646365973018620250348992922441565566652456709103436631840770481198133747662388437110010287882288567335157152387854154226607682283519517063916984677051596376516294715826034451468462149214953446261030609616419095060265846958161214549298656582964833498366892309658237728881161135806653261171029578871525208553051987608698348801020710248679946347028206829239118075988378001876575372350365480470690554497788200680621723302831036796689914266870706744291067206251351026563393873807108771198329527190152836310710375043153652901598455739778627206304846261072947657306292168308305237193324396255035277480020731215969114352050377877002974345521760053893941464875069977287744969216346019620280655493242361460549821588672840336051973881886016961097643416373263495417143266998909478430987546766354375742545754390463704588314817034964669420978411110470375801286714572903115964528106030109394161239204106918172758735806313928831996034381240423622253644889810108766138755977419627512760935295917857070562210635462773814236632396091793493789545778679815341437771975137040220727663389320449127734942416529838091853373990695598837552343392345408986419167958053740975912932246111689823409279311709771066264001289463336618726253872737694993338743079493315746943687070912863548363199082337705964822083133576265245158370612708475743197417277803552739905279279204988911673941025164444254643608502227573328148264065018972294481138304253047600788974034828532135287371352353143950643651105083702148817738211984847550350618215379692931600898399006673988436328531516362829379832593184720730899782206619549343587564757841295094218773310656977718947273977328984764494153267028686419845809002613811301889454275215829396947107097443593068936851017099739897631339211521165929530346953661117107458455447013475324962823422347384706778798906145329768945487964643428173518583921914200453956130859836071250908626866398898113973294880942128020711998282760764013462536002469117189896947249036499318906154098828539272384904949134684397805278753307079418723107264047277735828700044918240535919287860342260810291699998019419738106423961942371973560618280064432545595668264213644873795554120778111406547685717563890023734952769688866721884496716891935680467315987752440549786336400720868394570909275680698328294430142152640503645362180283479718522963631421878305644790304580346614606928403681174520922649108558352671517987872934893362078818866105250917576620934676880539787731529053431401944361179155817331675103106956126492293995990784268291515453125153833055433664707054999200116592698503488549806975249943407443677522191830458540977065807109391328444298694084736302961559033066108789500147254082517121310283728170281891594300244303118024525678387446068809006947825094535725176626700511934756537589127498344322890375548342303926129798546158951407680224649577479350316082387569072739071683711432023705646875923842888454162275299803119375394901689009887903676087827329924294635489049992482690557203990208651538078604378248459076948903524903367512396943537664141185860031653566723498710092895375005112159895477435651548128037873417980437305850215320224387108552061712924195670869347895216867982709022355387789381739596964357793359536955764414089770010737537594062860846319213989148261659670495253419997045254618567784012187403927575428242941187870946346370026762288099384007946468278564092596142319221445255414712717136585277129756558506103769011419815598706090282382298437469650746734918778534293439225603146477071176335431529954423318770309997726361435812897908915678113642599116738060340033623767737676393034874112948269985542688730641546237121026004641012350315195636489966012198093684797641600588418611176893993222874439187870308680794705211399534850602964196466096831946308756631684092331800728511974437479311556405724226445471006986412466850549745885198222642736014987595481361843255143874144386758872486974350540695899988716682900028175076081072859644337906477674079322278638439359649513954955361106538183533153864389293170697146563648691152067021974952124742503779380122096851674482786392941758392809081962128956883865664625019607328109136323625738495515941569051943783840324248001552012052246422501644351037420151845700790707745889997718998351190745561659622696785161154013617297556464572803763082270051252914105558040519755933624194936032219460084030172839358372251369754143804712316352064770162524183506854201183207032876062938336329825409175085792233883507673711529465606336916673197879218803262610457697689043972085335922047670540601585975339358824555904874687294889496316259141343035846293877144160010512185142559322386861026751713953140654965835291606127057076365383625107324768231157230199354472415177097072987841369453655074978007983534342972749667893085795141733290196433776590739946366543747519412123070012871524072743130203921293464245775258412160371083887578955129168915541074223707541588335367429562394187809137815705881591443123966618316220666492232517523067238276250059625074756530403221743163090962717004658268890798392166524020911273050683377164463216499849624755921452248625474948544134430698540137365752942907703894443109109720316805074115576687345808650902666995743812843941969630774093785274693263671410157263594772661205687249367233038278247754598418249781605275887859637376681581468666586204278767203698509104334291426042936206469954322758375134763959117219286813995933979159630834095916941563030918713766822073438608508082662058816916997172739247200523508719375220275267970453497259709661959617602406981395355148224307598214019036613455679795007797701539975919799775954107342608640576961451594117367789343415297396552016603744024284701738798040369633731988527643998959948029047739976770714511352858847362807563403898361515572936353165822612771601632600855619374197219957186501333559662893395154253305608117712400010625102126781150998755907587825280659933694992504123294895503614446047088453162310671380165101523270942577091129860850691451791961701580871809328707515911446100043122485060298497450599813682569381446469382035801520498185048274914728880729047869582639129004439405161070519354038742951464953116758814541462503258693396963081082284486441895374606410601688565089885688864653353897715641801006470705978986039038646857540482974103858499985329764855891836945286042723714185759581934153668753430425697179768335381039373744857488356799548064465323125779461338031161417178421894033438363438307390358480651472836228406276061864525676446959649294650609057517847287992642488990721000156709205085527515397044432769253183871841899938833075154395196003129721171150866697793278116317803378809973334952334585878464300049479893742892243845558139401138004741951728941606996471861932811929671613613988715461316843157497992599920463578797357872724327432272827655249355959451316003124035606836092855483833064602752411040642495504469452589716729180279060699547839721764293032257054813637971688192961778505026607838726160064219491090125876195813372290279898680648786881709155025731089114414966952640947416184498447258931170604643762091505603162276816700032400377988848606545574983870472464211477161529425840051728079068445606239464345023299771333956502192513578000908180315120481546467365214391467905870406146437739407613447644367504375484975582282762914585404877761249851086466616989965484154969236013392099371450345264422618375807608799599400201765007882912051495067653979131372516725735971061388154826843932351632305326973883190314139340067692833552228159971231608549739724246091133324400336845437075278232147862208887245624126038496009388148264435873306791503794497894192533708623672536303656839192645300900144135740075922081181209596237020825762161803956777336634077851755516299827753033490900767065300667235340457769650954544984107280571788929749143398407596465826208632824955634236423805303061907348348510047160181970119635673801216535839788920023445576580394827743550714369368441092743997485955382009773154118589151107758057421467080728814863290097897467127136963516868470987603515295750742841432555621820049863568782760784187342646952632069079810698698159727771860325180372650457049873187260360301535377771996465047416946595742445195398480751792829037475383037892855324773005781700508075637245028575760021890014979314955960766095281345866403153645797539526591493108425960235925669342748117444922719490315236411290670370741243583790396326019412548528055968101914649638964896016735458620814269181209880615591918129875498090896988502998079925321579754572944868508619525978179754197152914828731776516408929198155246357668183203579609737969231295087246182171270415581079450561051154918832709695444731682658430536879182247265540187281638140008873048750250857630199103036587293089631566920196892622957939825568865165038894770150151950165792288234390324121984194876619135596876682285562189498272799011130426193724558369720678720218908915349611024928861738063241750796649410969109776424308980035340874131412579956909740751308061240102623359987651760622919515898193901523030388188236867901920239949633653829717623654879572897757079727178270299773773829642185976037400014103842937308551979715029072091507928550124668105579336046564078993224530416107045520628681404407301269584449901179001018261352644457968112389410860597862634450577169048859345913464332285850388493371902659226584999679382730375976599276488321261603870418125112091418718851392844413998019979879702525573075062924720625250133889267027972979223553064545673516707370239907522804395022491851383206882791583272112737983862106375646837995164899561176916234626168472566944408606027791875344381030477569956361545961247707069612114178499922522242320436604702692484922450265083329791027344361348523874312676180014718511991352729948222138491838875494530842320568041289735519985880179273459053758190790572234172571523584319803764775817432506251839909519792695068749817728076629760947104008908135560059710951894330897919259129973869108061929642651214724005099086594114892704986763260192237648383038526075001697066689220246332942707128658508301290554974024813040998114339334309924017514203378124236354453549178086721806701007835485938646676517251148309745792443154544761763064235002915831182910083580997956135739490527320670653787400591432738303799416547677497617827959496961794910289751811221803835002802857727068788200276943432301891770938321159790386466148576502437774639045483440231694340301976086829800722868814999815565060170280014465019383450747574037684427363138943455739082749955914699641872793998659957151465592373278865032715482168555818302192678418635368121235896523116815484095310198714645643982355628200384161559866994114008441671691625565112119186520790470994946838273371868145902729813274677793978703466409712309245791476501562609615604119406746276121188356004269489387052478642307118475688232343338401388280149648260025411365737717654416614440162922646608247855125395342162284295264885308317889270849114034230916342087487690928649356326434808638496816580645699267227901481506582578622888986879290093382586343964416957606124278191417895618562658389353362517377913417267621491382588029834222082644854556445651750783327101497794619699732395204073674160274432080786188682783375398463003555272329186362373871590082568653727327127986334545793909345433930790892935086252748809440222503882415810290055626188442186120826983718826418079689628981911057966013103665199760939509851249946156744055816918621330841562199917442506659370064983263470254243600752973593508988975122768657922207482048315372003938048892645711253133077070010015145161179963652521119464961851891554438570880165255479336548157715993038004251128273456233272444893504258146978007320017874237499149523539927424940792255730374289095431144465868678494303750220715696513708960270756403273452557963988722169271528020769927496493261381722403391860014905699911095571740800619069490331565576017058525334694780933662374860725246690491669599006314232699041268800130688443703585141534681869913761817059619945604468220045716324668310995407615900860816850562957500113330582190419396834879605399486746927392909279427379059992526343833055584746707923274335145665033530334156320062441172106396352225610704105600630054329393470534477399115369722315552686450467803499868878514705453792130738766146662790889145347031447526397747880764703205135997175893005592240704130268877685311716160857036412089588520277679193830246743279325239748543082697400860685626543345951720882004734861145914897427422042062572930252398218547991100338371464503661390767218896713399061472925367803280469420376859855105125566440945900869883619228631673365187437912070971763115796043248118955721407888092595343559010989666412194961178101536831238766022907596714594535760007305373406062327302791257639070156372091524969013966745017943338751242239761088507604565213726811180019602348475801551787198268463530007899444320870197594064064242181862360752569367462405653834594382683900432236823683285801233376437425280823033892330427772838910847862775334260317617375566339518370475808618711502188222167003387629054685155182753794430074336154456131366322654698927608893328647947390324859751945998680565460287560677026351903098851645111873181480451112588047716039932109290120742521837843783669117821083892783839253593721604923004768303926996307764957289785021806985884954079972417514942451988296849947859363357464885701174130499455793715783118493975832583775168996035320130696629146993128024601349188307989733512530066676193840450387829821584928254048133441659485953076920078159375430072493432868352269822795714812736912900681389834168613731798657807139142036282636912566148685635589056607244343560063397515682667424094969534740058379573901457536957457334457976988321042663624443944052620229212998485595640308909400077277438777791408497256428796182943828627393770696739755054934287982434483418403335081804344667025891071120722021401959844834501252169376618007022620845508097457586528870513035377065123211299489210904049513447882880212836761317168481947158011584015239693408884948093521612630409199742924346653213261457058958762025729522778179908236939423953025867821305418152228358052689698149929970935784259587714852111340299237218796147259630605589140740471564758051454719335638129936333482063723290759711500989173393659768022911423717404026831897627114056809891936928934307095226606097338804740664943412325064795048790490579807805929216779992273362186623385065781302494796177618926590823671700793033327637054183578475246617510012223402457786441233913224859845573105912405482677935813444505884952647345746912071948713535048306340069095302562988803319616459465823418953480399569913126489178522280750638199126192171654888260011140713367054816905652227343194780475597163752373516124375586945980559083572486398663006947656069827501015512692850719562728690193416605309807955175223362044414065067843598534866738121892088760796299887913416761116593367562200470413186427343254189889335583360903732825000821470203207983695505681128227326673957805904662262043816747889688368378868194354458484320072324287394273561687607312155861400902769132127247132174529616561676630791206301563882413928269110695497724859674885320290971355370550033363159643268036136161517546009297591786040459244955020499759630277305569509571247826814428155570183090903204685059500833794591889966391819153017293512557791613268965408645162474373338806519384232523187549286559732980764588812063967062115756998023136112461626062146990028618171978571075803622417868959849648115286497777082812556428998027199446610991638971259014118244635335371365903789987026378813479752140356565373869138457644206167375784212531423600241243162101950618941522547132585175224804677297305895958393619625011307596724320123754883602980780747192022717730955894828934673002624515667415461891607680963289011143169943217806163922671023822962969316574878106527185011391693487880517805164427492163351401357216524695149520291528462609683116486181094272201470532854309259271798156752115441741033467868533572383044845055247080967725862474253752861841128863667121210765460827006607541501560355404783278651147779247220302653369498020623213958101647895151495178185060293942991403747788241238607715313694135735505948941251988399975007606439330867587411244943993823458474967562640134114977953489484397441623623826051375014131671950725736027565399715504980423670754072458453719778677914849522719548451853931670086181845032188774681542793345229309112731471519703961238423041108830395011741110768075259006387035938233210591380137272450216841385568613874110337750302062661530961187267890086768795837664814536967364732642126229017664898043690213183810958671103717435046167096639174244138960491649645567990524745536009651020216340902069351895585535172625175271899577384020442217092902385915198364748748077763257373031491836264872724864437527707778139108834587905064139585702146974905774631220812979430644281059479965106558567483145027542192354321120501146163542206633757087371624507009230002536324682628126850506987901921090846486595683690111845067365576919920195340836703041008356708044780500780806457588418296082277241284345434724612884787500230340733071479544925748555424933457127434068041211192881344315474396755929422901700487897263565809078705660318305729476876494065966226220548430662548701293373675157988240597585429084603188691619854917829261641249157254341626484758976225526681704579681948976414874176604614948697896818302797178472301872986025333678384793156828520034059943585746526786879108050894666653928614877655022794339312474851137239138749437193494390651984356239736299931267791654480446953357811615052621466272581422122124985881230365955843950682480182215307569119270679122058411569806672274445883433366106828948723207704798281106969987346990302396218392561547825895344957490923176875679760878787089819292609877004465962620754941958891427280321474704813529325435747739164984910470741399370599724089679622658770017493668372244958132252260896576789390766621958331541441301267128658557774022537511434496126983678943174117814516863847413401130661502561304052697945191554975880408990166009870715642339846069217618503937454930442429664445032040798363635874090052527810525653322723874979531078787881067602370159678426414611175873317504708421030996012540590165475670096697726710809814397845051116155900508078273001351614102676476777563552816295656282301518978201045659274318578044496062397701289177959361585408293429380614728664844310397583526551128763570344522285840734717437988515320738889751850442568553086758135235110055369201967385564044943689408193499390966632837517573315500286306486624243929871791531842485724344265411946167992875137894018091960375741610875145797739550180700796122381048982776122173856257510773057966163310690263561277472644545089088502544777517437053905297487686689458478510515127843758507875200444765558165874971267559230020522296801382408236601062483521301678771756813319144460207869680934065914671628249715648126088877362211696807499798428351535489365561657011102796584000812616612397478336216015423339415939823363076135932615672083452009567839466966296870055803151416576938253914057474869173621087637862180491671173605500011043649729721323083651567589492765642112977662783366941445613530395745437568923899524596936360993974139719932348969142192779415297042579272103947145980237322323026156510999405137842159867925302677065920059556674054656962023277350108059205417212341276023486143998251936346034668632040554052630137844815088228377316454895656560179151768964712425972506691958220626181917397984461690669590923088048827183618000455451760984924161915175355137598532339813327446046175631787086636517211551190777984423869283669846331935246670605497777921487210425898973973158106160907266808439019099800345766406621321125058380862847188742099014596314080739993256111715233598501490440070528437305726539751980209083952597224278770273295963442450296335128879475407769249934556113941819384679455915559718495769979402356421301403951083901943628132532849158105383943661430753287121699245752231971433758586224556751167508417712765687170072000248297246260872159594279629215692994573596760592426934984021000187532131807888592662652550380866895365781943655864657375595835053075037089518409363795808344363216153019572284725150502534326227532779975291174069572030119170285437400747370003192635133226922760877409439402646145505083104343665132444827944740165033180064211128269786377025558843926950756149389209236484217627233100520848555347317796514540974959246565013720182704621204149920374196187408968745214632865961257138746944527533847573857150024296827011800617292192970839539145692398357310667026105536335130122655341906617149422310111780697320384681762004937546507884669936934764306293175008425537428740164560493130900785617123313617908015779861107729836729131453996433915046398627204653235543447818616989329781520661275572690314705243828230506773456619262349620698522690780635143556823841547510959513890123138419608900233770697991578020984165566985985715462596635641348637572107114385048079590941863221645629198494880588824318504779058854089706752331901776050968723359008602686335873343566637358153106796103857910862599506926153650892574856007658167312300001796296442232925611953232553318173932535392266581580044914374734613888286127984672360551497152861678989688429618836185419824623886697157628254047762041907832621181610761708058290016957906509857321621946970987203929927085307652140901906382301406856261274235963373916074358163219799868474167028191764947321682670915149910049727174611233903347184142390188756129760288073746107944900187766248457770263522659769546117681692659952285823882760567435646203828858519138915438550045112488072740942818520674882612551505551388956187526095854576056075548643625105562309474313956382785202137877412941832550623258091525543259748236206576118986250547233582318219519889082876497035770158330576052467933168743544126164152516790092492978388518320274284431768877984431054577961466124051328648139776303475920640814774108456794822133054767256267040149635742202248287122372719748171642318433465147705491346419128254300166761679724769875772961646040825590575905544218476382789110425281894426908093246159435345084073129048130937416421553282274622383483014228099440572085792857852474562803347014534180511937948748072621924054397990400613377534373859392536815064924927099895342440579648876883176722680268024396020864177294802976053526181758457508346405217791560097138189247231169337434973618510316354691442352269185359010378037572979407036840215828262731761164590192471212377604644941960694912680754940746149529690994048111533465532117948342506371202708065419373272798439448187527006116957884495229104536325348191857610384571258676460703739398062000707211166376584469329503620497905356576314493217636432656127236832280367368006826710647993433939166334998651771897257284340913651570403911852645726242398132768598374398410217381680037411853546028862692441308552406890471597598005054295701123411035997684206468875832788598089095470433927013659515515406853104945030676527265108533328097536910245110807343404696875319850010584684816011656312669857609652068529342189677247482524142860809267971080160156366068080119683174833296048620715822912930691543059076412047147703704978762181158051505783719054192949977527170265474158768158506557449385799762452562956387761105723560649283280697510585153060114329581322407186845089984480827682355231250404619162541389605219620541812831518780937855135577134786874057269199170044403573605324204142479682068370116946336650316002720518136244061308632041721211164257252382431993732684520023553240989813084087943782071389065640401253579063675522927665752197197885242128546626853428686856853101603221011314581682504669095347784919423993578531777498940503363540117201378601309584471204872333383300250483091705547554060219235863516315877225463489326595066832415087035440958459317194015236754509666070434003307849842901383324365876315278572169269304074742940681605539792445477031672733935898831149235834159877014755680446304370112659515404109316884449286909588466108390158142019522286647041589021431885899274075222617327624779604528478173563556292643742227187646884336533516308668348411230678818292372686102089709235420357423939758603456112204533298647322441072110987995622582962094833809661148771721909549783171860478852874161163903397332962569168298979221633685651693245403735402300415352329581759443176048331715815826486414748892035601018454920896409552442145818904098826265043385920594096239920458811482403652111276907571911628871960304461883567036815449881162405826747055804167287832362564459920604663364638137437213893851901261769990329063795020634763847517149532155643619897419814401872660555280846665319129853670593466942290028909017922179286311409417710834259492792987794662197432322986752874460413811966522691609742749368235958718467884954996605646110061151688149188987585480393235995066089735928471461648382820191375969590921021980642702707922627547885981527553729158688919742970111050931801769506899740049571888751232180942709519383935836868355006351086802715589024370399964287926393624068376029500889854851504522436007272152297976724438279272592107113533262793327301589125176299451906481804716156940693169620797857171165290349373155665865342447129960570749419593154752526517294126853549814730211014100117303136279715603631606798954131573691965279314440199166078213559381497713107292098256228918794576091740966470566617193958728420776969357525675749997673992915558540460766750545447794385095992971522011490411717771483833988478591142532420892150525529496568894019491347386391396842032667627311873923574318059321241077160315049848527399414985644787813996752880635345915245571184512821724826220489640332050359060232296640785408451392312226517270559720269665560004892606067846402670812281459308845125254323870363617912917621872178347319557882813676365896653365555917367951424002046445156303249907534310759274872738366040967322707462467440577881530998941859193501512838890566231485252143895902423871978498611485015695150351613470497183293071429060385221639976207364834437775582798859080997221423995942149709561137798209282688177759812165792320332023736843371141364036130270400949817330123284683824445116173976723936227034950198859690626921987568041372725813891312973294059993926314503178607878584896554902605182872343417745126451017320491403017835085872452021061652715589149715483785131509595187465382736847443668512915182596179530826485916159035570025599953045095518379944852677400555326680429674079251260653491919524829351408787939539550155903749562371298527310596922132486949825872021409438024572125592474827573158007547358669215059569056897746638804334996624126506384886646258535775261308957343079217684439765092717315005512040240280342534178986221400381799044694548672862223021895848341758548729271743238248305099516420343191265036782534022310715793706804057093138800663776824913101618655908842831984392511293710830378091853439901915574028847185181701611992687157902188821872068915920557896739052795372319182722533373085175560793952871431500592726499412615735362790896836315669480194508118449281882919645469585595463367460269490930108887493308625973193277964410145580267112354470812333610891874851418503300510128866828254657160481034781656878184098584299094316438219219018198997461086760716246407319729475087196237193691744036980834226960750842033558139737981067330208680784581202466762141307880416696486318249470362258100763356954687942585478247695582376046733730808664122050232675422937528697687524577147960895606414543167906508350974619218262998795521353086771779683861867161840231814054832945738948509681080347019084687564109302862485573120165862886922800097114202025992873929216741941246460293654615200674138443084131675396727400728493773418284899188637209254641706009354586721391662658216018029683628496579347714329061561538858186428258803239372127000047076293567066408176217308079956853556514774530418071766766856201453605820020472637052357769597991300791654501182936281694781977779150280522504215078130978834699656053944064065068651854241595069035626108400917909733349362953325694130704555143283286396689447835237140930570199210387658756592103239899868042113066127723300119981224482139788837564504999599399245858062049363165047633729941370809030884525553051064014650137110952746741777779984576462490127660162851860093125982542001368225589888356865137492802948124664602481486157240475137072064144693252174547332909987477606767220113779209917469770605965895777158220138510934903982833015580957186720120639109339593849655316310028891245187830289944840225308933135564371623212231917090662127997698841383124671699829574931922070524463911086902203637472894589159144564555065219869405395974880432110028966531391539787851849021469055595909669592416147470240722483480934243430711615668458563538736995329323082212685985272054929361326009948152465294349078167955272763378335854972769332718559405990091482554053350133591827332997996726607921148534452857706039751857766593709367532678612991931135204457199258223990629407067640262724414285925117816645060857046603592712999093065314151740387864877175119191947617534402236098463280557187181436931352645865806724002752779863722467852351269464429201590248707883641173849741481686618373181346945536919517198964906284862048821112395330901147691769379987899543891424801209043042518014654399457610341810125678008899880469871335492231369695199645974442848997470962114803173339929209392522731158955298527715257179220303605339557651407856064572535681980244933600866490389783414970249496397183558740682916141147869487511687523196916698530216103480852975922910816956058323190363985303680067177484270308048507873838885600015259074764460081699385133735444851651954401867001755431584649901920479293507218487025397247864189124809277097277015298709114023809568625456655129387468406262692263421264469311427426433832659546820678662706775734807990885268456427782239944956921431818051999076520044995197510302631661633800615741590596013494364801506721339381979707885865864053192326170038537665771210553342542034447236465716639203063607206021568597758630422237453283718993929325657056141307880899998343623019664195307415132179649033798471752152649916980047121766732278587825031535286010290621807681798850191565796144559870894101015397957451791458513811382050152775500529412246593445291899568218938544611372059324027850553402423416757305379590534303472635674949293705536377147637370989646711105860390924908737840240358504292592145252217767968832058561027927083001297436146921858689199031545637403696442526435496738802043648852090246520338674917712994879793796218158320307238304590568177549258757446496296538608511523216528478995561860712745361060830161139628869561549228683691026391366595649152180059052257884122552196073182061820141706765092567888647792119401988225847432360660084759981524192818026696831303635448291202307686728892172681415255135485436546949724313189400181891552186620081825079339292083934681137849249435876890778920732547794162396965024899722485960682564604511402425721869894537574000838315846637100519148845887907439162613477360619010825371314385415799316629705847620352865833618830528567184148067832290168721177897612299286060159196964011695883002354978861963857939508582463388234483506190616605905017591610610234734187847562185243680626030396456144033074717341536189043461841359600265850626174069494021812927281320536459249575072866443268108347518026806449851915783066481603175877363784024441055911540028572092650080471906533519593174454717538837337278979180257762153518070835081567787396954103926444910225594955496617741213000951122691603429297579670146962886296446454216716552858493119899869232862176922565264351928358550803855655393538399320242125661733210363723457118098783671842025221848473490420094215394074191114060538697418008929130761302195355784907161137210771124452665523695294340358437760336072085936697849451748123333998164815269007741655368557612007356207864595071762224134310737158681289916352475336295742935657505802199240259705187883659698680988962641286836630020946651159529292124177639273636427180611696206374432200628742706310342285272152514777285126292807422664498433765149564244503916232377443173326816548748884685448900937569420767607327676218094144351069395206200459320946450767770102646130773265457745931242198964544510603425723010159301173609219129373167811581841418311345954391669915056278213952728040009678171341103017701889512567512796124453090772171819722923422972603870249103261030069242551564681196575210419603893347325835358359301446928395871288585323380367056358294334978420953568225680509911703118181292017685617122502676600713692180520511757324792104028397801038498611943243388540712967796752377662047932448115470341865752607041685979496113302758493491711525879885291000352775303091305303351573884718623767456187628844394962609134381125467374903636274904693089203789705577908312969694822363921329709030849682242914393078802115890182146108065159018423580349174256358724670800000734613702166964521063200537114586828595485973686153793805086780629601015683368041376663347299821611598138191430580980564846510309400135976062156988061515885766032966531641292317269219929660495035044611886947140854710224953105133398787992483385669359396333183290874390809663162426729881506690036944714035619780410166188939654166223236335239997782684640844165792878911035895970240383906259534466898254407385425189852533844635197167694676809111554474362649397939375830635911842530277830980532754155255995523432606205894458986249663824544664836280639862517547752210198457119465415158078090656230378067234405021098995730725866081553339969624770891485336141485037683627345081193353958506167389298007056282498560351970158316163601144702849623541773912450625136154765585940245598954338370023289908160777192961404139412404283196243625717039542550188624368846184764499998500193886180283624086917653531697091879731045919352241829692071099606060236914454221382533254750449501085477703618373818366705499940602182141409856862217064231138085645744872356962861702349595006113630458611911311597770092478791992673186950666609037308006963332559328949685174347272447253657361406893988718312348462956343515806386545806701769498151907669470168099745978072661210607990523728101635254361521066711059212361338519481301587809441090898418670267152478299192865164194362580591782824930491780939775355083023973769347639717777820625056779192023699212140658959885695413382313912187202502086724348293572452960049353412842800425980584124200669542913109650935118520758327693662083663080747114640645481831819710087049691022791532076660150681230927297335636664858917658231173894335940639249289616239424449172879658793204379689036165778932122410865253980535475621008323300390106512694040300531933408413780674170368974234392629839347391765126095913460495343142649240403750044009775568777148810472470927401414543197594894837486618222761078235978487483931782497048905855220824820456418558204054493767142939392083461513635271296745655410552644741713865496640943433116252787858168352176326511505859103392213984900350044697538719403687712616074004501388795867471936028889408523948310027147746555351562912692915904524544124736726365777144970185628025295008409272944757396785396061114306940231795884165461553811449434409515984325516421510041246880837537903176076038187127094251582242114875951494719143741176259739187574588109542907647768984112952813769932867678373947725154666544197815466443812031082987694235337705361058260348825556314814699524926247988575428704252132835394544542728904355634900469943484954507308857615010706364868846709408700676399798333893910637819735392135329764645195296433139862843722408101463240147755436980199364826338241296971075582886963324993141112523337266961345116797681992985079971797021742730972404818996452774997445884659901759263540558282075291164259092939487497315316060991760639568397152255750275530353772770405938953415512875332337832675094608596793133676237372464035224026801848905918696000794168509710751007643378978955441064210762234639823051125984111363973443204035592748153686901385826280670094456844491142801048127056460838798554766188869235532785477874766043361023252695846374195416107684289092275956446431196144838694624664232593307575769278525719573092175127982745236141065625100158164574520823175895052771682468681161429517336751919668941722471771048872033874651837099998615021169370939491707813354854092871221167368906030460999816204802333941511628707084099778110650717879729285913678766406466456971866314978041627840624322431146463510321336017870925573194249392679514729373667986007523926320985103446451497794314438606097957862302433145409414178576740649901970337111430215053255354864081164045296344843316406461727328211431611176758513001907192114933310774684494443858604991356904938531747507894691429607765826095190876558409818344786828940541989978969424346731205501445873239291605498305314706302214645760832271024450171236338062775359411233084548533631498356328786733147364451677826927075771011767822799867199035259645365105066294346718096603170878253441625570427170144968364712579392961251911202331937523185905945400550790585629713995261606198306213380290665699302019187556922830243881218124351429176225086816709401515712124019466849175759550420632264906385031539644175982059861952674940098634047894398966439391010063295635908890813235838519138796091495431627883343361050078227688246729391032825979805897445322502068115053856733204700938944381346187126883279433923718982958972636058728582398939333099424325540320503238532978022987907631698212227675698055549826735498931038579986385385376246774593678585312789227544641593460451411514522349865339426769061414272371372456077770822992711311045763917625219924795433026458515363771266736574215178368029171317399789641528410505929206118892467028252979336818132855293306085407474535824832253158766911404987023032595484043648241161255750780809732502692370149916921983684383253811822740050645270053430866553305338310319874611604858239082498295595007398369494176471854921860281100147501461265419919923692643217187783880463003107222001198588254718513707139814260231602002341395168577226493673822825859368160734318871399468853181530621503301917776546271590842167260053287958822803414804252692166409287459664419304129393830558884255904931509671866750744990638116374284902955875438036225708401318537445245687216875621061230329668652034776491290721320568804547496948304685329747736735158601560825306674081748575770842204059767199036295308558066525052139674319127662464968869991827671041551126736981577783787176185186646815146926914176919583113858905406285122733039062126459464578652031711101669645817492429387963697013927130026991912176949755873746008657373417724057499104897422548025746276588291157568082887211370120508155917892907219329541372885426123391586179640771440261049200555234188479306770262969251436789801670566932940048480351422771844303848876860810783613032290801588331935307255682750657705115453791363858755206132454192651658074395907916489835264627073901974352303473712972653006281315654563648036605828763544039229554375971523229584107392896136621219423073662455247620439330938918511901778890626240079147744207505266638345146014684310774966826193621997401479104486202915985626132755050222071181641029357779687065530850846437350853032318131768315267368352796363349460138206026408898044094734326342674519216344169920446972415407145169508981358720654638558677553014163456153736885520227957907007512942816131387896601015642647140328205690958139202358671185780133496511631805370369962768456389006602822680151692609050856943817031277751530590692018030586457909515084175616453977621196734230012052701263032913772514941146247919200937822208444430559460346716546159217473565389156808294951149803061587523191543493026378667948031438818488187146666309774668938051239065717148207306776661878794588005677799971669664730252217516514232177598853138864896724511370961366840397422498918964884770203055635339468477530396925702100611701398746323948079312084122355331558787569617097835283016359259161069087279571075786638204451245512245109493353952748849931226186778028462437146247776270594325208518591320566532604660460180599532733717257548786283496432290784480795463405812079584347991287792086210654422844802403676736271214334520242831956677438895360159597644988761618353782356781975661230355734435581166128948543069402582147301566386400820799090830659389560043859206665537807394176696210735781219862567829001295732416752162388817332734730899595354822604960020511190411297834001656679836086401961178120848126235918984201490118659128393022307231668372934084005155365079000402203386367774965754990856643071033667439963442175356880159598368800920366750567118122860138702494382700446270097301390394329590390027116397200050450985594895702595377960243418227347058888408068785328044606482011423813506103660257695941698841112323133315771644104365329132295139506691798866295129992237556200667327800441138242304109076435054086621387596390461500220555191739419025900792949860089166447781052174069526377395722755461022334932921163101597769593347952529538771770840518680267790399325160838603969127029830368307433356835879439319274993556246614713655923489193947858916329111775752751291765161094366576472748214871753149650734139545670997386778894279448394479412357421939813516825957019459880506612378338160469920556054181584354028930174597640205973183161241311395538011349640889036144919784722538554010873713155762825692667075428215967502396251542096230199346169726293137639136951080253108898599537607036296427807283925324195346567726348896004960664934469506331768472863140773242419252019436006216719872875078622626692835431620387200475358665812735885937858411007781120903086803079173257674931150139772807795377326012616937068587791860426687664585036338109304746704767091170442777255923719615586610265371670620918554601383445109562508808856369600912862933122061565651135986793252072084613462434352671366534909633158675468617681814663082773484618682334728224222664759734210930191199280935965917442491821175068765259703813668422894102019838034885077721908687889240353845649734922948163061740906020923420399925053900126153029195647921847409361907903989147112172694803004980549296870523739296574233173478123498545965150337249292320185640428971566649491910684225074940318942678984983054671146313163963425528994784883639224213834196479823133405339195041543797163803083014028028671910193533700151430955949750339714977255614680241399657291202278774722837219864009457123459452836767211892068934809788714428423467554400045758242013454153833027638342696315015405225200487663177417279919040170209106154372774285518067037861178245300973484520339996032228796175334811321022042451682289137787230940755869717120888645601746643525052979051783172290300453807408802682096763431016393324461412836824695020071139358505445939850223173474327073210523550411376788040605436610064911762235632757775595346183755101512230788298886358754426519431477000356959104832489985645789212366460454639949201495206220371090815829921851246085413295503444717679320590233546272791561391534085253668084170409026212680295201497055423503211640715997269988594251333921815459299780447399072015252482201871828885110165645772217587855448522682421777290120161127603731583762307425852914999190662360931444363715058964755638800767644667204059995590091015833046672936355869302751760648965749008549048470938892084093448023405272341123445694911917925868844229885353359863271339688341095978489458039960045487605305947502655245537067478884461120909591390237761627903988459546063065289064941727358228435068353426803115540166820682102843540985220668645546028339555400826335197542980118986914776030436621595337342779948066955242534095599201058919863541496953576836883456610286032615896061685933787674211918293308878860376247361814959463086140664525679410190561623927999753511597132657182787440521076389326954112764438177710626658687727554315329388551736050865932410995231863690580870339532012870186838688941667306179700777340176916313276537541451746077846715522663951965333918566734773092043521977440891118448221498297117828273837721182669088312204192126817757802608178222180061653930691280978065681389261408746270564313165461661380830002962268338663673590399613082257806219055951617450387032659266336362260990214889795885531579102508449701204447090715470427442824299188038228533650551090684649750358967947643012558638484002194783018508352657812880334178950439926962106249460881358816347249751758117365699773249244597853388615346362158932683737080477075023506187571317867171851146910108409931680213608379621561452794338351073139666643783134437300295178155388123425404568712022246491076209038381018580621445688663248520273198893462372154032343072712374344010370033797276007779362827877827037106899592478413899139396746777701252430997289353618505026022885055897899234300622011012269051933826573849419611608607576459854221924252790582561774336455879155012556192977764376613512342373929898082911062881025329166900235411956087450515888423010544355820190426749013190641072457187659803039607631588616554209774918345347151606989427655582088685539749619801360006620427504274937760457037649003666718414709077459132493179336940321516568413429062155488008833661038217900694288931687434809918699079603334015774872901465723079962213773734479467347788084859473417032896660793681545959910113466982857596128883603439646916474801475226537654564093455918240907872672580056090585740641091053321944182654302579091970162464190368448788129020405739395538664745454021236026827233961309392438348117971636062386939657397466758104634716122012692253367172953971815831459367413271992403747396394470952868647917149627541782820724203172097550070485768299203594811503959314644265884015717005464882694913599460389370230324432465955311734974515130111446783071484316143594665398675151182647267346460801298313281790847527497915744702848447361228700736937370296886719537411041321450516125725581114615046483136045575631346377737235320901812805885622802704828247889321171216017281151780155162703415020007124262281713511286955243832444575138090042574451296834608266466484780073703169230776907187418182067643712396180641493275821375861029509659211171878967569627580465865285054349065824143502170572648669337088348760649821397196347776540651728265946000177643255639711517656667073735324886402387729138794874128532361106215491757644942464694507615526058799139113851046622976127124571525249850773963493184437212976325764947326816883689352326555259402565036703389601919246151058202433229287152968064714322303964282608113584459277200495907420898135832029327694529469666154526880387836544668381477569738722140156178620965670144465846758610458836985839411719969741835274614096668166258527734088148392391414778903393851126453832641348167374560951191176933752192868344425342099030530596266609985748183079647768399330377961811409510537669169695494042164932287548112087341393053688579532523324406847087844254679180384108046496535478299203283550970074766113999015723357936138709815326757047395437744187340454681981913946821311206915208274955105476882891904258898594571128529801247319038631083752918314799330633536799614869362890023649321867191125437402229754788097210475473740825544786695442275350304907170431601080933323105578709821642898988726019462411655428034211625222141687883943162695975350850183589133701392951230580215215293128692695068679232826043971006870151834009743190189393326432184530030243019694542540330484483035691126041796522396029047924927527987306002820261966347132249575578499589761794489904254939903699616029422619314630985413662235719376741073403637071404329676247320432092397528422124879746433086542492361915586932864007954871502662565559112299126084053209521677975636983750650211235134477598684591804342829278604366455277499623844488138495061050798893447501082351629073368216693473037497802213462984251617027778558878362768345067936061297810006504694691355499680493164364756604916317778215065951904060741383458346069958658679218591034348358240757621108408839762310572764164944778053125357261587663156243565482307148298783441368333744306268032050014068916884499936224508513023570705078228251527969910459544756450953001443855484833383514062000258281368871784465101951951701011966179904813758688722649771374638972973749060250961804939972326359504777069077128166958152597246042345623650970699792211638164590742727010998519383770127542721834571906172691944810231852857494905492300601691472926090224313747816230696073084793914336746207036903497390391046344521784608038239324962443305078681322053082980164760593890093007472840996762532658153848334004289052066414643367878004425121239796643311625125473569613488813278962190095052748992065534620855164366578217425412205323217258596774053748674275694074166783604914885313065623113195295465142717925655692779331250073047229826205313525715047146609190948167930272698046017811600008549511559294696444700352164697188742817459458806431863194805983996757278203286807287937259043313150421418465985108316219386108800668728814980732116192807283727532939825190722909908618518881699813230689217336305769873632564833295155412315956632547383273854646421009073542069827196769666440037922726348283115166209010461446018253047157617944648154915187186577761895426519571494186247996684485320282033499841027109105228848122241836532473987741855202634242750860216945327366434691477864071972410035764844007348992228054633328817624531755856479226551592169009369619152240580901678398721199588727794156197317738918166222651900301685532927557627119399624184977722105259163777798398378844621210646112690588158476000953953771750043021047285064843567547254351298110547218124526949283023071724551907461073864438701244271523984120583290799901654709238548580941786966711999991610923120816091320074195018589469555426684653928436757156621031799646894648974278178726558545567061159599888062357704731936904744843894720830034688966699533326169582982877848829271996997035433186027835751978120175647850325050925097921361833810998730736990544093771945132060908953027168385692115670092989527857275077453699252138735581630473224660425862757721817752147097178934569868196109470183077435086969279101741445746988494908428916488578376163527194728379076270430880469054798129012388715205802028735601573490134380188915738452748162415336307194067162472351508971711232194511524642558767990910395030860326587432880643200544162583014106303137764926553171228131789501730591896479868352675145247813595353781239378435930915590435600568769589825744936877393337846646898561933718381563400409135610467572684153387672940862743876279717409987787315260661158385450926613091489615412099331573603880184292253964317334661918267021235834781784749988519577004683080197479308484410338874587776965039637393233301675432196439972537171727798424929564794601955150745349719179667290776810412680962870910577362467912575939175548479107472637473407167292001956417756714676767213360554405709172261376329951079503539808123490462834755827084896442972302252982364588432104292948367263378432541548089320562501070537476700517717206206222545416293657823471446379138260203370246855862390166807640050318458755209479934791773856572355653931829316731896127234762846181521239411865885031333042982377587644346796130626338597542620843312457398632337498268514680203704960413855404785289945208409772467750395182402043630354707306776708410607410643163065065778906967967813197984045354434783230056512849325808639669228192322523069934158870261579526826237317916306146572543017421154064821272896999592988570920223341370625232059249086494342628682153599257034270393052710405758502040984198552364442195843392137112314346039123743225726501073782288814232259194292576934891510121397244406815757118047828753817858217246089859596169375180670794076735002919864223244984524845525347116802491070047971186841543664818762424541672814289125692943274367484060475313235997002757806624444919950670010694344768586011430133712751286580600851539506400156214269324869336745112643773136923365784453807405466261678229436347531150846250627120379754987625496992102827684211490547959608865692348189835370754556742264382297999536608807848281509239023199239363227405627869374244053172561577088483288780543869762364817221919634071956765245519508212479879395788966515108816671201032565673780702743951183602675516580688547290607034417583389692377522225666274473108209966588751342448207237922726896456588916291148516352543409483921062498550008428917306344392724220599649992875588790577713130217589743361277189223967291266493906875123278973944080899208169347744150999426893523094584509608543997527045954826387352820852324028088911325054625741009582595361779681497992194040833275456126539212112696294483056132858022363893193545248970937109240668814013027887353639126188920062705218107908331113561122107401099407768133962854891849088156602778013789042492926790957292353810244774691700758384618533008283413736840452657164367342030840266405603596564743321146472281541900878901191696378067002714430499316162070711770945461686101791051525539940749073010899922794972548796992333861463598180707066885876929218297054019569873669006143390407196881947236679533335641481243271873270621518513560139780113781857740660610120701204811702542037145252578659597175299090955792340589523054125473817492746602705421980810129939646904422948484183575453585066483076916981553846115229410789101179680970976703199235666896764048874855837274878310206745786818108285619401389131114939281696634680363615299497796058398530396785538984039905590260042278179526848965173337525971443008683726758364860759748468350498140472078701936568719272100634532082699801258255625747223260752902665222054719385291725488628824802628608845798907472402718452097106357871399622317857016890091836518944458050138876913693288383408825929384760673234617539782299309948170123416325995958697558722320578249646777945044986643903824616392973885903343161445848613488662976351594007837875801901427033505978484107195167460763479868518057806717994523801738902270786812503246165787496523674693209085990020556001988499208272796773693583212257507897931306794936093042348790327040317750796155753200003074700727281153309333330746397288046082428575004233089257443477745518896585858218175936990975443801256517387959038098678970847405735126109534541485408345884820378645830874428992209685130668166355198243203221509352895498830497146156419010929152314790118305528173530434831763493976276929450834049050321185593327057320657528497030423335136488751282814611108268254569550878061133882707231541775836031211324807579162129849088413492748137673379612356075363870439796889984367163405118460732226011174908496429168828674844803592702169417152552033999626290533219023233762321387101724469082746524184739646444527161449031164032709359763042467102413070981811972403699960204855039577114932040077196266401028457797486277211802707829982569215695012775464247754942119241195535710658393795835624334385613849680447022793923873162026107325064835750600915725076178278012292209189325145453888295891909728089286807621090889441218677849544621135149362610934087662016964122294934930811946326200409359177812784103256654453281918700927653369270871158102321427998971584593653519011859576066839027131516078721039334296862236424530352184467732653761110208707570109629297203908222246702120782540172389440069611464264298176331490908174462508075370499824557843973085118367494588118864555152144686816273306849712288491874178870114413775821676454720473715491234554489246321601407331762144673775684641195333358181792352415688483792446468866562329820581377398716395228683815506233863847266099251713197421146329174019227698527548435536801555000176943246322368019576365464722334749182921902714626903020551033186467220943155764729841882065358058511585630585470768684219352048106702224614323976800340627611437668793506824111301915704252174818574388822867295167769559059384086391911619674572794201526996210200475045079606920329807761284804511158424860508990213872010985612007663403626821148840058844472652207500257358948180550330133413619598424870473283264981790009881106615825908704103654816979665687791630414654484754520745141800688529341321249145610569310800300995746496698971050451743631876222030938361817409118696802957774890465333619328316236805297297724654073635378005329288461189208243901762671186597450590627922746259258749881688862887615636574516170836011133017018632107231077900154810865041440131882586542266048010627426869343877701458973166588524779316504050149945790377170974637305088701571755736600366600736679578494713733974588329705094449236392293368250743279210775025756556403039397935914890511301734166343827107414636508899663737395260700668972042035165844541304970751436902331644900130472846156771905984957363699500978650490671002749401867617034362054242305135583748673182851583638661815585101119387272947046438567571779967019190766195101870442595654208633721689163914818835140854680827298464937016447035848609824677039965013019809673752716393251832784726031142736300487180623341193899572888949937260846200807983055943760602318788027370228070190041347588047914843287295698171600378614074218818062046148992649151671724839559201392821151075545730247972361317831993070722519059168929233995433089096408303759986072372177416539460136142064243124600859401165787259269447809241478657129218199310186992734147015191791685422558131506292428055568925932744100758653488454180237979123339849480957603119170282420265599344010381172198887544366355381650970589689193050050213160238808094862578677706144362589309561944370248781011161729334049655432272666434347313813715998194554547308511578451208711674925754256801904368805776679870945992057824709597707958833350244952469256937222932044398239669891117697646348410559200989697223251001006196650986634018767335684743550085797718212683601587583035357174299195235083193105535045952607932369059860352881178670397105166651663785736097113164087125268872027436244915193347493266985411485367786189252912326391563966544292754826956885868445135004563020152245194442137608394394537469480776214752389088115968176244818040160775753793029143238381821594214790145577744498401319600227176756274230928146688478954507326655661060231313926699912114270180622945676983198202927131886155674953280172016168307033810841457000582092730380092047888174998171522413780650458266320960207221903811500270441692433093732281093622183700957290712302409988898166703972384822569402241123920801307630328692470952277137298460080549152303010349752014797957785780986863472719369042112868757519118725258367535259203219641898416230535177028611102860122960514601013216407206083868861485775006215028135862654710591900987523109103629199670261202366430244278404110241450074266973702619440058066178450291093373232735441207459617452623031943630869352385825596033903888754145757478904693518003427978600842169001944542768009959071548055432339319661473167652313126481099977675302208522739178488635737759763264023398957526923542150641121622831273770969568611626115431904920029748079608010688897844874113074466157360686604166118634392462967947256979976299104937303643485158993386250136157931491565852403692288718582715818604976268989656363773207189676665619028550863989859617607033969197573198774140864200058070753512724427249491084617856081050538974614560268566073035119383053431574130866254018817510458624409022160402151283220689930686866185288172994510142359000420913977334292306004722865273512685680529191025341168306886573440482210302846860584860851103161116673015740509725115713250997351894795433619444285056534213949613332394215650033021117758128487423661526274360985617550283479422270855512555207897899528100071737062515422182492463600412911721951890300712389018200143483911280028765757324643837735630796253896139206545632635077410609783167988959387779676316476276485892220237039357274035588408449634194032647785708272731791073695708067747353340997412665063908345343428176182234603371423117965643560787593735709514868443426419552892985210910277837604066441974442631583933228724877371740677255271050585626915610158040890352695286596606045265717958760494301300908054437448673439464061495020187875305353722413542814229507746505148000883055201284900427546912780437490481658981291057594708859365182014504311510765905687957835888302902004559235188458477340644602794669901822774184655269322836755570616326846830456090265167225787770947071433450047377998815966705876618528144332667298062858918023233896514056438400945242597486371415521255042524461229674523104721479152595832308975715667418532897068026842362600764520492943857219985775531653871097207044711088430983238073560739181955405510230624368117356247499518515950286601973531129455482805484479727014917969291665066662384655571570235839685167910395635368856775847865846163356319543692034572649913023481983150438380632644112249731054226772865077412518433946283057454537448795974211479601712136267072781388831240567454598050604255616520978722485258670450080022155375817129488032770501198891851806600018010260008003882281458065958933123903179945562171523609812007517514203757849194948769973487869414048468281932584633841872050901974724668257550943935157213948475176934511907881931326304212920438218626096764739416106437832777226107446738560223195179497171177405754076881287089255120047046998694626282220789730414212726381410011127208034592917484472484759940646367020649507516341163129287098883118594446222813693729312370252376088078957432209357154580841795601135476073277781777831611617653305510255405076089966996765215246328340290469407526091564560030897676557590923513905959995169876619318268904870711144987690633646121110508877927279548722867844465421589425939615014307255304873931484991543286798441440587294276875895421893088002276351831920798357072462722031816756753666776431223971632579075858324136816909170181153521269981805061355510804469008712348985782943568381073446519858432658908618194804251708061583071378203713511569842646650652933437755836459310684571747119954596518510026863390663391635734849567847162367298950012504704491735293967491511631042051426813963627337600713581548877236636418602897407916018385638189953766918248452805257809811303756056799113818525708600979384481094942192236424643100045590462217573673902289073301624878790103790033363066509241829912624020571564198192824397832782267559016668628602844325079231153809096575047949111436499166081138085482968260325101253322304121948752892430851587883575167806924020660500550047227799541448944487180308165957725315265295153986903074349913931474663229710600614312020282505802878315305651038806433997702240854362332403380309861469312781429522812982033576213221299869122804838336043284408658371242545902639068950549227350016281263244487186669664556822106228033503325515251391204524451070388845006101495516432095205054317212660731881695585530630010467168489398749055752002050232657461471143848867546061964415257106633181077767312082541748950737532201632583507578381190494422285015770206504277385816658543990616288042020386665246401584280162335656585677024222114210591800232719217341438960633203233966738849968165033181987263342599944089663126331130770727357791965934241555150481928769297091296043975901978518385693586064418350607111281417485972782656365091118202605965561158004975145646153537000954264066325835514363268576627939239315243640584748792042632140888568926010992061658601122520698752832363742958662807366202226785333714937838390050756267441550835727626220446529125307486621507663761447600246039262225387182574250104849993987247765076525803120661023354992456523224647471541553789316660017455645987197925650741784436170771141357099827391410876564766729803597657512828528207104803621929066500600571792923312052438009636131795770700745337936333864784075621509858416254813743332218090670723682616677028465876278124566582472648664045015445871796186012677251065526343540051938929399187633534958876710127266869631543620708490915073773560705156109949297649212523255976355628583999025581490457663511970771449043298000241253355425488320448898981932433140328348295352095362383446170435370239378367799178233601945577975343343922807152577867893397437608195456465534023741369219779431505946980114774317097068471353742854939821660388795173669268257732050896589389293107485231704959195137716122824863341905883019608682561369158097598296125991279322178066328058158845585467754710384348403438155543037359987447297688289728172386366277268341421600751530879556651928431966208065978561130583671977942041301496802306023473442605220883596048139196327688493793226764082793190734615172581350677606891136609300120387522255695942372692545184148768900978294174263930009449114776103797994856085029792604634535197581424135888676796582199608011221995441595784645590579721197996461148335890525559321781142951569192889497578102028478080322026635669225464211359272038731711571354231123813397669079181660433252190316238078887921714055492972404870205133235406828703674243932049543151410563533280376126990172112247446127555129811154790474503501212112910161702837533479163783225269536249855220395065491671856352123957842081454906666255000775641136621134426621968145658751417130565874415838198191248836344010997091393320408632846366414577199164650790575950375126713838903979740074305025652197035620799334726677857958166470880104181253251105264504455176428193912184714272202728869931835605873685464704449261456112553647733490114129249049892029569762005246223573964279302897192761769889484715484181341030293305403650993795636916101861584730041852709141075894166820865231687763010451059245861162965879928690381536985228020039240979195499050538588905761527776577939830856052055991518807425596040388958900909805170475815231442574997693658324474584981560338658929783805150622690352181983134295709173371596460412142582423196244293764742463471779267587950435817033669127075693412604796607715487534111347466815688597157454665275729221542525578773413823604095115742580597378378883797916207684492855500846979178927013792670698868518031478386479976476700453186971806475638569295679647238600442092644000872544618592343061114643670760108093402062447534636116628317391116726047672036284177320955790225434760450641753688173677271616619116077293865227584828987369084569388700044821779917472910230193037330996807905048909889925193600211875336717873561367620650976684785599144317234161747538000097245280385109142156722278613862451000750536142929875802509735121787908593779107792492342403579418730041802048330181566125373177955085504530355734403485187985596226326987981970975177269857807936488923210477603659631133894838247764179675238935112539409593293207137875590102819840775376656039389387927123100633268170813874646141890739508577772526627624712244051631412945829764244974600377388441339604241197000733663772325590328665644816393663575228903293498116085858897974867959709014222241768988301291349300094766382493584757676709160960002741843757465393609926911690787906349278657962080640402955189217070129945986744159758620790695666235882407019822952373124549445152939611628826832077266860090668082890127310106144838737868974268858265531709430351458686979803819793025783017213001397293036976818961004704154124622724398653721200047685150577476297460912925826673172118102980990579232111359703274616284430116155924169670577739669459593108843043002547553581446439512344078540504814031940272574863557003695921766484435032345483900627519533671122322913956151522905303954850947224256463925284886999631340255635540394950327286198523436354719399072521861410001377848881465333731944821312531789431906130598890047942477406326493199713346137180902805211519529468492814857680286067404202614873169362698488804386933277142189895760158542749561672156388162036758473105566196104960472160681298713110832382365112732545559846180597484239366419061539096328557655166813386426187728956795264807715259506716123445824673358031005284234445751899393620007432258697039047639321872757316291815448889862586247077416406626219363306623983056419713483143793631816611231368101553091954870051064618601148136316386456169836108958160873052910066923873689204688041053907129075993180346906148226160692059228072628195641214032458914181668332967091906895773279878027445379672472313733828430475742900822351838584711511244685068873402438659165215065300060917597407440609247953880416924165764395690864451265659791038302664131183386153935831784220381104696636463922494509858941890911882216083032550874353575983017926392081691542090166769937642304041293996091809222700230533949721073013023566159058573257067992473498655255564924047184925606151809045555463862528787271331664885545510639621566019573599373602239436435144920106597040471401812341596493859834391934459139264372746200942574761700644869933005275170715031407683966588832977928388821369728719689253969013046329196977692498302259477911694754729910255239888379912740863596366253723569643473397565820592960332190353750812664140011938824151825732592291766431420844400237553197750754646179687938865316291922855222390934703033680901367795365685621441215313194336051666203427334338421110512512732056993393534211899514106889815919120327645050746966918301267647330015972441521724705141917918351087880495943967598521683426997501478917565912149760027392336507380020868383111889440549627980598187862711708920025450116709588612481859357887474963159867510114146440226416137314476726679262410886221586416867304750715439609810277444195405794190433736788226854950154454761099296157572837354786277949471454897556390398820788564354602252058328398840081224559817993642819849188815619207983430157872975128616272300443266006253763180702441913502262455844823906339733081202464850663729406162945456610139043922048448673970162308819019150258213297365633171571600689801415409686768116655234164186338907282927232493657113544637901939382403918663709810139629574288548217228959265249928263157864408649099243548533607096757617155869604098332792651746066237604527343949557258395089046996282570289723216925916252204549294150767525714460706801630921827060135623872750295753082690725380941155057843842012219280885812724198351678796557880064093411380541935180525213351418874237867569379938498097370019050181517510566380891601397092309233453107603864524286566576530807549337623579542975709503157887644832873251144095648135768288396924823997609637200402108139108297723478391842099224842504517273897552154832191607179047203605799326945268016818092742418729571854679368816162385295922089208231087674944830654628341791759411497866482690323235595290285274190916902547184720272738220197568723524625941130070376567114081224743851637397003243402724860375086738664346951515884699989241177606718024011748285891429129905269351590199623359006192506410725607086418855517990312290023326257776637636255326406110525186887268966677353866963365524681980649485688638692176772519321815386266770306866886533718025223375827568820220233940193332250152839722688841264498405595511431377398153803301668116893818976879493376227846374573195074588179431553891920041940061547280896107657289705234590868960862680382396288635944847957980123828639052822591802670409796131975017328934972660411849657620007692383891104116373556060731287188921267056529803177643024446096753359235892943680882430128979289587011205912182351431860665762523826103008447079314254617013570476981298829839472078342164212351703695593820034618352287262013432965816611210734447716956884196940683115151223223289771672753701225833563322805574490299831204423016966404776108363400697882993987024006018811737587822863911952120379726950775766782358000897878124316589983847605797984088288974150810012402075374053532683935641190503116875556579441618085486518137540875288585496720882132891785396889096598856924720255768171051381887168109658682133111709565416366220566958800280241033253409839054143625016070482884496487203651270522728170046679232984231341550516822138566053685960594290783059654330720053108777752667349883279487301556567399565505542860390207298378919086342807021298960342764105392277865056068538097491169425848289116871475379303563236789125513270428512588739222892428948128520907614193340885484751663152154270851154282148207424604690482640392181369325870617564376208820320925486466582802714173736856066123468485458350443185079682221468092296613370517698921677195392868617237349082106918229426096081085556501308365624879368075254786546090480950740001636836671818656542852328024035986553867950371999893077253997190874653754546867519230969627410195434665305849336702786593733179717619192904040129259805677056737390994559308679825820253569228120710844726383307473427596779643449814710762782918597071924845709189082372770947173008094769703934555593112778457921785382148913277224694232237238877285582270663314587033483719634740984335137619631224571751654493388404722287803601685352859113620256649544279421737937808916023332595124921081070273654997023460733425365169419450573504313449173908517698981427162901857968908940397652785786959731812708390707179249627576212297196457227714974270522971608317143878839030941252840806679809282729305962766921127590390971225542661708305553036393028029227270292447852696268073477560540990135849169911892070143874974926112207542256461105628019486128820469548587598844062023758431983299894663710447400386312620695908692618040936908867305275675386158179488745296038518874051503410227906537582420297192976927325062315937541933063573974892583307656327448822405835577616832966345039628954220272454121094250463329441484283216590043611537240561486467401631212493723354422372184253914938732899061659282136551896598276873395873244256802492795809498311523031842683711700780787430717017730101349255030180297427373960612114635178942085465226077283242571079921743371462020239853097523434124934957105804528197718331998959183111835650100049722673970014527904967812424892145625013125078011957661393976121590484234841232879043238054403135075849220211669634769031072976434218405833593367551028140186251618908353006920751391863692497514072793438210203050481089203567848015645886518856464021629710496852753679408921298257875954241368905774757851073818874093674036289302360077234774179095415243884663593030610739992255758823591951760203990653415465429442695389328462203710346311827401473969986469374673599191061447671452185528591413104901796978604519080667793178869041681380199504563518162542135365750202761097824185294122106602321368829218739267350746210081882640088057104351365622573079055549690191390206347043940534282190426107007036888197652132792482643857107405708362433107895584345025292268017614368475994525583070969507830073873249400625335569061861521305395201567033055646550231171918183532809419990281911779629533884593350246584919373057772075947350436191344933851676125710534640930698025552163674600839441975641748075343925015099448291570002473145534047270536494317047601902866031859356837066819533174665334575669427912657779807885511094582133426505062535590856798596218694820538774116330069432312491602515457762318928654868666225825811975295308142981421805162225026765969631158195524868142286686194777751505747000122620348120692034079258663476828006117131727967748700759445307910670371408753144395310775895085372971858897432019578348642188885122228887209109607899562901701614778356209248564940187016631900170387037922650748183999564633218589557776119869189766309796142208632348830532326301407295808417790638864183053211829576040966387213406620380646902601883755155080993524543286028634260284150192429920850762990288877310130386120823204187097587718249557884956105098584408429059123990479988243407750322628614386517457867377417837732416823642351750445558548936777312605224465894301777979717260777756288395155984162510631950863131529248217043873255270307532562252670874983566862426595020703989766737596336794557407889273901776633977043576119493850369499663935860473583708995424191184381141673766469877813726037905459440092240483408837769627120700394748836285020612715515118117581288635233278710309216198464440860962932720632940724921107600776404155401542861941619173833304399771457376814153758380658206001654841457069925471260119680217125338861427364092010043585235991333506579381345201114062827551830151272197343826562812755307043930243265119245479364629749485814894683953853326015520935900139076098347661540307567919348557350865383643921014759478896009660455382134177271108569417543291297742545696098617721183094197222639723715997558950009086046733467545564603210148913267328770938173699833009799732026940894334562188413606143437127992698914743201666185334440102483446900460891031788732998828664314451220764050406284610165478540199612534780029468114716219847870946586323992017226546923379040508299773688122736051241983581987727131644980256617930127780997641226139547558600900217494699432064654269659304113182243241133227713125979234070927938365757725646353703453607746095065215461645628222597378072603810466353928899177631326642982167682124241532680472760494646991306359279605970900239520487930950793584352022005376222844619317675032612538466954792027550264202651141697169441974082301360642752397911450489460356832980983785565379601835434421005740227357548364807698677527019073584396023480275905473702242534834474237711039372957377659796122218757282980216590647817716451150338224247861654279082078057395475396216065794759146046732535727739771334910426286489360355891945379658697949039540286900483191871533298128622528847722984806322318155803345422215154942249463630751983075155719436274137032865672910437084225638532317017731966579033598889308472654190599447962001389113384416503889284113007902448514087032891935162061308781202930014908842149707830125344511844043032970186702228128207717872678789214913875006762388267877908408136054161766711506045167799037819515270145177573749889139531467803796666174114428104061971154458648831762313656904999380196508885303453319684816245741617763834950455544457416910492444599111700057001049071795201590091949312489277951618719251085030547470623072338828908501416321173675696350438033207372717160987062466383983970894209356378650358531035207167255313896982600771002388577705513755976077649811754599815680185428495797534819091843251876003781362046024604730833175536303050494514370881439439288804388514318096294407035975861895315730308067579313542438664207951485087559838324423905260182847892378533585498863680213026032510590861234923852676112400429926767941026896030516775144387596935510435838177997939859477692620429951082092417144824626535252341112347534545439965106242296655263619072440332262799126683662723295443436975203871356566096063243093547694127637408231028051024714255399833089075765203835871908386446340872587342934333386270665356189358375453307259602273440195051514655180269348945189709099579538260762846363220818507180152186827904671539094789071052768891392773689396748768164262085592170185941512597437216098784729313144383598647298506638905027369952592726645258038437128712836789758890617412559622084601782399074547801704697569659065345544327566385980007660792522460373698682205832159261630944305609351983791521708090608179877442777975445964368494934945697583462690496465633946514551288878819447183292172333327809196272748286042591927126331212196314262324410845844969069205868958287568144204953344237414477089370480891053980254010654523965010769417508553032662908448888847676885494564469973289452631078819677814566955289074100104425127898683748718730682945121118398477348637289056500450434911589754446121335072269859995754591159999574398540348482673902959414250432848429412918636000103086139112782532646971168454193404075990576561609838978993324653178406219155737668700116060496352863979622786608978733782075893373535442035582837880938806256745753068203887961063112763298993727946504173107614057570389454239839360293040375722033224527707776143913591303214934831814519078250907926175065122944730822594177848859709456761153033579917958543509389508018835940146367055069732590448067751114413824980321464740317449165429503883371777192570222314820799938252078037134448637903346074052023795298992276479776719986504182761429606345927644316873010194398911298690919560785305740381457781692567067287024477899939460191418791366098413592222240370007998988245314687678137502577927779977960119988123751186601420170487834124931828610504983893643201260625839168952693712113670586743044729137594815862281025370954312342745714327331467100003776645648520177392158158055500022115497343461490623993120516514128781781495470353693502710894244262329055603360615164124454013784189646772126906497100791222124012764747984784317971456498357196012716929630178501529345420098715308260836842549775221657236920583146967553163213260626400734908156565760247863736099547077741741492212651299413377058581685394179374480692171580316406936873377594546689010254042744478244127451888828602162155762809361126576095565452857168715825701626641192420416909659988078858664071186102624310654669627416997868198937371828975106545307959564712544517735646063950125882989033257598751456631035117323582909313432782818929179890122147927087636822332696997696006591352044564824619020521549279451290933247506902443709106098176869171456829516793643366903845744774608999636680385798108631113085296924222952846430749945172196418798744663708586601279488617916479898702991645929186268850197819958022581560506919604291037024463711544426158806619433171820242179221129106391621468024217903520717829237274210897710911083102215215915141516433111335317068588346987032100058961179530252356152120381155505265377085690592212609134077845977532234276627837221793089995098457243067309839667930444160752668172554855916377098769375999476720991839608360871189555562130870214882837414998108608525842247766519381068873703732254799889463500190514417441384851211975541068478103152556886834230942549115086743033263356714444288102259595895307466600259524183808731225474802624329005023044293391509125107666919759119317145326096845065931846547897671010457825297556968846128388854945752751090954860437658038970360521426506446411016131362552696680073359905964724742999767156358287100789751212591024309080210900309691053179885266552361028134743423067153450561228851181382386312182103177899932845098506037643973413500869808202104330459564168900964512807483499241775329004466826395085920541740999407296214325692192952096891665405064887830967395805249501044563029295595684986201201419675529155651863152818173591366310964432587975353448461340020921716811611083766628359614783067092158571497187190284798820283458306504975052994793753243968761097452743074774024127331511008662973333317079378734499722124457931814998516933868165665724013936400620526756031198452123077567858122121676968500643455101162518315706994537490901065020422334070943671601648269366191018000353740086361609174791700096086234878495423277313595939543295655332955776928189303309279489985078631287588534984857703481625224095542036993732942213766890952684373986306237163074703611873242104619192168654992714116626086249725965603968219757317680842579677446564255970008915776514517815799635468166984521474058853566073176126438801189072569830587959831386429657743868254518358276249358634060673421528001073048691582977135059065091906903373032537429409110122033680066046780974620075664105898553115024115969367602560114850853972023084417154569098864831075994720805858689025530480836088255217024792291124632912858372011216968569304900462412590183722981470295099681518784464840137960012701631275879282159251467907917855299038203163514689296302321180158722408489321229580372307749151941939155313532767051793825053266209851176758723198147989510736450904652131467969566553403553534292650942920660791990241366942832237856086414117291315096714061215749995342974600181141324756937234138775973630886210928926651558758984208532366343366303602338332721893655319559518747684506393261607382783837300153005135298865854243730435104277909934747420569124950881890239620335990089791457261793145100472402623225526891694895982803449290707519086735510528151243586606792078168685976332246800981668729833413256558666246901408658154910444214624285240445416800953325723525631751898074391384147981435157575139869295360464326552472688602690262858498081113541720271145428853899558341446941533927125922800265155495583585951350803379500144296540410942192164078497618726876901963934876481685934461581765978274931643422244901441440348031383298720286332413825470266857402516451737223659722783766749341255194343012691142245962499944311846293897800158815523288384614852153989810298486592704047877456542049711879144318458965355396651792508400093592958934177186298707096285164332483365554871913329179721213162642601317560556726823044235186733155009211901624989225732524864398675145776988169141742351185467261380370260049475343370440822403620031160947696913180490860302212944835390367202906519664238486344518351682808253088666240647170001933749994955414718842162910290285881185418322192614937193252045200153969438606727144814614080928444512810997842735440645914768915723892103978903360062140792577378741431274718340678766140986753808158364667200982075799713145940811105123251080248134559891140622772037921873275720720329210180745500194439744752280429438051521399535767777399204643272875501558699010779292687860526307518442071268770467733210745307631301314336630046804687120535444899182831172423425490409094835969019985953537483632896010146379232632291048048081481397800242903527829292005003483376644466017204010755668432538285167176237680928213931059756142258983976159324089176733126090809147171281710117180894247308667939398093705571712410154484964249451664102043525482748263756719442836579070032904667376266844890444821484971947805807700301183209854145680181372149251836224987561118608950086822236823440610854635842068863578295309302555986343602749436178138274082271166043258129297644862371415131192481253584623752937253997986681221745248900206301293552234280460285212236342695257309390060909829468422218768384172081209083504392684485024736786692545129539387104364942590921959916219470888763631595292891105102612613486300175572647234392383564923382565862532550754170706601726512199361785354125543694180251852152357789658484078776529406962172257230691389167581402980462368980151973958996364517220122310800118116817210197256971361145937133528136368156935697742805282663979157881376259251618156850392020670289174341787160235799710588513123167301563343299884179195771795024279702599415207896142040550002416873640117617732579957941801671161350353353985244713354325631229100181643981709397632975361615336713000186640786394524308295118334229865072432741756587787102959927414638907945125123841730067624412886709213826961670171224636437194638320500378481428990568695955822599409304032369093983331483210313542471953136417968332998146035471895035529910727626361113771582430225767915402895614696620968811989639418156278614461255116365002121173524501266468429488284268230088639239935529001401913815145804506901830597633643900274788657759926224810049287706913049129835212033102333102813662626971812264517892600625744809443787265392539308407011026598765603185783576768244987299425433685908557717593730552858566091447767456302097103404529634702912904657064061101177966747115628518752383452017488458197446793522903878983499905858119985938531814106209023524517724467987216585832263919330530002031647655990222583262337355597306350852908389368128005196314769628213437829207374705328231667493836572105141437426253197000249297365816092020209391008417829553024817151293205722803922166543621786765398955020627742947562841726166778873827321200041692195441805834279818308548745120249158854696331191018795477900723171732644042752432204313330212904719184200033393461279888917968947476782031380198521624711166202815609919921754539858843338616026639871167800042452591560864577136370906547922640846458173210478390591231422844262162203020435000725947501102792271449040205351258636676507956620887294759656159385824678540214459149760759637434706165002316619308865374417513985817340101591447930183290334735481483146386763099418247537857446620162088165658351473565286561688120477013879895760358067559701469263708091378804214652354673299054474044120519082547578413199929453933906405337878565691870832061057668656670756790129803389168313294909598998739918540013786649894712926686421481736927899120595528081130538700567707565636880965429827285250524488316588488170316169606563928748669422844725473072573859494997090893275707491117057355272775165080762414253018291277220684353133807854650587087646361874148750202440879935485610525627722441231554595959171350091184848666296941537760782447365672606157686661557418303848264385813529752435234804475271326029290907377920390850160958603264196036026529295119402108333942242364300816165292797293978988031709518791078387274481333990016230247498546986185193970767286444713849843630552461201989467999207328577179270677725006857880326501844760867501100248463698243334873851056056555507086504339917821510629696248465793500054239349596510480712624554801751156865405854909820573484730552240633457329980405403391450535609754301634502378798496199245451972945421898391238564382641322751958849512371338089789110186169022723736806101331015385696429848606411257652578623950118044911875466143190418398809293000307679556660204824608147546376427362708544789926534985873276895496451316674860923528592210776675221778148347055194438493894665554882834598794389070894372522056328473845771280467987837235790761279691694294106347623007557006411152785140887071865926407359225628920772289216166503976886689283129075334145148038609723616409171365677267393553450174021171048532102433350891688872426471717740141384893974655125031306846401069720889346403413344383505789233570213097299720106346137557740072239201535282665241076357449311459426770821105048043047232225462678554540934088046517000072604517815106357254329553549302266421668901411661198631775771331805261478910405751264036992485011399174407915932110675183870010699382226694622967553911471706210032218092251981874125528341741986977294037771072174717330796715683418303280467522725021806813128425232227735450755296672948656969921288734576812099005503943294878496157615808543565634425695764889495121732466002211774364610233689619078662207379655757766001973044250867108179457514553836761006965892881065921191384075158003397914450504079274113037341579038323288713012203423828227813722438586408369233146273617949942686067528244787830820599191550075154975498090055033234104271781217553098323586986285013862968405030154128060401221563664372122802459735272690069408808784863643715225850063375514985219977112725086762677251154485951735103914545165585431946558893594175956203944451112117967123357074643705756713447635119767753671305004769401310466623362572976052949275720098639984356459059913683702730365699528331058823721407710375093437431680404195526547578902789596606620065093951481232444158280351298299874587693244783888930727706792067726756476889024034276855844499265951088364652725033751253127342833531487134371877342283419117548965174659563073781719111337588603559701657939823632401457426736919247044239914736972782729578112852437043912063196175529095388317516141102874244525421191464859420978590222730220159835676557322100981244613504399036037364132135800505952379720421221585704348795205111637611185461112545680973370808926974693877213322695881999658499608347647084850438678655971178133516210838994309342854926561363817372634586577942974346448908695512292632992777242936119715920524242023542691651434824558829927129912048042791098223676418033967736469284819462195284542304249287051206347552259037965374391872788373311315630778009052874066195421181378279991831607816426052249267948397603857785606355511985338973229517231179101719637495476457856802912103709514870806870806599857768504799764116114019914462844716634347118325003625948544112807321658262856831158407276217397409537972848065503965594556046757643855035721359237882971519163327778854630134257412962676563228651630063112289513391209406983264699145686499723155234577581759885660448367040744309874377396337386843362998495392712187799908628549334607471660141998028727785770493915188847932326911007138084893050381845388880932981499959814793496234901396351438996909804689228707968083786643377628494604028600559922249131360216316007389516215650060716060164047169232064576593140837488673640686640527241415827115015727124595177418124247315687278942269961532083325866679591897086266059347917205272220482394557885785363233920855241289658883786025626630381080847322669449068892088744124306870899356262511219809270308584291850330469930187986847577087773763575396891613713387562987764486475731566390992856860650670859361205726864632884457932457079489638778144943331590449460343142550467995531925624126236078472809265989353425846926370201833638625378792165565234825036192331561883444147130898028007590897579588941225058442493721415463658264421375835339108451777152014596336498411077809938790778558812463944781388116105642529978167568471932327409855504497105104909337208924862769417312608127259852964390502230240746476991501381447596200051249129460789606401444023128692733194267878892251512084491852749180107535788386759302488473011185853503206523854668643224381252646029357660035450469531357367416152302315911655643145099750712528618990934762723196841848335298966457426068132714633951203044824364115100270675931431620959512871070645581335652054267503378796467585764082761103115817553034213706921111045647596755863958806938051936652818345591261046240535880912104425769865466647103405753005439584037814731069360440513849773220518340693473363653911835259722921180129322563604096360373309380226183670081173235947106481106996797861794409647618983164997176385127545255122311819930376161795431844446295027216503313931702092674762719549143487699302546323371230028637958988227680846986715916697185933886707621379083561112467611540738564315810693866104315435311413007724611232178928402217231021515278315649222058411291441370443290075049676648232079648452488716051186029910819038991948341376955282990262413778350676196848730776557982268522134144971483004669181982889620458813099292642226868836140800773174354513876925771714740827797458709160914897765834871247074876327758452012954497810132288604216461643651280368227254383644553466978574354485950820498665522633929316852007879539668716381598392628640638312420305581148409788393936171181793984174794699628295896781800479446642059928259307094710530968197439545421855945934490423024733357293624047013234052342770311756191072079819121403426626448858368878471110861813465382465046247654111188002130467770776419758532973412717182907611135844663865834361544948845349773707039956780987840577575820791421835540170368350458592431500592397191207811773822537716265108170524061892075537850071484417244957748410440678137984802047948513115163415178639567765687268226771075849567920960209744792020904510668588118020030241860953477177740734648668231172159489885159792463573428074401576721442174819238783923982488278349323667070728303416545047037178481602560044615760220337205538031291935892388727011812051704484766181085025435969086755179314861712880147268537332715134092507919692618330878088619327578216533588577761005136404982472935965017529257102191336506572363689717658535898226309746416541118011183784096839924927885223038711389713967937680281915505261015600801713040758639199510463998357337167127370645875811642865540443738804980407898799275692502265145616064802441779889618796864334000147828163024162764238208225131447543655895128126914996097959269948815701883424283115548388550694295627976545625513965556086349313556210033788282168494507342921950674191353264073313947728057314359809556444919364150190853707237360880914882748549798871696530698234269482664307786880411564812329815316151645877841387344555196036031159031394645695333918100440901143438002165960360776434922439334102122197940300174213946834359908323967447773795922271787294828891716058365009796670840968227964245225308018958127324910132863506827534289919024299861967818751972021099257374856228593942887299113451092534815714772900891136686503487616604714889846816980502396387732448637044573293637878234494773979577470413370587728821177506238340035245914540392172851258628999423223223122115419646975250091865037137463046762289510447247615372261379303626352360022672351158630201673584795690829197848660675221248295886708711397391968132275228747962584234737124627692014287286336936650082161112872215965832785207226813313038278743782126658288750642348699473545064013817836840240302155360464422863740977475541072806422752405177496473185020637274850710351757167174437232655787586435589022619117132000127263810246333251906236110157503395913228082598428474148673736618024012326000652477518679234835244128881977744963304184985355404321033532602180158400383773932700515981484399023876112382753541962602577118239774494834479031519973022153486471233554636209261294121548991528841146025121355559711238733844147735165583301448672355332714062759742196843899758758630948102498584493998692000066711721280205497260969342635936988622070141830148725556238333151103320146054566065733714252893277248003160663593276982389769398122456570345113133090768753411566611276269161153557395031513112363147437563234823244956026417110002845071581580184962915628682472976825928507999278447118774627831124435869960947086195396803884491301199372222681003763751660959874169088856963381675758684476064807931871424546432766130326483748893698682585848440664886492506053220481850372987316670530067566739543936574370997094047074661968178783943284327307204526847669438372403145511143900410045264670173204281054539251862249475670150177960253795544605907021188712560647120301630049849672375838687706659109172229923571284594000746865201433044046979733035140322140110695884905962284971088355242163641224028723614437410559483382903835623940261289129126444002187979104933026965404087364078223670660527868383904107477245758240466008468388198425826777644278470218768305687771352510318488572352189720073961692921241157378118186636867453083401432258295484474774418981918810249727975052116648011136790255152721388121262751471734708593900173612572032552501839011538167194222785975934193400118880554544882114584434974346956122892952401565636333127468796112137699793175591664738566165100961403971606676689492146693380136758254127156584176542003845998895561685120526029717924442329405046802130109487264533671095090204269757899629629306195231493552006015170832314333634794875224554884829207515460455097557219997540992492878214116737465457100973404483686032945577527115567491614832074174088756476322640813036777422286744596658149479958080845947899629620676569562172176698997422197149049722671040361441158918387975450293395953055060764187214618544810367440780005162718718868577415199866349087955911851930432398201414496198084357897219741538961094112432926146669454071476442123931377622490224823755438285986369013516410847341813205216244778149630810806099844253517765783453386169127676441590300189062549071705188312266950373233165507346693596408209963030750811810626923990901017848799249364873110611558826384105873066250617357628762296428856162030584589221047184809531776059877736157424724615474514017500920099052223718085496306498244690201357682220156178923702520215874297087767712377653578383040933783507324763528031278513289714201766615033108201021976590273661957842072875751645226136124592763606853530793425268520452092129132607315665414174433475588995752881553375880516226086685175445244884952656065404114750679445135158498407347252598085063913669548753369532834676022442300714614749333191539668317087405903527532151081804783102199758750403211430651906628543992938218498567517876174155540059988051528530215449488597329808534630357874691589092316785366474473400418957122469977725009347419396008134591625496873847275053623537680552478000849527115288169014121209114867185064727915696190381211018744688176053542779869922474876920898749320999298920828041431622539505574341644643843373226663146626705944672495122209004788511312894965666176581448627637262654309755209213477804735370862535723572574500711203836230928645259711633718040668716672134293248747771327874902400723238252885794526375285874074012472216135349089961114921365960029846393929258460524691763601179572624395853678735465533359168386984804411659213275777022496536344185569695586874542633443346105963369822660274340443063594516747518635796083386932930487511122458727826259072484434540508393806147014067001855514247164900045082320933877653622830918520825332078736034152324177400523314327657429095768285712864765888161631180524898030089594668607768208725994015294365949058273231606220773422269024923169511862667452396912634072284819438044306993207842563183411499109100747147493427268268934484246401247541156513892414510297253063612087081901031663918335278871339894790315405634510911536847231214759615656548507340043530668221974006754975410430511704503303219808786334494091776271497725066894143403844381117130476773241105809320333977247052254531386683761421252164521890072893518325098136573632710566171269327078261851672719655046321891045184728302985059064785052379785197201138760868114201560132111278246958255110818311930118789331190994438840188252625598317746175418518198960592684767118282712388474283868962440818766568255304257917812408223592530016857660661404360610746312443354861043362126915336694379992358296345947414879875506413187265005280302394992272912029671251759684726685754117261838486178972143593041919285470184316989089936067566110371932320564251646694568540379562568063233568919268553400930768001723152822033296789445040341294193945395027600193193776795679992758762654506315299842091805601645385202815392243890930388046036428259232197826299857858708362060355370183722249183988139637094198530773368450271852168656937459992000667281490745036264570327592533661032629922898793802232370660936308380052861845582496322272814426514409940307102597324375740038207387105766824058148744582192634898386833970819884295346491682658662479377194470658060720989418491569450370239300819978200482188323169545000111477500343070262005941724266102453709269808606631709615503399749899300815315238672414906857221646351848967972451068814170102718116519924933831700973703864745715109058731427437060955510442325016411233262962442440214992105334509764382408366536782764195689786270076551090961852199923715890603427216324382512695393649556095939576343672535589103320422894151554464338946523856948025890567023663436341360536133492824640143778765997523523171622539920233950519498221149478786679609379652782254557866578622241562139011957398020412879745055126265256184808866467627317261484297656437856059236114983352354860535801740551662075497346276057605223065886689238723341489838573204488199240918143941635059001153824234246140069344523677066589737916433685416304415283323936870958450871925602928983457144097193596406920540841601266860981317225403347422062010504604839980293094554446476040125747756832672004252013797856977371554099837750330502602835615481697696450927800079109653814741942562499866140984350459549191625742816992331753219480513459922032644920496278231665921127405679221757590195268031704129054509128073386511404242824044873014658594735498821718067503586462057319056404352683964414239354863087625103490365426632682210476777025146755109984405381182815765532321979650435641863580284320792377365643750319355218006766079247368910804561648125117333120408935356896546851672631126960827929257141976380349206145026945697420235125765355957256170720651781775975382786007724834972820650818403617238885841104323519476047856917087790821188557742799586514738086115122559014961318732469648750976860238885851198769423456978834018693484537886427624690664507540353152427981734550073429584529757048722349678863560176597932653644687574675220292585476977153023028749725091661638412997286034906953775108967583751882166764771444144321134681535747663965211179050373150731936238839523542866354819424999239934411776100887122783997981864115908921677018152684673141201788816790535952393983987058805865388745218044550939117777434233081067658156942199352595027685295878728036253312507945426665438573386787421904745963902727223855654922895738754631730619566451427914501150672726796659187132407178754264221070086199154629179091278435661760918923823173710666002882898594781647546554665888899383395844188069803921988911464297924548639904695723251983001720917708777364041475501730356302366423866934896190260969470563350524792600440346108356003367197095967135817958983965175292281294636501778822685352102663145756514509512405631996641593231560349594093663344230016409180327806664793947763493652885167706243389288497494526710602961006983099712637205557975606452601300296893613662534010006925409202125607822347038799063981163156423757747471094815202622213566040295574497375115728648709754095898399545406527898073736465193394558363677805622359628363376846545040618622142047700963968146553722806952949821623449973041093200115619301592908840896697046830618242028957758879665093349866244988635156088345862755090347785359474805852430054363721859011698078580505324706125544250056304758793330060540577942179932572147750308206134928731137161592119672517924870457789032127037279177165612469739102562440355037114127254985726259321457636092582994419551055917819823608261185082111531623286936723911963693516383533099876451734029255477570493236069203588268576832543795301026636401118780292268189210354065440743065167737635362336714925130512185819166220745899244819166013308416648138597317235815291088475778820155740238716181928194272537090212342104314005818247199859963833260248371219183907207698498866682121331401360550297344171432068689264364810443035010782803210762387984404962698939959401249158991723597526768690994631961178545869538199186361836949854882866211473417314038793335529460630513475183001128791109999238633574787225387033273479284577972019037068823946555807907751463663254010683684996789745884643496238534953863780281767520785932943997692347458076946960798026234525767760057651912406096700570557975508483295021552447610272851878667441189596883879358411514633522575938031706899366263118542930542293358943860233541364780674316119349013665969777940564467088752320089290428938945097524561812226526637241676157205842014574959526834860097463415009772141492543878359936999540414249224832116808234066170330582908429097903002114143927425795868158474245069545685207494630083545141330128724644031264411286334306392295614736344409548123224048880522073008477776768782577480427040671587600115053853671753433051481833487202681393778296093351835944327874709462954169672114845199703789852986397585825894226535105240114328284837488156589039676100614591953673685717797958467767829508494062320894044736959416449004350386577746213392187970838127181241629517540093444677889953074038327639612003671688640999145690665793746064397332999057609928176246099312180580473214018044038431316449429555773641953045696583053553975638417113265225191926664906618144245511764568892143591041272648453931300882417955258734019720719906330347783158490945222597283125827286923195320310684875134038573464780376143993983153498038769641596270296128950667415528967349321074037656868503000419371596731920602048495636972867111733413704717227363491735767883413883531365757470290117848260899699004510068382168419962381685106675473887303769011066669176236345843270073267305005963120752885889652689803967548704599261917481356868177285650536495803125628617837554122126923548222822142911526496062275097527970510469859137903094134005597759473097164980947945876406729852546560194723167186349339099316926546607267417285479772276996048790224318527762736818572448555791682602977258775736841944365169552604922020321999053295148564174255367880807132087948666806280456308160149509606996767116977383274420228913218015542504053772256126628746709905683148423115613242778953203833700411643234191049894595673272865458278531272232273414641488114071593670485993524327601395628558695388628659774455336574802419705192753233124647780838997309392999106654563443585357292885228469664515137049080858054700257230734249343440618096805961132171462808185749734716331497091339380430377749994897984902930774741217658933910377197443010659297297133078046309222773340809420808745760528751140106075202523979854669533136601341174885763425415503087258744307598835174894028363176350060079072984301239833603321938367845496873691299805657709353291985838138637399784599882154038500092160299970127187319610868633368665073485294416607465781280447108571340136133140636734609074080118328941136742156168639639978147352614977002070727342016312627903462532204589458644570000926022396198502317334342928905082190445124457969025602150802647659381764224137903500211738709038833486794662642748522606780085889041090021506352251882101730591512866344651470560708814756837701833177239203384619806528273561774948780215320185808851425707269980775546051390996104735481032134848282861835668617867155450452782632190018358564465678673972780886940172700756452670683366104413140514301264862979664413423593073585958067131058583357672727446440606954880211571122338143530934824047138250154959063117339535676623043905735068982083577869663366825681474773111810502958436455423936476375111719640476809969294569225382191926318260225771172475039492841570026696021603118280612088006805078086579871980428374663307052634251237147808631945798027696358064420474588963031917335809928919037929349673845207163326207386312131936607448027121337780780608676466217283739914018412738221946530165607349942557907246506488232542575290533658919093745613525840970389933425835591061306801224225517910155129264821592428177527955889793168601976725600101995655466037161705369145758454821635951895651844343853198736548000570993930369278688767168542379554480290893921913995311347094851225098782173190341177294674211698370986931782574322627827565366337628306448698065165783051648700640696940174032430853947912476725090688104029895802114261201604308630547344724140256999113340864828525592680384758962032594166009595329273586118351451963118788626615697635700174286509896680638736454651040029398870275654611552315123179143314270205269549989544061436338326569260889596665525129469301878221362349170590651414723085734498180234772029900144324906902229385802450909802564060177809499160573652071182278198823834268321000248162501130489634654226144947768922562739176723815624915533469933511047133555113768373648342210908458006655636916455858841851679552831028168304547760585095898017585833104747163940248253900070992298036100709743863446155621531395665254354763676289631894996607196662587401776446135930464964609804866869071385221759398773315316633296487319751517072273809347671213126149769415298171048245656136746516487037295138397198707794883266522007973554900961023779381290117416592742298085871260772102799578240976983262202526393749001192783695310282459883942639887402660356533556309957352220734975960297815283586931364086127712974980291759070306489295299889601477134006356303691181709754063981671003298488520505460256919603722874257781924578360145354653376409863769201753217610656116007118507034666920241987386712996607272556209591520777483231961040742152024243084209889055739735201078430811578166059921751091266825443541047139113371241671246932481071505132394916272452380691485109140907920280822394908641512603226885490132653044795721714210654573961853982128023780333861294306297609659359386861162207261801619949145139110008883249212765141207781021904827537244755040887565727374051010298057493289380444794898786404619236893382935437313857465616150573231491376222709642207145914635000347731620094829018676862722237804574491471846529181236212008190152266837158213590484706477281390967967819385765593698624622969684968022830931827601636657605372191384993993193798207743317754565390802651941295682143542573628215404485175535449343058066397814786562135701220447662863963662455079322614965499557655128604290330282741478726572891317257608107926627622362062507132010023397024638821289112765203683491428980272746407470111124425307410166755264282746231171693361713810171942022833414391590704487123614645944074626301215567673806441153285336473201138670317467197576208742311856247504444535167838098814045297632892094323512833988275344302126406562232254848186839978418967527899784352271641135199069617052591270274226520897240574675737090124222026675988867708020927237674016802528065518006592586861550558251509922610119896049049268316355413922861315202394042819623990027592488596859116120799694821750681637376302264218500024827716850716971441613223727717810103796648946927650939327536608695403312942180116857783718720589927997410860146995053147706638695124512703125814180782305129511116220049597215013471921473721033602790606388621522390812805454567264468569530078730650400924132207580365829951872369700004381791197546913329414332527344313163151260390422889443272238773496754761147900456294109920423714286733813206696727584506721813269903318943948561401773398938311538001079915922103115231222663932796549806639804835899113088740687588638924458653683790670478454396471056114744574833356053916057182383316669883424685434093701307556434278698617605395520616205297082712470412770835171240394163296968676561686974830819087970928372387898840269148694679351627598188452505291007884140099957625292459296668681245710979982806511928769250558515222883826038411537895627090248851550862245056933220022995471571796650773600461499404851437895225851058771366329036526996410664925131222212381722665036812316169955226649662929122958254464051363488755763203602552522677193781776362266056438314480613603457488144526669175894012671906433442364888266829383551390130308346096794861808494941856093973448330292936890167650233287660579727304071099823168425897522631731031419320323754840687205900926490478845598584177391944353479517055650309805128874441384524931664295797664186897237499132877129769499452070295123720787809029127848619690822956884919516326967653675115817623971647276880531682372367532491576697285554502968237969576630025902144302538347752924798214607530250918481912805018644234498490350769466840929916366469182522025119963927044504763299360216583243751496677901909306282345216159672471250566352004730809925298101481441603068741209683018645044869627180609367928397436455486895014203091257118566752427127900463319680217537006695950185329947265400856623422534901835336096262749255836118977386620079562211180668734526334076327392760771669428080744583722513709604715002996724584961294131809548282315968758773578617449269391529416226997573746270048315197098028825775448826357073832899645222143361419212214141433703527096471246076802475598224966560025479186816225509865209368023492682757019942512873316068756651583604039835121797091349474851591922680110778514170003469569174866380905304540632443810695655618144121110082331351831963744574093509872752356237831868911362124673406198207956823385842389500914791291152155246121013365419617837278419777660798894869968907103402003577455700507253637961403069724882150057038626905075423491526207176779090077435939898003263361590002988919498092564976534480347868445845641978813246668621402853603835847175637445219631877244937088883772645108003355111698002847662893684074054524084719537368445402364050453818112330573044338139472071546180602369148001326433449695205475660133595171242319380629228964602530466341169783385762654107216574788284674534444534931517407184176891241876217976654042405818157836053912673362714794752824021928870544496505078881506708096432524866986990892426075199931832998177557982029273147391230016740115433723309114082380710644739258975806952279353583516076860725635642423789202418686619493161320503967777498272075201155578831318964430069130151158208779801033216394589320121538417741123173893980925160548505807699781821425881224454113822431446197082735460191098278022848252031634410202764268258410044319300811628658404137159572320759229327440009619687442292279809116942406871791318099404145770792367660038814241406286893911608722729551617973494010310661296545491075716570584816947938935144140838749968324758167068436413624629180045961195320917731829898599800761700073056995248506935596101953881622595744647039494114204176716699784332925342684711202747301432641334069135001737004632929906374736649645177318146198724935577787475331836015873787947995775574065703165042548540416005411020505333605934001968284808273114511042866007658016587063904837249173543975566296293499937491940206467359063696345779719884264480386978730897247637197936120994373393019870474910647915219597239533380480690451683801310496901432110490692759931841254479606140178361482823335936012453286116889623912347757869704598489935889787342261492189858448076999494517482266637504386598312620993487874598088401542202468409617675192305218375055909199873912210943169789490404462221003915532913558305778470192223702675604893758841707639729856884157588805366127185920612725199472595576185713716883294153995131051057119215294605261657612370334204615438861397176398809274795290944499354560950543542486023495697491467027040686902982856959623748127482893653088434266434562463223364671654036693469250212076473346619953727492379780568460202652658717993839443918807623341633674197035463291883671669349913348758590120582297001499006086650791982441261955028334245754561112589406379486541824607221588119820997417917524665929827607787968980472571351709478275508718558178434348930405250879602961478652032199941999532653239184446783895987944676820023279810413861484397550655649865750725625008779767198406724082765191086499455314872989819966552491336657783176350813013583897627443005624419025321880217835016464080983660352835179443889859068265005833463542508516466337815321473761674542873880785777544775852999731317080224569378754533950355442961233732594936669185341641621706590887122210619696017343187819717820920162820635991141534164670649433226106610363903619232528466241867593438844565488825292810182278399873399910834634089902412413449056651356432307727842632724936938225136811362499786480581809819631512999691228582750594051104904152437381482992082882588368811068254619213289762006731848527897351235750119359472791918801740394035104446083761556174621816696253925472643583977136611365925989428509744754186042906620211900980429579342004224277346236389310741849316760386818583000890280338767044906249519659189527102824025004164513901501316427731146505299824346134511592876620817596906871499530064097214919527934278675036085101579551717734129633164103558400844165916901522368741922487915695754839561960570155980217473844524534262017928143727100334216733671146286713838844664828272430822551839046114367492295264604166401308163252086431347928712097235019408563888781765027031211558290886555669715679205952133486114542023331058983993733304685279824015741602831936029324680180040988488402589280142144363337748357279385872381360033576840180240358649645842597970702242588075884589672800409496172657441007382414328370586782981280703924451486846668687471249071218381193955238253979996280566966332020237410637124691488177992484458951366598856932128725470303814442686729504835872850279753000576350743754221749577219468121069402459623257831819279361100945911375480625855964905014552473074059790223023971153169263203727286199641978432549388629722107319239241748994089420893243498001766822148331446254307674375741595392162747074542182731418585028092973871767988314147221341058954918761587294175534129886554044834259639817518246645416617262156740932371585580058673587952464610148072794847947791722392951936711098862489156567470308886320262885525754193564280682540368180447140196701582899464098802696570627968260878073402193479060301401289403557655170445233180236749365920918785841452601699098622542106914945652340024288726129687497551697506424914161113188226332484955064309604481027854006466999244972334441265965474316811209782497008307908741198763209115061325796477885873917743560929989613035973645893837537515642211514567682450378389610406306938994285219364976975422805216930721629131133312490710634024716308276699645826471305208265953557037897590307015278222071709715385894817109600900658031970700569627404360719402773302553123588314064216897903792913576051875309078355381673857518665357442209587765713212608421092867306164957344253122897756355301979756080298811021525090614387538759190995618376583212293429122369891685712989248640488740372486328353308290262173555194999332417445001526957413537142646115814095907659503134704424634972579261818169446434532613030096225516260128986905739357707971310545071969966569502081893539647006645188303310648577439318023140872825028642512167867880365790753052209470409756027353839429735289352157276156282016736732447260457667376806417643261263667833194413211453240954637255623652169810707229477411930350190909006298625479253037481987616729487435741166240000876711790169693012728653022317340453610278851820660417713218243787010487486911846916149605718909848383030688690586500478578194069646274445669188905176811880261308738605469737141700868256194344076871176993740257341542791139052615951815844766507333611561582129827189911433481794137670126497115404856387350591145874346499228529190760952045146651314385109713613923551371097210693795654750391116636069013979679825232380308269814426923583774084369815526982500839747174958974289428105041821592327518565018413131594121948598766305345747819263241367785750137502088102761660606685675348771929573017976139078808790972730490193521089324221797759434801481688994648625309003087033915639972266368339469425475394905624516278435923983789107241028784310556184578165524526756210247036242999506695600573111339258012605455775863223673320826589022194026737770310684826080801912141248822746960437920734161490699746197818535245322897173601999220015696160308468921199653353279574431476791604643258472599425830873705249534599658760620047890868755888230230854332037770123044369428389371243116451275026954347109010200344883748074413670369788914983894000075039093216914584221227517444557004794322903068150619291105258915177531398923407301422355884487274228950006280351843795448724428471425427110705881509859806232294967446034951187115523414792735465163465111374138739809056049744288535927387051872699001449115159216676927602178095762989984555930056880285117512573759998026388871133619329454959698120631118790487716961232036570890062507162940294747363776326028353102215593395798082519087133991757470710087641535549704155862631488292011849485780946823906373542754439079407987910580413371807319958392206240815487377951299630098549985111758086246558894164878643438158214219108592312814335537312880492000931394266084683294962283843455393743844064973298024376560279064200991239285125698749577940003025539658487161848085527688289061385529202644752404715009553523116089413665807108786968258962085059760330332732814179254927696283201216570094472128428062907629645632639436061651891578315165719090627622321725131868449185850337501727573999034492843439260520053163783605185056751292246017327651702550091687076465045842155298593125156765881980977076373649459990649248503255670260932652478899116886655602987797735732531645075990555337992038189962636223318413030286827759650012383826288988523551795459514979605982648871954003185494776796900506764540119680465974420505397721070828481670209402154981771601204767576343488087573488453802481543895640423380854963837714206218984026208360490683637806824313531397934055028537830623476479546640667131646258439708762777190186033399250543615680298343627584885566916477920742159818745848059120171491361621620518858902700947467932247454444547542593632998560496526106991139268836253352282332816532282406863507878358301452450297915341401570511067127871963618370350471229481212659641240673803972610722972016164441542696472307612176186076374320170698766566912774270334397562174376405461368394207878779543494567845002353826162215644023049493173901440545477552642658313911768043283285075756389312481717227797105090436747694027743504186054821820665762471462445334995989102890240129793573204661775176879621142982424033562802967713205037290807667845460357923027561442294686337519785388589198713808783977295405014443725375267915365539010240416765398414942960317599205695227974226938737830979916871975449226615199352060432352986247669645855344079930291932611278680119835904471547011582320062401417442958022259122146632581560023047460465651943868938018817363223520971372309181587250714159174285617763612846860442089702294955031704547000377715709434931991238405579643585684189744608243227203412734116884387336051919156226984976873149920714385183715140647682220949965882323760874997143123818204027155129585962197481826576683847847086694708919430878887615446316488481268528079976316372218068133225962995735974793259323052904427675478058202281668217414272920161104228899312446255205840654465595732713670206536868268759285017039243567577950131354801327679641833342854266833747060339018798720956875456624136516082341809088427309205030329980276042193710988011183577893091695090903118755704435694129664963229128956253419300329768152776043069071981811855601466603205313338911700181636571513343987497294392474962023828566896845065901498165967440047124275728580483781913244768921326895046674789010518842490693962325650524674311857637109590241565002942682308342302634164979943114859219513685042076287397360441517886358196748497242492406244247393224997673668564164456213222478735610857189694463579330584779831742792108158481468240873055598878567967939718869730124673326093581421550525169869705968269458997420469382217331977030338147858723486036717778283485184727823577274031316974355181561669185398320155448665201747218661186634840097594129583032544892525039122188593558141234670354324704148155915067547177720214399254371442752621163998481165325010754341657222718304645883725839023543049103795034040384017675605670458867000738420938660751414229841297851137675599470740133495815932930651843883650095335747583698773024977592834656597440429802496604121845740781395774325427059235187284787032756601271806085453120490422702929104230161294249879835697995813324258584031517853194364843236152295439646729727693881877414126454757127289927893857913865269746105700448384300097124391385757299232168894785677661964713790895474763353838651381014384781991263299592896053245085196944367266567697602160967845476531821221053147548723587194029870650516596847572771412447713992257192757548775073586268706762674758622280771592544015669464587631198878476222062106001627530214291451232268514259480699444224109865047787649884743281756268631074902215737642906042847752739529201523680483265719529090748578056204092616180554290144396132597630944009626814481752105777354297317556549016377055767190427806630568750360275818742911614504398888266992283989928401881169123533538272563465272530142813803406963052803165944227805281134102835936744124936662621504949078419570196197679060166993082999329262711971870892876841112047914013550616273116414629609355031285322570947240246855278545902831488876216781118146812128817205754699554482954040947398601707990940680903830811603183419386335811772466857701195701833871266815134831667972912029056264567304708142307109419781070964739096688934687886797045651971376950318506643458726586852539473581519111361471733164185387324140944088622762595833865609125247214424887565520529412710486288358194117477630697642594700136938784544710445359802968830375855034206373923652016296352929354771552290594719495845495442858502411932052408808846157150239060509615986296502044943459546617078242777813622949996533540324063783972853573511008065689921270943871103809290531746538149312390266316645398420018850266254323318637105381782637754841746468007399660335844695791558563189427957762938952931459010887252961467656710524110778614074274791950062714728483031155853275327890920042417011952836615355967966435249935366924028464408493869996245564381823828926876808319342750015190169472587052970937203283833792165771392681388920497166912074595639161577667993079022614684462245021256213928301372869192136222412597758331115454649661803568000305057769615532193594611146760772919555025427299834692576014883209792514139630004663198380713724311433259862626124673320853908470014483321703319327674810684900288401617811374408988416320298934400620941567160619528895095781155421173289711314723533236485011716302690493853396733124457657727077343170842518988893743042325115056923553892947724275581954216664342762684508024379904306116129738423192576916298855890431630683533011121302553257220724331974826198130011265868918748828177022112082304009377456263982190892688614042752274174457533090944093698607194597591438033313795002850374353043102041501185049864828241392274980333725225587274763697795517909927413480463183836253164841112060980733436026380745614718912763182183417128426048234493857612051284087142105186855683480584010626397242522658031218184823114694249596870423441957981721557605686673763587731140035773398664637029517336086035626254116122667410540411992671467808167829822403302359468785015997222623623749152456423371238454220007883500291390002903864270885892338147940217812414350381165407301270519543282601190692796964847428444314554675046384930156175988809971930328456003770315021469952316947810123174022895434493589011875404966161315761540298926920765501781041465628198276868361497194643689385427786737659458416197104776048332861069848831425619079593478532228284979251898556528749157027866383565051730145423686268710585559093747212496252177943422002089669219691728653505549040266514460624247811925369185876127060834392992812736445349230911016122396197053298969404588671056828266083490630342337606822295237473340687308016549281426734163779102102288305341191484763143069527175825667247960824889862302365084731063815246262098887732665861751463572247078406145975393274861963789333160745084047445289570583774711476725380215818298865968101542750431286411168726254988455708271902549423817129842953368989746362924659298912235440487332133653801388879300947631985440438154351773484879169996386578973804863742276733580926375955825470612895607446194833607041922935843301910783018125404054717035823813694765203486808830499482954073486514140172563187755544560796166638101228839966787580843666708814951795191429420684064962525893681825243454587203885773973717897852397550620008098440689063174661081112222996451837972829675991029844130827410500005746092164776448155373298338071032058289900086176857387089736951630416061489723843420277415125674102726959896008610960759672600241162576937676645973876240682284564896523098372089180019561215025145423516745352119152354175016711306757457527383352823823931096798487396017088643876447165391167012378267804351761254423993547020743543109192259239981767553440760694681288105859663942494841569546863802995213158857566965689804551946392824618810862127234291031761294456210350746272751466450227563999636315737232782805008840307582974255843148483279140963903327545746828516892659904541373072637404246547961754675031744833919748772364195103289831928574975182608803341790864444164968214586560735162891763126053603257027430927795538786549514098051200038821616576276431256084027573542370355216850268154289597224605418891979244813878969737155244360906028438485021121727094059830186558752654757344124620669275685227278549313712170428848032533181663611767870914607979860568840506903775904275012447716372031018626063899999315837766379331377773215773532220025757878915710263952011352363670671846244224575831405358282588977025279759806288770384211645589707539186143819808762749903024105547944431127598496215478143544001425302402965923433776586165173675164003306943059133905426466744138767542278326209819377933469780590606545067872227686934900037941182226710433113242964834524330000819116842161968457386127766877532417167573199743988054609184534675463234827643945842010718347774127184031579546948479744396242629375960605244029407923825771285784903593641670145133328811171216430065105179820776795356558045413677381958962288434296883069724965066064391730957226756745515778493716857222880052314430965572098517747270221514541538243969393480841638146822368747466602478109723830608255226077278268573358195645464705673684252176365587287610075725188297627319201199584689011511939509801224912791677069583749053943429854010750667487780850077626506960924907281220787697541054532456913409277337033425051908866677287701558564567418153017552679215253823258968292273703764847320819872376267810858923083923174459400202479850746616947979663394363638885884195507356335353440666091880649081718190714903769126149942060244694124545642016621687691021705609560493286398524543893188020737442213212603200170471383146707449580479825203621359860009086112943798783628208972552283789311571382239796372198514854358984924218875373974003025530763917643786087835524961517155294827153250663522709982962632037622409777044091724878737705338101737867442398570658725680435782831087596117558247478017599105179976788804627926235418783017525469598578125445093590371291011945954046578216079823620488292228555585975422907090438028758487780481897387266344697810435804235987087972893657905032344743627447709094587510335904564159987341465858530212719982399106126165808860794600806260573043794037384425567464196521392909223158592768658851992978499651869290150420490120079020846616490173660483290654643249693379293613733750594465636334458616104793929756233057004859336019398800995392389354389024185044461939454544158036154737428175766792729159806703404247685228771241059753663559258824901044495982959657322105377457959426696036817029321003352429991046040330946025067343049307637635460598160800789426129783624561703090124158946098581081696523925350739002346048017514251628107808679962668574808584389102299124014736885553397648706594231711124015757081898563044773324347673544704204060918221395880021469014403972101864756241435189222488280340485501258511609060851162446324135091436729193699684793110886891068621545660553628011797494771009943918573039966982677292826959502939155698548136120153658535910428600325643863730553204690988303752001760182433285958777474436751471930864822697247699007936613215981343429880199464799615656253542474872337799143237556727946179110873586911912302601651409734670562822117872515758798591365315940748345165312833514293539871651093314424298888864386584586109156123388852959272124490726445141770446661983111086553836174754449973903511601144584166352682866018845683541827910305614901048416258182197442742841072714610388857560391378231208503523484026130475285727054050794525640489989760866894228395181101106403010919528149932115759535663652625390531068238029327594209009511045641122960420347973228345304334707394038008217644900593618459039593124382865545435151596645822322125581828851847665568704999313241357173437482681060177282616786070100343964403123232971328337599997577901063807676402891541443740475413704361619942355986478309565936623350049789329404268119948808315028439276055142566656345545041448686225032561930729806304388128912601649121239303844945534105350828660832060766549900804161981344538731852623433451790422187910363970022759505731835999928490290552499157386207360275213289839847192946423437607758436614596998359043973333938892728898529443207370055656723631933261734073117810729273515497580625829958163546848051994834391937533428286073516364248801489559863250541972625921517509931914310047270002006532469517216832897519946599415520282590377781896741312484029159461069992448437729722593158694959785312693608573651523858229999123537193233162083162990786091187211428394660877498394606136561193280460462715228372947354074322570524975705103618037086976422194351035056429104694190244953724695928916918730864653827620175042819405236421651232451483510907056387880092504025304745010795175123387060294034885404336679310696582008712946532681877055104931345742667457924367352327573459329107375911828263379745022348975849026044285832860844114958474029857470598610126803436867996767439043221337053908771962873145520032896860144773342134087542422630247395632647373423086910731514899040129101366167563223532858527620582477556661804955316514812900244237131302766790718037556719323161954144180740194199904980640220028388651909679316731622186182396094409303588709569333401957492363985170856495157065740385638605386510708918840109551733894665354126522814750440799419411050340277891411287859471563373258837544213176445276022662650504295696900296360723060275247662662956568376014920111634751129228173100213336657036407031980176815243620300003982601395159882409822636465805403357668609248171909092743606472621130117229189971447221200505839861025917235885195075859280678693608878823866405995371854870367725613428408323712179371239387755089823214371989321656709057384261872406619281279733115522930926193900370020504178145758699991027458354597727417838666967201522379677857349263160508511350733967556154611220348968433037283334134580939033465757050279969847016891713084994812925140227603214872727165315372878416623745015247330086150356506584673529882973878498918590300690176710055659123038219033022348461620693589821507086402775207528074887148082326146541238744752582221404075694246347358255971246713616550887236144228857108963985872684440468838203657343375477211624080015717161419937096610863805764201352289066758940006234576808185010444426494967273109967528151267792724674747696822798633153514605276335621360618194184866564956201696364880930743274797779040465325057707847812770938298536336177946336698102141025928248176952898855402958709202421061060221566585120664444440894243731194210900208162670370639613337578190479685787633044486381184384698110779390498014182752997477064538413386129502288300069583505969294720315349715729064894491677694540259485713726447538065141697012899652206044973207838662348368582190302205165602977864472891436847004360283387533047961529963347298430173719535123481803319903961984385303128109874749941313218053347080817681388014620768924726993758102908916228522736892801839504857593486303797767551329875034729788601846345563337136090412709971094111467072240252940803019109940154574655690315845941238707753983478019446296793109989541773382366186673054291207070897308332900345352383376348287578034653868672939028278343703752275561907799540127603028984764858371821509472303146771288169865181621657460167163095780271211617966892195705231600395607695334809881352053390663830968192993806845284482541920721862519013230586419963409263966312732743723990357520330788656366055408116136328785726390717140102527725087975179045957084955051331284633379120786721914644462036551271876660994536005929118698859526509135317264520295955377661842544324061870948474409710706541563468431341527980007767043532939183258855404500449215560843798991626711482997952879050109098656434855066768994215982846310376431988163653693575739486572597856707684133286864776600253061660593806607735479955589712950888727475440654204710454283188643970392603870484229408627793421914393487148551358738705134335286135705699307134849562385039768156169093674258985244878877680644981648102771683631060912521310469377405736150524053429935918183762486551328628704260459090829728111897106029189014930065690468339752625364176818275490501037614828185699756336194121929681054930149615267356717511156998868695499842887158095883434612626405494245561550577018562165419465213220911340636374335017318220439851601300533782316674366210572043562212344159802835849744037650368402575163242324441639347406587902404610372719292304722897170911654936613450166581393198576665906255187493772763888417016604321001934516488190454096621167427887280130165600196816917634010960439269751348797315320482447408184146238800955406962415993446581469197909614284746524105796056750523511565749486191168107626053705797922383633852530876021121301379418298269043063334764569033195404847588453216554205378812162602308411551339935247371736695898178408948907768925804301770709918449298531207848249436909527155476911573345274998070548231881253220543621928852500505972027922913339216614281960924281535724629372119619534387437052896464886885542018022833426649679840050327891626433957981100654722501012785957160492896444114107335373040547340210405194546126025996673928916946097089721463999915374673553999188442911567687419029146321623222931305658065959611876525362810479876716774781359460362836195412565693591660024708475233898122506277466570707990224212858069912286437691033770523146679816877990805053552251552982601976631824509240328456195367651996342770013483544189220365165331259607823165743554417846831434867343649358956588689968009800610014612325130471958897252100774560221058723353193362659674242905515630871230608231480744211643128378540619135415943843927743723662349604579997299211630042845789550492449131513013190146031557424693356429147647239815574001440165598312731598418673454857411974051317931914023719313032045011362506718695735682354551817963210235251899173718266119611474112505536849766468639995515917612048431263937497514112958486813728145257409431281948713408388347676290633096548711755284448408177349793605120216173046030253559218181178426436443629102753705806463366808519274053821431882284410284725491927673970858332477296108229444727089163079189614438002835727169791958638348683398262234750125156636904286672757689959764337081342818475277136573477738443781941867447033067472262287568025389282088962385533676103395568370893878140660482060307860578021254558433425526209874206159504295012822325508990961754272536134271721782995735778841078850346390515668603895196567356190692339505148385742106622342225794485787938894344758830314275121701343759253709114540048279034299290795791457739582917733852429371634669688157187496721689633902932902724224234866820276767720931715111658172837825919853998009383226407569664441816125228199114568916266268592358611762290411539763005937673953221382744698058835481842625303050443602086701029910711063826183543039745678442674908515441204902708091799094883879482962553233935180113401518843976936403001737030103129840619775726512313154749711198310411350057406760320154224981688106856957337324285105772884435800960890497903111700374201372174609936690760590902868527956694641110959247164814690098619872943028363770699449584833599945984643664732170084143747292575167727641419927828981120647448154935053007473264647002415012187510862874150928547257937918603254373593497841504396136872553076745992176291698407010205283343570650870599282701699370459463821430263945768754461981345023254306815765175849548899103526299047019821483347156859366008344709961095313652387408704856715454750622288716500322666134634865404358282458726755191068468828415257556345092167386882358556207308554765777076289713834269352924854354033976785511193271564050716444221355195109430757793830611174785244624813919614276358727028356981086096442073621135619662399332521031424914412014672119121466736818642486882965225134464777149447519924319388367216968614783994367477973334515595367964412234124925305619781295058510054429724321617679774012952980280332129016261155265009121103728770491773959030907821910982144459309599873683846254658262673199578090719339747289864637750803608316045901390482462782638742667429788086778348066889986420196892800955498605983385190181315444869735635193660804265503190193280186082484319728112134769301865592139307909918858876173791508042418626194034902141088961168930262692846665613612144604932103838610943011583458468309536428397481464266507489854388482402347388447974723412479933938296440734675804440428911265555564511276706401712317551097613272731206927746393839315972375524410907966639049080715746092014775281918657499821697819092529500367993923292439746863564634015608677236233071253423760102585218861036764663806618850539471878098700806220855029625571859543320743581444163250851816075817677767741329791093571165463835468039035775310355464606190091993177369977875424671462876793287427917848731888109046066183404340721564027525244170845961727308729667977654264138604422895331890116592685341363422920033607712798871781820318438336580046540302766734472113891845024905262694344704696560821552160967782587045907254815056623640864209986557388852886748388670394153141521354386521257935106281438013115940325242064913561857105379980575797185550418139586091189175719043913414880402567905489915392443161292086296391763714521953832604141070351142195386808719030818336376861310041959191695634283805392305930008715587267043552610641014652007326734578327093641508753557788999262406973657966349213419109161792155031697078801881270376443718958501545895144773724747568352759235035592559204168340935936486301033488797365672395092221992266079111444702480630663989735628876357724184252797580965742742437261432485678054464001105394387988618859834158607546635275878102453922171987306632385274408710841512214949579125179346223085016182628932284609553967183804093647944755657990527386460273637691823615961228859369881224691703658660448550264530139307946659941953537826530678367845037767129475779764603478647608189779264626172235992628358693783161784393978040627106637031479662667910414987789327467804842512855525126030776149693568021131773184086838851202566208936829172755438646335623327394955412372710435351539644862695372667982492537906594848250420246587655937096382884251411686952550959682653296965607688282282396262367937155288601643142611369558529782068676253832224117481588369411066451222442684799734192664403493633990894383476066704738087566387257274332150302052883190486168333420201909168310065635687929379159919783334679496764881168148726044183924081967145420023450984412287255716757935034444798190170886909477168541313906602945871155309913994244102135871041642523199343392418602292407245981408409137259881286819674173846939309565915303291796747480281163517840255268599351605852932953481152527948813887396882022587419066929355028976730646068530798122381206433428180833620757894173229466602260919506265331690102277641066442154464061374518314179530415661003245476163567309909811746333513893487523366579535597181081466982184884396994758286368515877503605355480520593405701555253391755194520961977152676794779703043442270550129196457743184331544536004820323336278147536293218428551481831430989612908002198225431722353962410286816481043359826141129941291427297105867860978436708181922005526559273058297925668902938689497195974720171112982395650854498941946978883282587443637568953737638284065176770095244938972601875531584475275854832585419203996194790989812507405835159673510445511934993921523723542609382960009747316611824347779059226159421442589690634501990131421082367300381832287776865761174747156196632409448221450235608228369257574715654414661071833765112040023400461434175805108228289866183426120960889487531945513445394320969366646476795049846288251152783739125067347833848116056555176342934470308959638516125826871744191284327340551067074842467362016746504233619002791214064365203196777178513178227557134183653309375524244667963861630661425208750313448997255118173841008666138114655026681078549182914642736412266569022032885349765828872570828539838441704920539548071560657447003380182257299395656469834792126779182359617573138225241822440181734506343282006978816798473145583248621881265818933879101234780162518292957380405033735871838631257139413442838906987701556493895453644201711630031783134850279339396793384541448487936850705511295553460699361674386304788699359692326199864600976608585095397850629563375848986547923987037099672258258064700565136176549849289054025074716650451424524370684304229581027072975480980316023506787054126931541373671623701130618645354720418304751746908822938715837933427978860471267026344703679131391332092628349446898275239977401771672915148397049361041745413894458314508650316568818938130804900365509120821954216967916744164575613426493830699631632670710229554761774760960753284110944616261955046646239275151388887920798325451477022861110111897339627262802493201005331780979642734325398081703233631961857457416561950594521684977267145861831665314480633603870638068480517079013748978417913201523435882887201058449976469785417372152879807588763215761267963206065125108605338342313348268215063214641029131357385571156342795691057230841782554498320692045182210742337292575499583894320779185609792182519710254223589776342688934827737030528756045188750964533742403768914533152841482805564839986512101441104581121868932666505174668850823918598844876365650907596110133801999472211571251377234945765223226887386643873534403129143543307750283276274383485311000955657026772003461654769261325920307887216924905160601963587232057395294283502830455174989777208658384037527280682551150228259767931023321282372497995711170967935957189956601520174586639567613093304768931098945351910434216292303948345422203275094516654276521467229623533679796364044030667886643079384489300775418175813044466789916195659108511716367099639630293445311442957633262952460140239437723169129928113421972325413902676024768142056013308112458886087265809202209644771751956167312237958279966016678637353846998883682969662769270657387324698195145938035848387998225727930571095640817557237762241561484724726958924745597940975409364813824590689334070015102014954580093518108299512883444703145114340959289508385094999256554870051427840486348899700987481119281300707202145447220222845155160543367120749833472123720974580337165701313627612059561197305516584563265524858482218481248029907791629047482038981698915865165273430682558710014665352831978795216107835187716490355977593938643031607712867112521082510822941788604371215881432329174323898340984793896645724839386465109714392169348921141379779927663799081795401838119433720699452737667256179210946218936552932021737684636459932670404244360190958849140056373104912387843462227197686641550469028449808250120747326202541638278313496947700356200221209009368073654701794610043359631874132200364753806216951788488687178918556736771896411414252978718108160398167922350107338373758907034776373916066179850877892418684292625538932025793949849910643882425482849104794833263061545841192377722131770061083057245909407633679695125566588815582611211028425802578664929571033689262141220673681690424845439804162639948841397988225395626003185617957609177168441993221355405262480393816415174025348789347672586209342650975211457414383482004300407455764546094668957431329511938851995398272657234528168676015450787585961992191034298207164760249297816897374487184180698767012427899079213789529230755214876549068296389213380002858107931292374680053701392189474051974466287530588054800808674687029272832306797351448575468745180109352725406978767733537942335920008608741944620577480697799578542198169177997108301475783912165542773009851760222238745101138619843000647431792953093448657936385398781313730502118408371899984472254348809927423130622430150787442633993371852486882404331422752884188327476671777135442127095967444792012449135328810378792993292771027661667596144547111220188265396433382631712020287651914419264906773410706084968345025259716244796984854326117545897661977402823961403326420241549955408146959991677727897941153337950812611801655417749239371568061337425560169019514008942650313650037367926673257816814767060875557413355879685854116280011012801967047505742287646029001901656113052605174399058234614525739924401187123654935830579126889319305604013426331565742845882029646608188470651572823358323265493447129031033333148972139227149920869247304174251866121102619301414806516209993030108467143173476434233526711781601927733504331331501058296026666413629610463948542475447013333311460620284300396906998612445448753077064456963624611857964330516988334970405466418795372237858579860733617024541020458934231043659641011133819395391013419775659735805635693330972703251289938059762196263269758208516379508568991543453523674051711623248954998435684359592681905363058108378802261511147979008758809613596358861636760253658118373407010524732489198205179671126974208596410652455858540085622915149025563962131996662083237746027191947150804145612588653366819975657843524390593611753261596498997362746293781148085634428472046235118106168796668274814111154539761290918102431478598296880590514101654889350515085114889908417580325774036304578336147593002122347175210468699317471984637785342213619007206823569255966920817202197766942071325881325045818701884386981043759156516984141779953090908176062131358721397426935428349430630668603951011964991911111818143425391464877967682719684651197388090911845666279259105931741821026695460389561868679415416462433748352926068196976356303178577105824228455684658132715000715150766538829834563698941814001600347264787617943026971168577140738303012417379488830942506779957387881758580754425078936956758070009033290431965900971244689215764095834987390469379558608123614863494664330806648226941809131740087573829419802120943857691932172790293276621085785104919209728208591598628426746427230637117065719820906286572005900957303095331738421292037511287381105592841668065759698217607356778518357821434083945300051039864034510333938928977706298071947408958586683685632186012062549680246910275112285763603631851419187670950628508103295796736829534170608796464706549157322237872237431402586201437787742874945937333147659137323596195887698918809312916148428024459764279807796038079697535119620376090536531515001103548672753110216325810428936091736678535704915064712570565025846404154861323449598031095641942420391777316361409370498972400756020362922168646079016768900513171541585788391738271183004107141123303373815356000824927691508725433701832258172020200174797999545048106390223356186650042037575357201112494172023638639271961865590620500760549792499613156409723919867856881244825450666050771270800056078072459399569200331195300374859154794287984672200832468213728574641198072872164549996383626791198398834687826054161659248459182206613259941623716730056128718558844845341189424911170807598824593527605756028355393846511939679173211362848781262548425617493003951772495856178594356715719262417332208959667544131678425389966544143845533862939999868530098688293282027603297984176670384161091082761307412516504717006059817702553611043178472402918153340696706643066004233709326027978111184799521108904783831918958043231573123698826091528733755564531256690679183201884979967334119362374483952821438528061538128881907339357126591141817069489661374389059874226687991833959276236483174326709779888851174800788376870761217394531081628325439923103422566812253357913259133990670084463477159511287520349945516943992875983957656486060668741215730411959194943774837296994845242821430912280685995960342583783901288111903747346621799968851901448063214235684346725363747433004847274841501376407004883270761973162403563985319750533439460932035240893824445986036392981734686176917333101587216328606615681883562524407234801318598869608192319738680385277995795328012472600388351007390932077713531822198028026021650984509258119208127759467852632320371461898223199435756228518463640295189668105690693150537206410060563400143443803064538774102235896508667567831961346012951551279714852843460055530267795835800060113414830464811487473634479440777280216763331758392267666841761883444450883420983669014619268414166394565157540353319731885011880511707724155796931535750906787948866084941856582757938860948350621436991779778974557638454686298033304800169561323213493754041893665591430093204033532019444751444825712799215800653360178711905815164705799904558035201249159991729975049576375580592679431316466893483259056700384278222090180806535315542841404374233206440476473011896960543108853877973583226035183889203587768662481412488112566340478871081722413756685199166371839490176663446616697052927721623359907032036383360638993088160894026812518416531107948500558709197230339224667808973829099775284268648411990154364987084374672938063208483155909828801074835972491461463476518282802586375778642806662822140868522047059448545409690328950468869855922892888451409230426332889269242455587361744807066423074687804202211619884464414249090403919971252197449748399773498136497548357404274923140682731436389679869198106811676203062768610364761619962187289870482128554766821804737890026676988062880707235478115271849258413199683286885564706437564099115627524757424309570378625357225798530664448774986383864987678473226505490770731896289433243030423723982448147718223532733896241399547987859970615171048917947501368084964976591482554421812139375593831313405288081920169323026242971008314430165362886428655823377466227384220385007722477059694498476610748157686471049423437572309384980706066465733407654455219999154058230287571893534864377464118648442327177945401138059088623692071626687731576931007123728724765472337462433061690958921681437277983147946248756445419231848711397348592734069216620764611090836709462662338509733159091911995919107149012077542484865135748531102134384017650106401815696663181859852235313326309269630426719345674717007970520619105628024071142284494611279672335676929187009039603796467061829210267696506491594561797719151520566652682125735408334526479058825340391640932214743631716290059011512792145404085801996173738171742681990287535103931570951447111725241595864451687352007402829536797554193001399100641327536338649756305720887068932619845328273529609680452490370619465585374369154789705963113267015646801782130410147593025466101956908384113553079615865845767447479611878556245050392578297909747853986809827972948765116039726818678910551682727071216550350376154731323347168080797261656846274392761195509470618435823103992714590129668533872433376109208331567630850166838520303698456682310590379791626993034337287506424847487605511977588304525662128731794015667821535279931766763164416989395791254754593629722971993251008069696242738795043077106966135220040548708075680830287789774428492789010743870029274583522433979875729356221427668051243467813953517097806623658117170268821796636290566488464398898650830232884222650012149440574553536759721886347422566711500668785155424778677151617149703669046606370053614734946091699855224781349961644613106667830280194766531259477294984752879828792365492155283781323546680585528504513060200232271048934522895342930922526313513781337468345316578576952080247807270426129944115640820909680168051330890765495277438427322124204145717162629253549897062082761470927906597433134668092203499140468037963786877303430643072734226910665880780711744678642648496221303492167939132664722017041252791528377844479336321490471762273182064899411331010566885528282079422779328377305343834147048091946372250644259273415374982275569717527007479095719737823746935951709445026835753157574207829522043567884618765577353932782713599235226660861497502559411884284284914145518496748973140745650959811075572385880873635337318519860365736894635600692896243933183895783738430672658445827300904326166888246010607386851879366495262524313786071447737699778393093278577886665698680422388075047480120870039216968151224724885733391231057776934073827405590287819433511562979232890705768887484605937777193567537208425779271755113506187375593200874842417903313628646448002926788034876027659379055333545179790869740837703686819820339399598730822427036034447614370083171013980991346723416262876263641514194225135281053982851385397463307185757951881572392560779335979431403618390985453470237669523445454608228213489261214642152448091431121764927713930163533110920880558646404597212850972913166713176021290588698200147002895807521839502360076547690203873860921690145692974807755582669335099766886238781920081438280960016570719048038632952401975528398059383322692783101513391692483500091901860924976563724686990480740244518584258917735291526021453056692563396486137173674028496600331887106324005752030466873293412651009565924505915280561745425670443449813086464933899840869772983695091259044222163617529309836501740295624069945103010871174190592469630802590548295637461431724413608770792556461058120488424959673422366572660397811232427800632321299839178531902250084887842640135651899069159439123292478505339799413767157245339573614297222514897163554988863210304002955225536427257483606932250066096802785815750330369652825420428726638206295843125314140192976488912509654858749463697514510642974137575242846002153900704141424350052088483401376750079820804772257518442253331826959390865208535443073884253610991745126827357982622923272983875913319966839309679344330296962409264856655722688444699091438715131345872697759824759555251317938727199463296007698969205264755045194116978344804188696463891544447327115376689963941520809199960047804355540163614780169456620775504368529247304080625009748236205311830329081183106803249543862273953203646087802564952269250907604019154681271439134710766306729162353871714629424555931231587735513217737188863204882946876451931249424396171079255060417680093118744765770841752400983057481747222871024358807683177378365761761125942118378312538223268980972104480630684681253702110897422909890229692598066435659801821304310563036634540925764745764060346733506600306424539185836973378978638539107885494918680320689438686774027337892173313058285421749074822502789594352274942331417448803850947969250000864998153370168877446982404475621533455864869747597498576486362733487766501514521815971241454257885609475200144526686351039911186385523298960242038110969106462677721031346368331334290756183755276505863576656366865375795449994990943480213049397898600955245530149989329407864275821660556955759137683538381635125689878982609406979749727576186103252746991669569125403043942026512996876725081384590646987261758494130720772305504123347429298599170466839621261659323873815850507274876501414847481708064847721083046812589050792729227684445502160755220006208438120026396358542756984431563430180303160736260026977815257878328282975476015760376889206154657992939593073333601632092597141128519310971777215094633485470513167852430478050663274035930587534047617473938564536685720825317094705909250032143383647575497468023241711467955798046694179352313444950832964670481547831287775170005253875910314857340607752131564568657569467885740774635579917191118032483524783508890263412413197764926036935594607246519567645080772072454769403993505644689431459774579433716880163956534283841561963486390952852045213157810048975034945223894566886051961728380079558313055305710653763311229544740910861627554398658287575129860362598992693652722755646793994776552915615527839741057454709319619622899421629577683944480536031359262571701840125926823171543638526721270169080930032262877057375542939507808604495346478314514457163085089077646382130163516205001266033124306013561870530530692365520934522114889218279833007834044190902830542992367396360345489638754423320660254233583938100512396530094278592659484739798991117138845675661798734116478969242294998327964046185238779695259195246758842738622887249048286901912924971140157692902544501606932820705154610341011690694088609091430960439497932684599960972823192673154720573736841062486919356090253559456975188531167668302260554104289894204916857106851020954402304269849114832914219089568248825994513387984813212255094626116905427566007716973166238420616087815972001070203494835898951090642026757648857962063417660659827918686027435154664666607224313226432869805565841015615434189834786162501812042048957482954677352449780830984763537768963346375056130091805979527314691499384244661003699518062881403543720739666977645080022159302709673833172445150397915331080184968543141309967879111495091972258873003443706818584418996844563994628386497699161990580041155683142218420667927337073072056555085618514779083484294216309895458915480056229919043346368816947827230348237026325259331479059417345486228595140731796294787227861199165914904559414374388843281703519530070407591329165074011574137893196570586267694350942909620415731548884145931655118161492536870313913651277588296338286375202224237901560790275630700210241427644602407850613473061872003735407180808196304185971711388886764148614896926819283196252038470399032869950025986439444304226181842977304033725632447258075950912385099116848293053044619041053486359979280900502607412182680310033241742297752233727278938495481044832013240209264003422417771911912360330509271879402228733823768143432941825722676898236205009054911794930040062638510047425063598032337265307758993512056677354260393180886781865141605751945177384488612497153671542378204020250462563510031891396905787784723942092564721738634792701573644404420602714357102278764698974525633502312920030557656690555636799926543782560413127541305598647950738717051226659686710288927698983404206440485162445046531473748986428855898179357795385658585828538831818624505483762796732744256409375498684725493424918479664171626130195575698419022126816514190534519808818967679547313928568831865899302919180474679061094075547176683628730244816012952607124882669529223167082655679264487996775016591716677849726020637437157638107044805537780458954811436050938489726741376510015172372812712522845692843429352736012595468574492958478729854432515272550125733625395374014282138507597298462227931679048754546778829632221114784750249337197846553094786494165202401480485917174078827681272586460217420946129452819900006523286519368331274965185341595523088476007467670702505624195646966624963910043720954431419848251573831881925108326692189471901190957541873470359874138793954868334008318559060372219242957117949480692049473325535749870696107144445523183313071311823292270207017226190511540931079544790016146042293729883742077282855319343405804658414055804256056881301702176813117122675496814839411077700377741791913404610444988354673042169828397519865331870889029446293763822716660807454347969010469413093694384683193773916699414126477225935821137957334646645985898860772343245108823407574145363216167832529651986617161012926067389104012912375088572348192908146846800883764220492118053317082055620339671515244191725320983093248458773437311746233367717786861483667511070940432594941030772232901409215855243290376811323017041865077075593294909459889276660405937589678455120752873910996689431614804965040534611713621318567440670628311217735571573043635463899581190252803545886340500335329176065061253608105672100543926520977003428851155103070720918314460126024275008292897856568519270044377999797351048985470214022392688982716439194087691831724524246299967640113611733818318140585172734092153651915057664879833758423122804052136960633596786297618688512014411577817390160876283580319185517911783688500173196990539075545297387299183681625257634783738244241931592203165075369595033628687677848690562135321815016524895694667098807087242705091748425062724428876924051581581630667806301079610149842213719979188493146535631941386655812415951207187974598225486509953197169263162225194379486171010845220515348309540666313733906509236559952922157058802384099760568840682276597901291179332196628000109839375250495833660268280703270262758570463659596539545982915723139303628268239593427578437263884681200814637100309158258892506110659884043183854846119669056887000956093971020887023335367666671483548161167029574050268589179677209026041021759986094204637981172347177949905984022655977064364153074987784023868701904543096202256023253122742317404778122260741666918294054653756292994100390204959380123205012728560456939355875790674626937383266066275471424738678380517943750637827517243948940533054609841124556873928893432556876284856400575262712961426657099677222847906042221791929497437166243131651057572625392828574752585502353756984447624490029363320962226357309686493081340761298404535680696789504359444741175156651409160151947202529134213132388845191824985880454345117383167218408664052199476645373091019934377879508262848723736481986710197177664004728585955899433383796257156561458141400119691859670021016065574605296581640427064461830810518258503956008123491446594847377008757007791396690169147639465027417824414858500359690984177967416140407238714022099734208606756008883082630957321646462656810135594323431772242972707857781188031762099472087512062253575158038812489024665167404393384711666781245784331779767722483395687037074366841260280247653616853710419940320299017789991042762403163754388086962669725757129249205265745264084266683024594652995804323817626713178375102078721537245239871985824872379268945079744597938390587671410126161986419322542973480600830270369687398494376014953418008425861928577443710829066939406915893547086638198460935226625036936940704299706730378751827240073869988188313537415929142407124087574048912465046682708232947868978291302462048309183802174645229754991549701347292536860697076928851275846525769351722927349026647976726904427919650555562132667343754056401867560313332161949838623114699496261428365934091862592448806681777767869508408440833872912574302258771516224187435618861144138961138589236679202978776732175593008243923233866363407032968651218015986015723236343248714229302442871283981957601747343361147072756548737081509280800239403581966810221710060093551855184542485543004815612660478644182145172003298215013161783177139814374368860727367106070469719641807985914179765919997074902766437030154318158784798057671305541946246785762733938071957173712563018782406679581332099065121371797135748385614330551097738554182672497671750430720323287224704598301517657848023304912612220877888268028243658482430749776807066519227673647694199139585778359277488890622090079271901082411256790592219132708631655150305945633647564908445402165024444101464443174454137553715574235456986074891653248182588634419313234993009616124011103075434198864270984152934873993992811693157432982677106630093414837930578237624266580468930413465552674036276937286025071145102900828878888895898603909784668393445230532258410839711373041905104520006574197667526293335423380951257610723161041775021597669217773762599601713790040613451027204842870481479868110319186097883831408288223874774367309652901217407219529698225786522176352104800046524428099218004112145474673074072469922645485942297277063634076294662406401757133061080014361627916586437921408033090208052699959291942881756758182748694121401936522612835692134993948925717547890517003078988092808515988375342047242700497864279158025422017869115413234100279182698164185635147258610110190737117984910315460025324866676703192333540794513769373033226653165501809585450330817205209437508378989426643800011558583889156063285781054001358043270535018668855770164965250930772141808062524482147196574417627673919497643202426279661907715597017276450904475911532849128064046619793706424410567951459342287471937805894233536507706565363413198326133625034302245394873346118184550026607809358231357640870853909016382931678051552201055962690968265807410899286313959871600218158944116706108498048304988045954900299085231882038715026232412951931433490059034126179926744650567914795872490821269316035041783290688478867947959860484673410702248389946551952903500737055945013493993587528594945797155977351407517831211024997273155730066234520420987977949538026501216792265090090922288706732650023304124304254926648463423099168207665642544718302560667781923735977341957768450756517692272616399108717626086743980751740640241792020543033130401668315949693389000894334891135782537508792769361172260158288949068352430906846509776864139767088799424133967877522711378128698162792286709266576287980724596017615283063577146451169436964080976983795197019840159950729188740364933712892778948335652795397185802561242933331808358256935744959571690685269670713954832282935962316616933318640729748783356073387815902705945589123441423657702476393333157509277559946765422708385040849803902726911013319052694988635605098456449290951528036964261383763592904225754435079786510040273237743704272994081252081570517474640713998986841765450719962734982939758508208962315398158785286652838786009580488189252798845874606877871332869308782885137188087340684672825290887797388837718228464813192914121538034590683603190773124064337636070791903375984144880961642607714750481708678322332671660997770191573883889685256249315459132547548321165246331562100542654196353219855943312507502252728521765355950928224432304300016466059009233671561194438034474382454471717117648081870954047959499234277175465552345591670465599861764299049789013989988400912847410719437769654565992596992224056084852561350496531499479609372332535341143062289078895800228079169710917149307632066478338165895466683831823990100956934601524565267084035589450859529551170744524255020868007144213091232460177230816465770561369295151903769098853673509899004854344245296196030622514655504100503576465609870721746808431537973745067552642404417535975239768227900209690077606719573939158828619704408151385571205088943676232435194432895470584899163791177078359681619878393427966322064990363134443081164466375136550958684491152385816221431373614739106410769515694179141792378200554527730398664685870459232640338983083445982972942562239370934622843049441767452639283299775879735570351094595218943085683428153821993265232475578700516729826177022351032715062865902858595123265055291255493804839018419937750075072271278490614151753003869448060547598571074808193001223050918111692471445604965517365177954729457582939742104195225513581540881721820067363038054514147990306928600954363337080207707971361310064865629335501135265214825923376457812842227514963715719611919170776004532636762907915681344692982656279985052254595031245569906139211877669819468845413952126154591086058022370018175191052755106158449789836891858437851669657012567109691666091468148787508296647704909267474259271830276632777289091744420947507593984919692139629429562619953220674673287877080055702818081504090895962576687817417633651475637591596495704442751475002351982587506800941757045686888604895621535800630515095337360002537282004291955576657629538359457183676236752118546333999054541666216172713764192509987080168806583598123460629155967157119245432890411477006755825628451331423410058305548866100705029225553420058582999070235872334316804882894375284384910270060890021741608877952941852999395336274446965855712792390010403131522942300085648617202932511912071767355048603066760584660423498278952176219434147881383544169097043084092885032700661149511860994635653340715347212504929488328403900208738024323861347891018553575373150429554408054555909876802842838769305775780462155407948259155967713370045611466539914982176035824348709836411463252941299561231768099756584306635081424712422198710261666029048365046926960829895471139120788904920575788081478744308506481481167208314392706739011110332223924768925462289780999709699815468212471974610471906410975476397241613103633675919695306648197936639127853537323964966903578801794888481837539572988603369339022563025677568310844072281255713785043232179508472813565298390565109984321802029455249333261773257565465939418923231218374237466075526352529275173249063332050549885196366143793349079685464736731926219304097921225454581252435570849294021316246250975332837024644780324007982695114743070022820054694576284668874624452455913151542784844491452688447583374917589726348894415124617490256023165485488890496427797428332640531880905456348196022970217328185587775974088512029307818763586571733931532662318796753148346849399036547358578819676802192480962694844412091405760375500238116111282398946333169485788270002149144747625558958899612330690823614243561944656689752536696713531314647897709005814816534066959467955779431640391368725962024567772672488403585430105190368064046912877877203557497281366098886158826704432902021893373466066138034110163852006741421099512922927847447934650626162395801360291816111928407893375340083973984563327928708197055554425162159896844323670523914200981045360411309609341731602172760998334979131609701845158260498888269559873329168992999291918389718244489776113554207370249395802903348569614299911767979465243436852159898072474886373893804109235815014114994622129367138403536998009683094467083962087379560776215324546775784088712898388942215547878246153285604096668236086757575586444055900374423582288073731973543994925164038178676263617917347159719054782862259862644603421149504119221293508245482312216881543685549645178480668667730940638593236391738172610205104746847534325378125398150470527969973466908292696840712510887803276031293552711373889102152127760871076811937471710427515611725641959618550143094205215189846841999023037713595013851004777310063265271080189535977396643215749691288417965143713263743319863712317342274616359761069394453041639590829885974952091834037295322095222828705874526221859867906863587321345154366559909675871937722091424541846809658969329278180193619343336853726461225099536259445369073463334801557232611420378840935832967752910906724938480201343545880702591306999837942266396400677674440629125897125327391669864157097510507805622871144867346339784331367377480865949107055566050882264250376168080194986225443097520399009454734647413454003399456755073521982901801407709440284733101712889955613415614493684214469015112925675549226393301457150434207349413155262615868283272325078577560889070398004840494828069937497067916734214104073381438557557010952262224256241809901533491372849869748417860281888641633583711705915235262808075250430581660227948149180910537505475969414744033423051588207730462298213347486487257851753262733357363326061078641556992672577310630323392079687655049551837873887786771827414564901632328294383082491352985783931069402581088343091156585581293939590945718658097089976804280731602232850191138178280941830748002407421552115463021874301461506322083846161853358501735952444000955311802381812594961118310641330495319614900333133090653424495691726389167131313577253921081328656636095032400144348965561943949758858961248427215390415578128637179480688533960748322635975298478374339690967458486690356018160560032524932367324639831665680590096804834675517949450883257670407801348335729977047498705163845592450826554204571560054958584183379835191630871650884825674863369088219101131342019655046822519318320219554280766738861546691285199785842070173258921318915993337619446440494362957916220064120775743875024896649933806832475994878270862586647090514376472879191828319321038101488919182266997996496657967369910160110391540080621782046521983923247604333467191377932874280997151597807893209838409146500044894570348766070264931279302071706620396967121723758358601549857631175288798157862501558842008622634631585585174319839920816739561940867644483566673944322583810778737468747969154218275473624864839522620318281467547564091658149594421729673583885035204223044914472141132037267271205753153808331969565536708686806400268204143097639703551413672952713476898774557803739943832730719523339673836154785292487297123353619705586906945561904791977604866412564471390790397211997446829100717170450583668215088060535640935336142588952449606969969468288453782468553376375740495023759020061573934228032582836866073979651113228117207008431867377455372534345826588174898685496480078711835234775251761649184164578482131154581884503269201160670799055795828695636521149392543277029055335784675626625285967566037987028501110780399103558952874586818532365973238741990194200391238404734717972912653314922921204655784085374455811827694805128348898267735967109782440488187531012186310396599649649541079768037678204748638085177750618372829584182086808354765765130158672591532181833595462262027072749678140020208020754697092946698662388017331974638610837983864400986638993884144912369432700747633631986227751975488770194103133742236748582106217420487445936941799172698803416959691354399291759519807281826928616855894304616498735606598916336414445049923541199100450495779360931493136655887492424274801994963434954886102758366859538623466542076825106498389649403645746574912630020741455801269066151352860784352888884203135985354992659858733739862752319728565190883223788027554620630095394787293133103233826629061243539440027131214785632909620778887204990426242754518476338249338085420231843929837007993114677790190630606808446676759328148563960433852229157442474240712466264735698719215402618999887720169174685148209652487675182162073885280756031840211467953470110968608688297851791136003535495774242538722770504062947791134470157363307921816658442471479849929010509772585518174348594240653300657612536711555444725110444545779577313479115284726748515565361727747481535429220156531585854156150185157459709880888361415963350859577378777957874274373228339130456036383569371175438978334096413912165112198311080695267808458845967149240382136172062870281792843613850050073220309732127018366005816365588429300252609310885940840634216526324591628163290738180090039613649437283887009253010850847537835249319423281977334779603813476729732034984269660724707561277963330002860460359327754638582420858272775338532728041448179069439231597671408398524159964697047941382519704554778297157700605394621969394944251240507319075018984063638689780135024025538866409163618349351498996123840547947352377250084548979688710400922675954032108769154188559992681509788839420767240075741859757496742191049911386312148024819685084177041291385522653412483657110336379311218844826016666016990877683714028965527668015792317676855834999427877661401969582136612014755437880583096329504772731372031153538607910933804356621758584230161384594442330356368431548517611851067234606380444254207363699547324955037023371086172276361505538868532688656098017954503150306643210280456959085031492828511455521063346657587193345290464725012023477236786551606403776083200870942944074363030671662714632625577033451781315842766939840186462030370735768316835439117096357833678600457541344915278311777668155081509510085531589798597511270430687470714116312343391164849792137172314212878217190679953928800573373491581554726866364533762505528719901461080723113791539424020308357617821804446486155141088039994408137805779090405188929833238495140078422415024723295661951129255079809359058052013122538548951329586852812007544203030182766474307065487631639259035196473609354709124756411324230802221464955747153172421262479756317052672718414051126216642775897470252962877881361866110786663758703273447595371782288341520094968393841575651650572072768771472766022140580052061854837927828885940053273495077474339198406523174117188756263319111132518771067049070869056292045720289056973625715161504548843524044556587467031586842580185128793798302244064795824306198623850861734262291861825410183955683713562850388238907392833829005871459755284383893225562051103501994743566200155372611615854798773982802653517056741640385739001488307895672534189667017626317414555631265141476566781079456668458618935185828698914933813439918197097682583375560855332887954960439759926062789707935066149455619789881246356451433014634656674830236563205555430797293809498467068304686776458500666373635212662340078051314919475316638209406668121912738713770953479610057281141534536800892745056864671135150866697266143728048022800285624756128550208309323596913137815502734130775165270131484449963417090708580853344663804798235591637395576153305645152201073348081153615353731561925425422060925565462043897222039798138600751756115896615365970035819700843971547610014588729907043257108801712514345087491777196361790011567366358542098058680795191889814884640712193910307508935473975439631539035681985428891220683002724744363155697643024942909827637711673807671405848845889367335822216650674387869096907397111741568278648366656323880478002146268597105895102171555759929708179816861431105662150047621241428971854432484488335405822206740954483331895432063382687472424118563942050229853922297314965876981002123374651210352787873649913646328286447922227815623746008114702510657467187465749612780304649718138076720865025352509679269485776880077615481717300346602450052891423426320768193853363345518832419066334021843897313601986658129300372289290989691371213175036433138122660818444203745490085578474737677871675624225784803306800306622467663555507305206754000714216801442231887260129829908385708340845724443739076240875837336406538895826711936140762652029604303660184942633778702479590995829769197748791645187743892999271895784229169236322374528591662773099344359160624527765416090434639922898142480600871826668421610293302215798672250806121212123996483665124885237063694421997628585597616784950457031019668319461432452321990906337444808428174124765758465156883683817871053000308816369082734465784293468385873597961737980172131456087472461556334434820252975457153342559008204727873677553644622063800537195318607043314195742529003583489759528755940090097108163427515023049760941224531267198728035117653423401676400209300459222061661456994680594691253014803071920120261291824387820262252616692167814743733592864764967798984505746777065086857059018146793818252778090903671011973050768149069302505628252794794795019407459956425191434780269445492031278129672945173466249766436458196583521253851035833324360491307473215191030655391183681915945232677269793599823219348658255993000461008729142009327318074734149064242524139030304867593663018337646132936059939534765767941375179351363804616253391548042622109975006717597073345476006686664112380441684993553028336327294022158519916166149795002837661923652874008779057911169844216830032523978315343890726462171471000814513950095455325503794325241968288504461011694999013647973934627524441832719997770149125390605335900395395229546766739691745158560893378286011649617871393021979826428244743039034311706948790529730566717897281324066236896692508627832169936599391688835290880840512544778657757350613926357552468411818584950959333640280506692844501235124081357629665865594105275551667856849592916994589984455528990952116547858632274625548391442579882326578938661362202085727582002284359527849476854170515353270488071991144831086876217047426560685775258663249875506460108442273077522804488976966278503889352950255662900581767724585598650805523250202614921199362719023860606073223971355880140120623683636735090374937985985282124321712898805630893480762760154604891400190352250591930443341949533284877116906750504519716779718534690904133582231868879267881880711868553972515975750764492304155872112373085183636653305246528429914131717301973707458945283870516533087570365209097449144568953631292272102673156056336617667928791714017177713524301173250644275810381613779669966791716411654303166919654834363608437393525281022759824624981213830618680459457962422555390623348662582293232248646596218463332910617540189815286663888075990475339247901961462873920687422331078221406971605747636222561924453858282790569898226479507773527007676554208061812665194464157464283943296131607097276925442937778371401703718966451579886079374694285002526240111426526265325214395285164352089376963402961170497747301062345629286674997141146803530373228165391507321261042332038532947479825258445292685989578933351781072015206742758711559547190308273514269773623563642902831017157254510218247609497713105325702803515721449162213255400293209430274106610507044294724650745576473584199848180870126327517211299951197077914120001762563381518115141867032380292817523978061654657064571314353564638611297467760219658348169988009343110543551982292558017313764986038594930444079021163356568264981958516277248189588868533162059555556991755387129816497353895128058298608219435786250529373580665356599512185796183558341965796406808931583785865167991163520200184738591390155825117454780317684516984130189181537163357271874213807946464909964949078524459205940417801291951964437699319038661811595345572692843242130096755578990732457596345455664928492156448203459157318114946115979658967722292650240107401078723313264337920297459849111819318415413542585150618891850676613466808101782458479711847629096875170652638081968174993270435167010387912812159310592807388931381688216744086613618801369478886119364155737705407207133315920156202016874780088622102849423278634340171041539140982126059717889868362286730574784660662740018709419737140598308959185449759399893028932848202949923140916654491878442327870703320328536815402209143516994136872481885967519012438945514948175894628694633698043676222991397571326449141267375191813870578952544132456118358791236559403818663309298199844780777605449707040529706071185253707034250007637175015910077111394683034564526646555818175261898883965093875352794903226139637618233829923393212517824740861200033591465624366414058191314515323425127467286565399161801889773820895227083523550733496932922376428946937296360540530809059048881497950645003110019345508509598643075146744188273951503617634272638532035387337015154928791379369714710421145305112498847589524337530979520908362435428698654282200373965254295131556608522089606573018689579198627079654731275430557294042146085455661977979557483194563228411270752851938941753693591430701553734452144657851034939068321245539279410493989913088156051715150978055365495880197693677070433097547416566193909044927204878050774590438786658892598299145580499208314000542108905067650825687043614871426029007044789685747169512166285538337054839601419429207512440410149786710414189211400741524151350260736999825396183952219933311962377404243145040943511121546036734270046826788726497192798724440421831582181163756514374940296026806128135518910353689145922814304146104154436783917055308395931388759791114172563211536604249869327130269613247443935874475100366081569545087137280887369539195521032966792140796438629227493903284783346154550104611709056791367675707630700279405905529161456414015233259273673229568719362117771540670748513802368242483979538540360168310885522534223574506200718598579693287684409238202740360312938047276518241848609198543106318478697635697324687085444558757536709496091230372041883990694310234918311593336306130801535284339611714489332699156604978987142469862492915959808007866715387734776885798960966414923994030906904853638400592352285307965686153225000923755385082978828066826975051505048547063607896467521412658023165623890157166408040710923760776935255454505470448556976246016952437210349274837915863031112428645475756673839558385906966537117689421132024859797210795937128331065212890895868007318133333676650422669671984451018935059856050418272090731437819618700094072274023295998049424229762011136035372117930017227260379538714758968481008187838464943601317273890756282498185203055119661201837087002115691878030761399692855931168570047957585621756769875813788214612872925840084568418472493847901410501174898669437229217870630838641795674454804591497839657539302329835805536296596514415630887607185461607832354225130439275124370838429361780335569919589853517428939470049486589366736074778976895564016763250830561575529711627390234299107555415686752984450749683589303564941979830201820294487773374108830872950500530922505766290040190028958042281389458416412384916506583218190509016612912385396680441038202229201565055012140593166541977896268931184880321925676503884091636202880109821086161716207773645368941867312794425272670282111198971357533854976578962849333186789417699456270763069757515346048750930278491843437543770052348167939679013365475760419802298728300150305219908831335518161071722405476913329979690656514859831143623191550899758311650082446931107123615740119506713274177344661630429312112338598519699137891321914540567904540337367874165229031576007460851156577932157088433877969448993452408054137520185553044925016084585576858696325272281527483401899562039285872815911998593508437338954374736668629352685364605483846118138989198683996319989762257190658622668759111477692064155247394887390425418914671379267834419657128726046108501617228612248687394833150631508029580930348473823343315920637384351768986067728906284284790195822779675934406885837044219556014413030377487730085933920460202042056162776119512596593783037217174974040582009225138278885447803880139047857753111721007387518360957560753454838320033290806111679032457191380918641046722207803903743197129566788731914803751095503554048126399345327574292653981741302776520308855398921420266823611487347963910343824216282745362600990250843091980977752452497998818782679772722695733090751938648501981642143502205355303494628813964990029989094611814166877763755908715996986115919857076975145383847770839853500518241777511452947624250905405336124332719848950579028569758246994875073194397440078197801013266582723598947830679552855571173047154332649151795865906999077028338523819359804666407332129969340599574413098593288694460292873400618417087141958116385504435726324663532760116130458201500821187607960113216794950376647456726052230648844521562448648629571774917283630448536299318169110572222684178139380217230902177666021147254942048933487763221389917006133738659118300189050802186567074265275765244016917580343341397464164815071546985836343113251075754568390340858714725969557334320126949657808582374115647589127614144446471205304679849065689562757939879610452394179143679722605806986606550911228183008708247474917452819302355584199462181426987016640566255251883399203290767141580955222216648666786221414694885463936137656483884425452611367899832741640687971122359418792844193690256847561759433342566869497226582142323579230281371022644894866488963641448091274442804710886859818290179553559243505410957145707541349703202778255857991354941948542074890312637910807405260287911616586788829000720139480998854168550569119866306065654451473204001829537347581053546813113681389397304201238967283441679093566701061903078789892166775929328762300128486875886211149797513293378125756955182591918043032540240535263835952127317028871823403804310663489779876474491319060766973458102945263945807900070222210399125413555962784882921446119158618171588766316137513673824206146451424638508737342166781239295632675244532425328041522808394753232390161390991545947471894111105644944652278131956209614403782463338479763310755864217241101365777015697083797081619796419500191191555954232573412744924182139018347408909126709790634270051753225219567892292457225303284818390408210601320820776364088776177086445914511739281258076449603556483109913714620973165485450559455204969750023499065337025257020651664375947246152371670872458805333920574027189402551487598877049201780538486525206886131513670634186274109531705363645853222820188655475018749240767178157126891141523075084640163463029289801563470040984963572632798764849526118723400747695442680632792391907556042198531527500698205183913545325386533720630802940714579643428546380314352683173514218062451686498438463851059696890010856861221098715438969329012970552778895078820414374261793928302666695172211376749134489453913139787489705355054338316285630204860992811892664740151047599388867348651351772073107021368422955733035821519869129946964710872077397790226863746124379968903421667790892066323365881079626629742988035512867111698431941249827255723494183830647846414058692892023917915276350313949964462850014879112766528331831863966182204327179767157817781204204988100011661460578125037761228551870662287196863211233896755071908348360782393645113436968760175653105230323271538051861047243946223624174529114012887455071702592898431368511020879196212626100034554414573532075087789533507122460739250730286631438359664526381499708168733991673092637008888355131179611029198745730873025161691339348527557522389976045406520605207983377930002913585307510585657853004989837728014994656518282530742068449770779711975940645605246714864072208944208979019597488421048118765960142384919778337544664256402240495261185372553004820478600918813826875182889079421261778808663293949768461029646745141887709870770564145920887595646310271194437988785875034893064460924421697184824189484751917541158371610946986456834587993944112551998525580547038245608621311812940687598096808013938876252032344193675510392500889044612506756919671270161817723902697187115970713286159295719299147512464399085036795531527890178233233677951324093344835242645062183154752173786923073271133373831846779603985299200867184591279145573736297501466327662690955885437707090240693666279490740622678616842090625116216048707298498778182126225819998213662781547199536222143540964821030687682045909096803958933846845910706425391232229092011071451267438523800709825285235050999073444941468491614155505054252026506714835421752544487703312291728540385838132154072399465060343079266569357265424409362781533814167414870554328270335360783379953536903370128216768385184110826424025810311918322070719019176549534564394951708195234313086898802075992581187508553586853677418554184989829798085172495105648615167987212477918265735241254462470116387851705676231180479449019071721294968652181949072628802034883097762215985098704255384907352228727898160043008014974568954214357778897334053600899145169747925632346740124297651429384315288740380989015116775023769707628414251198523423910582269253867106383624694202543312239108821415595041616383211929632845697827477354691089780644782281273782015396814717859378288743472115749528705021432265232615468586629655600724997272391680708071619580237886812602839478344307069779377990776047737198749741204434784749870691834478373523573618540379803769802060643507901882735342858287167330712406607598953280226998918052721771246738795213357017873908935906095701282322276929709720673275509558068508637011570510511060531028770196440838670990395934043329008782929816277754572374202194597024128894193898086859961979193884054236246385350555812822585436542951414359476087091922567085461339884964737109697942426600789441780370208148194285508011347673227527367440063055402340111529802198663382839784519328129017223476152883946767717617485361541826950838318697787348867455091573861774071709391163319758407039415409237823186792227669619190035029557048140651987020546917418118528488584363278513264260766816047455426396476502439177034037608875704716364954208343211035650992260721994200768083638944113363517374406599133697574512677673754076198081173877174773104722350977845075098469309725962911679282963839847894882325985225260478967111001812045132285244825009345319539976537622988982098559073736900214667985129390601371625372818475698178900858821441671132226582315066859103076461491089895770349996492630196387826369815021085081965331485737292393961735431715322194722093241366273605884854313185789831244396222614271512743103025354196505618812293953057981991209857064987609690650347997792965790341332761591143010699041408571620847218439991320943821992426132270384223471338022076818673086302721257604220548905557111255683921831262144954209791781535184134534986246239752504289792340380067077002332777288720557258783264536133654302407525345178315141560990916130969685148152070887396704130239226326712943542860183299314024007223537655179245013769469777335364022437801534649530382219497871766154638342133782474280197919225152444559300602072444944481001494295684482180688299718478177689673462972458646317760317570940581430230281709066743417269127382656085565562023784963707792615633192765074966658105810194639407530244086627343704174459571614788885167129933161036819832901941350594027799971159160590369518187141114857773092940261237547736125422454298412633931007029226318386923523667283738791840823120244026190307309203749637375294085592441178224960000497685207299580920187259185137162456491774277021877652125493766397909754807219703224095214312011191243488317318668554554305727518908876022212567643643267083044939054145667089962649106764639749257239972286077705108950453820112933935554639548746823616362281602622536895713702837395819647884513248443696274724658226680246684226355840800524289764604865108096739967696088326437098425518477367098310803539755522054701579654619298849484735669826200039813626683404893714845094178841023921792701419022458739277705539839706333109068093085049922212880997537757863484078353407206287318372816985269631412408061494290478432907178525106861832275797088785540273402542908639759265130552017279895161504587243765354378275091668923577348241152799789058572480066510119001131883095127415310241361777055604868673432532447883002200391375717515361891221457128138001251414272826452137441134671198668163531806855224961564892945776442419298043699746083224537256315887747323666780097328876285410674171487955001532892537454040109411816595721799749779951847761373640501085050623162350622957637109323027595683535526912851414227102616947992469542915996114543739103126584214281385231019662198770184726199467972526709183928967938527408613243350179068433456026522230596023722069544645226505790367286221368589919462601514753874647636641181741506835645117902258689747356797907150568059324265833016166239965803900954507002377010404273617613887868040820856261503226368452618580578685919382069982483655521310362775106675237526113629035723018027378070567467096553056655263461998892432750265549490796304050166180431645559571775790653917034606813154488501931522216921253530375890792300270300026112142553529375953663955375062454361157625292184023567478176398277088295043387490526074204140204190406215584606084403471427275312957201544785049426531591527069577039712535287976046047059141005534838676751874286406107132407469897528678770837631554514292557243959001240039384227438871915505454141652761450006221322173748898861620473740048347257032569210788878345579020081170052933934455409004953025547359689771098386270069735652480166215467788441012211399147758143682983847213675185292190741512480189835213862758386959501525873786745561119530485301679082686568881178841967114243150493249845115349447950027895576905544902695048902386186854573608676356298320026134899525390463309918704259955944793008971936181610381761888216642040599541213526302495948507433328475553001777600961705438299775049811573275245337182104553319058119327316028627830748562942735376850765643756162879528778656724986545868232545178272671407312894274497079709555189628591275842270710744786265133131656944093841228626889095573072903583688316497207432955598967646059403597386914458180636175308143659445863497995565107516407962317276710019987204102562997959560048171536309167748976768038683794455458921799814535512125450207636957146371211784668262093796375077458893668008980826119474640350599717459581675254750124306335052144410211027009202381152017290328694732612027186513491870263328277295518526403550803290140169842991812429536780770354347081762413991964246452927478523694508131143974882697965985538688661661876580382844026986923364289576367875856105158591094369977238621833407217913867570661503988949110105785140776819981447173587630023565498307788577243406255109620690984289227195381972838898182966474416982948692102832971760915531826126709290627880734281299368473753488136415789061156697557608718739854391703592770805895691517234496740082931255696490533691249993852573942508001045411883663064396410183942467828955001694009877384005620754532577374276526486922173882206651291286026899276956117971384705858726329713509791769919678598829943232363297537711511251476522099262175080105854448065462491235473250692514372408151252817431619975662928084528354713749427759645173911510570913197508315621478285047940778076952892135000613255177371471347034616870127967457753555544546729172152427190390215738544300863458642445350299803843453122734165155524161442353584017559224563772593762297418234654749105996544859797708214722043245748457504990295811318396643131330067169344401858330723245094816997992281179906924970175798051603726712893776186098795791477514406711236501224252079312149294454967246109621678933582291729482329752905839171062983745277623719447873120004789653547306407809632261498778632891071983807078163081084680926181266289157854938464713350263989427901338851878146961575577892872455013959357549205680592162146927130957134227204898638902850994187342045226069061232255385092070369307829616489268921379564329382377551027078419653097828470893686797576103465316839676108473086976977933323808977065227828122378411717895935295527998392119216805679838437487931225130538997928160795195877262633692722362442996049817604023136313805118136550979583556705718768641418517804721516389459061881223939500441263751843703577593923449219375493222879204418903065288911599265600762032009866814066377762473498446379253430153647125139804929888914483077559292223792523080508165024126577410283584302624564755401271952410645791149300690362008608155309897328887905200910610091823941397093629153724369417862071072913552396124350795312475740539582626387034594610466170005212802191576234512307768273211341165969158769685084856532245749622646866894434605505673047742027884667219730885487606842051258412149821410230751425376511399556264208432945217121468419054476713027137233444460283588870161305525700367788085677376381833478824892095740080346076281896083129144119790454935121429614811737443555795991896280591346884264708094300349084835084693847437526305198812113897671540298044224338998586550320170742165276868595565223732913072260361831989192289085090116491951898035905636198919672482773833472338932867012486805241859570732152525073586401463157100185421334487727352551557222048975394299025425608191706025936381576446824531563871099372818817730115344806919363312009561530273467889430340013235520705089988008736365660527615005404243416310224162051241554251829754670164616779422624015948220529850875422757774569705992355523713650910001283850005678261076481990440726464879758500694724155752424220045080000131969082947949629854299021110838697323530886159426799145148333938230164994090157489135351483895451063788693040382981377514400825982585487178138555237355234672660695562569917693315546448435486337570155743088540932355326304236972009514697425703954976667450101582855540345036655906996848195872425270123592247668994162640306929403466752761056326563365169226313947372933728698192125367060067344631587414330691628977022106268740943831407557186215240803202793508849803127443882131142736825557383731108736814714971220222966244459380667760254248980564286991830197639917804446408360151974907158770337380605753153418870873087021481316152952017044813530205283106038389843294539724169130005778486249712282554324922413577215259777046406489832960528944906995801671143709091788019508910601676984126299705905258046251881315752487398407857112059062574330152694335885675139082044800798719058139655870354232644349883765844050203524346859140385337773693421532316115441734931393750263232148138941737386009890918586933291548726931091319628545714439488207218358332549684740862642135229921705771296226526578327199379875459515427918789631929996595056524228912684552522499592888647491110483793554304132810977211886752595679089476895240076613838803213964799616976310054598811536510430814698871642156812554486406285362840219953663399239357950923356772847077096009031921125227547372249654932234633723154929727027506629759193850958055359176142837477655556167217776990738652372171608715638873447727765714333255161391368528824414511769735252410227321826308460469243936626300092403187012656790355341425842951086783563791889995011449609331245357794991695012691758946839769156202679454187488301426107192212436922659702213768979116124215466526194596229938252041775504650178840537934537200860010063546517495250914186378970835464053430084061431395487630372402713361367916191020413436708023722275019156702185542226517056473388683314458959609321412023436524054618241458831913428776724291570754268587007538875228622312535925696355927382836575476593279490346900313195938244289614766252750626601904916300014643548253296485445300040755584052468720418153955874222367478880730993835005904278409671671925571481245761729896655373792136502118789988810845092159498019267451521698940401139340457197367594505084716831068228878757383541111090779711748152948453545616222915764086816787301180158876730342358324177071517360373469172745495347242181985495777108410489948050016135615784452417061138292820551787311244945070021857034615140169638356807252555249404382363468772435382638865480433617394879965281554667935777211706641131936174130776799622734590318176574641935890001757632542374227989799692142638591630755466543415112101620847630758408000147745657041035062559899190980262999716900660333245733189906802243677642182532569947841163543323476207488466291830635592246479162841697885971448854756422169694162774352855107391938750425758876371462517282995690418349991101682065335148379096457795448228689161789484288319806416548113798863546973031353056824862958548268285955919100435356939912320522332116854613440470500856646491332269195615852149675007229344399266865111169518585513723279353805331446406909555101803051350375776734432191704645985016840084468853829965491505118147773672421714306435184187733376230045698069804832716981145737169313209055956266088911923329704029039082492364385199041412877948192788483222984122267550495612468282842073593173789436804314350059914764608416454135410031913177603583913338233443947417074934738816052665902536651290670046507257171374884133916427226205460860913738028862698142431864871723780460033706746843353373838382055790651328549258699306274679110045945263963333628362648921453915333348097561066158791530507185927455811342918175295664918894687984501018287281650842299857150800851010601884485321324773451576375303607866936096468566129086760589206231600764498543398279831839435606596163651073477981193116639353954041908907047210012808105580986371296701532099410591260116592656159218052396385785944314458011043522178084633544856966785191658756101673506535043485461161560243976810523591756667381274924434742138024992272454520365512748121966772999024809112908799679440451421881363450671981547322048548375845803499290025283906770034726849603802760793999883016258978433042568462246456089780572925970512148037142676398552692106810676840305982894896519863162598041555539267721705648760542967176869217969704346537385865373016154233915864041068586717867197122609353909999853540995938081462451723056347861490935828693887386549485626526504545711233541912738887467721563728474170346582435886116590283506751628607841075571738603881144908562350174217048786573093037518303700572610759135654151985152518834989964919014865376243140921983621801424725661279025773747590569347428787637875794010220679945816798727713353637053598099056795769426575515674738605037241767726411951672743534840785536275790917147602410067432549898831840427252969155747105314783797094599752167175401021418852195303108107657652329326904705706882765783967952090066738066898785172976238118933186295174284268753290785481071018908631726834137928839507268769219118801351302134451383174762679358433349491943142162804450713693202550012646731165796890638058619639269852262417624320636585749213125656401869789881822445641451214380773259651952454191940372505053315066111939811550740280500386934830745804057327947843725683589999331009929127726189202554638277154676274539599707984225309440931465758773871784178888500891006644282704142276230624254827857321384390563528696861462859295517882218355589279023767070780845885373654364259775415715652571671965731321580975730599324545763908295609446171478142479196258721768566384674071555093742395631054389802613867623023760275520350696822906533752909258229232118168909910274196957291194043979890580113522796914348270867429569784641474975013100164216031138763778681953246279254237871948510485313943833989440418435856451863251349076167052733142135357606551590330614694489833326725408244077943465001296922466992134494988752417458758308563029766976598257437356666319302059500518928251073529048409881015174967356584960082798634818993033825965981200553762578200744977199633728881339369948959407414301526353404352968491095481785591304679359252675357367304581183239102355545335383038711457713484103105823368949154349081203287439320453165884445545048707054220376568106035648014205621773829402665613269254527453621272396723067141859263359377229548755843963949187332723882047674390210272799266762662296681672614839580113990842244960496066362708639772002081833303112377871413917983978105420403625759168037304794562737492013043153915058911935681377267120568316097213503819468027509164696125984514106853943326983196843381198706848702964348319945349643628937118684449923360503676335371937191956659925990673433540574161756127533981768566496137425791274313273594832333172105641947961914069231173853756442268316100535535801893724804038738550922172353280371154524623061685565247481801191018809769963713228389179442875228373892842613909223237062216306099233411814008535774908159297506298450147643672868307347755840226882932660859797133925356251527494013140243734146904821613722606639073415965569651633726070421246974696367678729183262569725606940827917140443737377979634868926898424967653961983239470683826997020330898439227612781626837063591864130584068652424570483018231676320311052445165888078281805061583104131300683313544093741752520840037025700859818801596995815336249739914638638345580551474115920164436945230470642844658267376579864166654991294368884331816586470448655719549360785054138114800749844295600789766204698181842770422151281298186487761384521013518589621842130686608633851009724888015041548251823820264968948031886613247631732637455831222421565092656597948062010178463659798163846963658976241078804962557610083227844786941819542516320005640262889231507845241531207495122861980001831418342394683842665348050686567251496934677066628659978553107363370298110443027514519341063581231986801679722259158715583952812303214042151818764880936889366545026897739252351982342380496604577749277133615924270677994632696387832223718166227969174675559674595751548126700609490541977663981398017838926780544576078493641056518084131130806328138548112296482316277735021002306047925327880667116183122905350935943166849690175378126665264616323878227234511751302313574595761964288583187333424710249042833872355393439082807475616111460061272119605102117424179378954610950299362783885853073438506645593136469819686105339885131857457726479949013348184123345398307010205143256580717874702864117490644196468142006988352940755179909439718333120501297724339615571578159382826931081396675147875439611138063576553956733211587238116461619157492626676553707053892636991665408455583472216038114629906463887713398929891912985438232528840236834458379676541451978845693386482493361899797881528893120025766093353401175109480713176159335384011500935416187095509163515070330552963361768616043779667872840151975337379083616515394776435406730528862102270383277833291868955090551489852512375037570167601453070453989784205014691923443467361259603402416246151589261898928388671722960391565928517985862255723512502918970253114366102305049811128283661354549279763949118334668858884308155768952390084632012690540892805536909738149830372603391839313737463983387261116148283998460632825456357935169649601431414541723745998289788869940631404408061455159490778301213954275162178405367743400304288775353480573418225108947435519439872165940917399400774187428573191266039291494544920691453861325116865040862779574209975081602854655207570607217832729236997255099672475686440448442715638617597781627170091110267714841998287916615395279099465844466328964545737857241304037659717134063105070762923286967602430727472131731019745072830219983114098215350656523299426276785936663906173755986803961188803110758632853320260873480437774355095223258739518604095253099748313396932827154556427095581894017766365759455148717196135344485906175141541651726918686911577681236829106138614739417832209450580034962785187404580407473068609335643880275026385573702001074509668962980394092238550568417311882542101316551672679839850863607562425013012527669716311876032774831497215762546706051374116812625080188848282958839363321145742821129814823104936000093433457760566469473448619520223634488977254406378066184373284837171789079909333605580037653330451995845629889327162958955227287323060015125171963727632771147795022749014291099145027909325306676078750566574069381125262401022834526648125941506812706138927290700186460760812843911923065421140283844560666806515309011326394239643306611879496680441050860442870795877576066219881145621417374478306447014675495550256833263390981008018364142182184409520007868746960661541302179475138570304054958258980590559908945945084083834137534449831498719857818778259563906936246173434373290827775480182362016683497489434142928949632884646099266328502210432637711688172171937794028389984624543969524834816159605258448587141435543742927793383727904954446375143784903341506616247227523096714360959296108228675795751610277649999472401040754640864487718544004765340574612197640602425915742433934539712650250383679081393084226983931720178948964128486552298123302779801622140138551985681748826526251725441094688701618279614882997019482431017189257278603089393832993480464242839766793258047000291634903362789815976049612676276394057628012322435339405797278755693717402904734528638860849854129441572738918109296104340370344637820351800859204006285039655349769558682356870856337243752669709072735388860711976911781294328649356544677914075729820539526590115334449945712272701389691257979565373567973846736690001584064078045103558907876935863233093181676079658888623267766670613025759290640276965681487166338850653594214119443423953513975180888837545831805559692000626042781849931437568469852947529111031835024329807066509875009045556072012094833095592993944534154397969725862895773834413513200262112317356206740096727093308089198995843005936388944254949499564226193262176133902944470675532463870244441673744282292139683350525179182806153753281745768556739584345512771437246117016893188130261014075462362029734185847053636362888653078734271086719970196244052708372157744336451122863539956973614951814181241015646200356334086605215893531707019296746483827724334736498304181852142296273638244940758088299071713455735095959625811182085403060229696013075021351101703368827352190662319322386978633445682732323253892598827627939050990559001801598524869619673142733182241319838437299879104505534960860054335045873669239048710753773671178617164037623114206541124301152824531776770726211202462443890283963842529043201964201178672436502221290783643484838193501140522473542009053881329743403756607974058217138167642058019451918477028126557772064019286804884383409628480401795786224805299914812464643899629413468941732846358009409308060993728986191502733125903797366110841185432494217453533774778572701476969713317346312152662365328597043078427374407040156252038766063699716965147789469372957322171404358671540415538911785735922007080276036942115337844918206216687687846499421055145034068056038003617173180113901198804618621611013652463627560443970428421390465967040254017789556265823207759557447592384502541193617029607854085873413954872245493122076016674747420554618090412836688477824063559197572656992586381099966294185260622097321971239538598458270737031272829991003996467792152444450325377114393364492876197671384978080089944454653656886694474620343888765475418645962796088339479953854411967531927674741262222303694654329623810593975143882568161067778574539124093311796549514353116293896847422796594491680697096426585161929871856180467645298418786380153015568897856373513331776351154559721653320382981440592572033299704441837280867447872921027730470809379943975779006629021130913521598291811513060822440738685850794429488378660884168943360600737224992597508311857992993455053032162639201456660746468568707416696681367935250475512110134251383801655947208624929186140762701385845033676803233102551156592628098387886487404728134331382362953782561528389801106752632182450969080157663309121630905644975156399808045164583567601698599367537590967352000321370579589102876389394437871247245820176107276809820578699570947648392509678078977505175008259353936333754790758559468360983699645608939674261612615392501466351523300143788476594109599362304581246963731020771508839479431114166654733479194841698250341553832035468766105185472795257917164536690045307819402756810028080852727703415918820153030712774041148439065214637999753081765881607318717966274915834981136173526845182613117143272845164328637716112270701445956296783075532170397928289795929028535732356228243098853919343528764819188264949302189285701699953143703418833692781474378154595366779495044917645566050011314892224790296373859499575295663178579992481032188948719873007608120955469071956945208861279662423736355829518097850760411235253195875770849052625381315047077122235724535864005638935382652201413714188927417533941132514350132944520356074878096193109281458378351049908364287512730603324219650522984242009422387742964898442860920022425657482060949555513968978203594035114499659588553554947471545044516676848306630536549992089668142918242056040884327376375517562036195702580271988372990567782341971670140463002891357560098201249844815376034239182684110052979341226329937067900033615371053780921129142028185987277817386493062662806114254065786629822630701046175528378250521657914963440382311033087273026188429431017109372755295179448591970481481655585700667859428087714048997590798843565596970896366155038811519012996882635501534394901758814124737453007221889493344556385036795544419894561076414035337620954450935992862761395652625379981108041391650661919435766718157578171934396781182724078210108063343661066601905982813932086674554404461645882652720519421974066403933655973076305725663740508740463011787244847358522648364281523085670832263418330603621585604803962854055374258491865096505713275577985583607193436966487961884373682163695464169327574197762228978278498280199337477158118587309072344172764916512763983899475848902069605606616697321384350618999036029325838744091301205926725097545401399259153560142685783194305570532974072029762338825597492493950412417840846688191797333035944515392167302530075182171467052020439695916491729970466271515651960991753971313229393332959272621295505872203399232029447158472475212049099712289578858012168006336976541612812626564547406718627358782495093067071585020307201698002499827080989354660709251520012169236703655307975754996815186336173093118283025306413551667648863094803030158397443486149367661429884982429656011944953979315622451061579591081186477721348556870422888111195888339826544459596565650488568098196051064043580068022242789307017768058684257277758342949284943592210274700480363012769347047454256351552211378851928818839929862788689738197278981828569313520409683077833898307711470400456771021796356115650394553548251558776101565291464817331404399854692308228149885657790603268258139583050729619956415847415883536655337139320764047625310731865553804578063537045531631738996141027410460880602295305371082531420014016061648070975380770725003652066229336932985753227481959552286565349398079385382798306381448049812021585769858753652930523356016139729165195642512700583071343048473260905518264450933974317697034423210882957321738364776142060082291302277856947497632669236558359999923860254104064691864851396050475721530344808106651888678965846402049523337777335323096791412556439925531316210229897313590097441298492386242283710214700593089296898587127691068318672738150337551810709147165325118313383662422742498666922294836721985200721526092800101556932930127438968388813658017004061421155923099420031060490965997229789408546328108476119444801198861991363240362051228738465193931985809452234253622619214310727106522627809217759912720717680652923053328336947858152908146167076250629639430530444495201878268188835697276305550454492745441141797440047364017939138068715893620223324622156804896895292485487664432869405747929599798336494936283568910091164591790049745499810913620330380134575551714240745568091101679899414773674494254606560567896468043786209998744175022385498423050506416267214457054723450342815758210685172211430793450786528834636514793025390514993916980171895353770032400163795964264456230089416709824575095197519150829407187001205430650923669684801530958102925825088304922154380233570923183736417789341361509083131445529510830111362515317408132654942344862575926468349490330535871875551678180803972692602106659420469984192625401154197133872792033550979014205886008533761355892450996291274795003970239877268476736037388513015492152175524480678056103536097780833808747845404149183168687892600547411482332923421706251873315063102584536671755535355863059438740963155316080611277650475313451641139625493875790216346287046441386473184359362759010491303910710408551055980503469911006351602234155389797889715478860295155983887996672448916198680732223924691378731863336389770403935481635060646419551789205653261196895252605741235779385756198887379875149205020828235011122105583184150016035989869675996688972590158441389316204252812622321553232477697188277680829292279465668756990566425137126457333128136257294751101938624249277198143858477981792367775138583858734213351060863283625864246924434858519183887836088524354010328676984138169988040484996831480502553227870407418354794604751369371487649322237988687260000232041594823081625154937911105273235250840673796382942187384742086220480791397125012467758204872135642535166263212860894816044206668837982045223879800472124440485318369441550657051798753365099875195923062018622203965452622166807923047958817738330062806868832856611240564194128672946976850177461771232404659190624276491755947622240841109811586734434293029044477907047395056777978343384257302780219272953327962567614869042426924356227491027176115261242344362621630697849519246533703467706105089325453143593949065019042018403420869913854778446612061503584688074746124101970394834319591462942058260765738852122745268530292452626403346613948905089849059620728126655756500012657883577507237200624695059953326663962474948993518267438199246648328106564967832218901240115317340810242235600023866824766497651490547471196450864949571589188950623840023096646638940056048265963813232501155731246605031679336716643493175836024291767974292935499148460902530932372530065710245789795559010933862332372523954055715196094133161984880605101794937967655184189673069288256045390342247285834015973201703318708093842832161931081091380705201331295582475309348274155997621031422590077362980646111338518252111758426941050707229945468464780320511055922395508550909309672960253765476845137118572962862173236478473455717244639494661963329751758252411015195452864711585250167300865165282094486278922242908650646700241670691135474578059101472047371030724511685877403106046788650913725547849768289250565890359971084413940343612792069494524519829270519880013440536382777849806683730069558693198757998590927195812071102494513019915265907676931163829770458773032571102883507627780960379452077705085313321155127610031191902225197140867013398573959491905742497298683408004080160654583614487863932747335398665918407788809617270358097750723807502795198562130636054515642319536459377167638715688478172790575102686934947630383684854688377783689518124803956332298058750544534059840486843941752775499254973563376079135332576493109363403186470459523635285270932076612927632804821542348528612223025892475876461049679851880699098009126593850886343490339431612245010115843385830682005502051607765822850713161796483712933902783056001400828614065949140894246437641049992706151575266423034601219649425514031885986784314168788589876565022391337157432742273417425639685537608065978918231965305280849588562229101699187563147808351076404481597493221061231667986881759978646018677355426503733340299808435361977015196168806952882900536700083969149217350905014428905117745856578493918039115947847074369214154331981591723314978788973010311442409793820855585977113539083546740848068103108364848841802764065335358284114928551184695359909982413467749535668605046137418787627469588667103359110098413059812132979050296833353332543568784149560591312998163431583533921039669126516683922174688791151877739114552863835218112906173432263619955948178815690788030648768450029839519981642662330914705355017148509103995905456814759350568751232915307374677684257830380922284675924457904043086409271340092225449964946258317321602083792322772601296916642274990765096502320009859825335726960167124915120994028004070864385165444164861793968985578074797546994242483693754556676758484838077273226306449258176636669642748881344144342036834668254279659576673348796955582319841643776648495380745622089977289775703939148343983132324896545654486192531332127391268080167280891783030053763080985677609120316665171031616325939987203995783067923321522106424239724656672728425342647634008938460442417211091943798938529557879785212148017660271090813262948437416370775859437399743209863836566239443099448192570289563263016385129331811557271482085398018184930590925539076073037620737013777540322796387841459715284921310596139937393543402866886335396036231740382110533605451016635085867489416888232751974473700480372695288283525936227031368971104372668319880457006846193517467117377481136403802903869202473791494466082519842565848533546508563848283264941715109765060924027931953646022849122547215974931872519676969102856022795362965476504113879504322817407409363637176999377930982901594431451582070554047877868808389853148304945736508247432584859395474295855174643605656816358767805216933517450052677619938502771915883757501857946380545165024843725663650257663707510144377625651108269166642534781889004068424101564596972329496301883657521412273910973987546102667433300070067086964239781567244340724311720021878467185047722653286192363398347760805234683997604213758431050960125301313037146072000892951425166471382368135469959724125874124983737558808831517406055057032988498046791224019485234690143035230396695038077131722195077900252096968894193381010221547023241614059398036403044522849862430632978092932232965363384602756041133913228948894179584205662421043160029482577283036607210332590357901829602572783995302588058814042019336374182569453426679304497102213474872203561326954829768768087504534171159900509086248355723942444824138433059021730087287013157633924473156245203320319476585093761127232213609457565487852438706293085467612447347236238059559687857516191745460624952938036840031159017807047067478685849338276543952481315233546497310591362388700801680625827770906301533873228701478192547420795842585315113499909963631448520496921696599150502040968431103006778915180074044739878719442458334105285949800745804295725214435366537775048942164249618888060262208095552839466928669291210625852353704091764947805852243504942302901143841221414584257370808090368570671493606785847953677673911129037599922652678388538032358113189297745384628657952138551913346285316467375624452915082789179202414538346618301224773390495965639022345140205549548773040701927328947348733657007404019972837798551764078946295803917567784541054140033508461000057786022468480018686960885667659660263729912327140256488412476229936031598344495329818362628953126778494795643816278011839812040706088168636555438392499056402774690722394738484996561728803978465018343397437749185408113483648039982088957377670847908022651114227769669494891920427810191690683088504052942996209523433974802497835943991341892734950309413224609843839928531776005509453441667142860136164915175958201366666241892040776763583972667713034858544158772760438862718678564270650665519917581200492481062049508820365076597509602850876973894373202829244397938193098963842087885653167937914268224930873332390346783132626552852421324738093536880457646202749251025480751825027379989499306854641526585222934842890885544622812551877152140174344752351004165516128223857386664587032277225721036185698151416597995990452706950165323387217479188835009864911792509419301303606546339041901914096468690875411565077894206434323843450805183323738170444976535618572355077113666116130640896376878241172171725217080447642220119621951506334239318710322757536567428590500056667802701503853651779349271432561950188131382528826449383298230461913177727438459177548751431964042131702550753511069674076567822721003723828983091892179976718344045323404895534768421619578466906702280970053651403838444377528700341899035385373687174112489843684934909355819344409635124917010079555039649747836932952660891482073251931478766778160263572117652748273818960885719144183384193792628133700220092331117114101835536160488342903118981427739618556401642971348145872515046875929091811400051376353816860638216255542855677147162151553389341766433790202933852257795824818673074922012707505901511155978911435056794010565907649716570476640769339901208584739462915001801349328162487142070759879633841025325201851215435929441704510888390608822818940177505202426056494185367678177797218164169121337582544408800247307462532013458869329197111825997420584963099282163519373204745581912270558239879594750212615200948048234912211768464906883547777160407270073440819846890779614870599530071805281525909495353925189340279225406782766415777883487810582150004657064445012887339779165609846213738374288155156209184051712144354959199815259902448319351797571437236717703161349586727769959167762921746574627827955369821850932754099035837692877452879952543314328234067068922850884600040785860889751078136604384409177140033046462667469337874076823596534635398981750479486172493210912697200994078071270724333347157119780329354285065068885907478292242611044052933463423340038010202519672101285966231271660346323673955864798557812734092691948296252659971390312081440346884588406725162314182633918089867739875557659557660574064199352250306310886653441824078148842981216691983209615809949467613223393635618510629903887999474271115399837882093238856086417900563776810919355362231809711789150712315847317019655987577636177435073362818444003704887766489827520029254355534426822923001673405163118776150201535181970808213194943551076389828356311188964595204675123495886716180208643364934595581503580106467154444814574123107885921405677245268320962237285493083823302081475886396866289284013795434567636974632176397601966427961879070218759277746907504956499894585684375217265144161115370866285305623585623519086819305656356149141224268459640394513682819105341660611588879992554244138080745452621348657272229279112630787580517519877295771948767393086915084338624719185222388602640268191504613766569433430081311473096607089828906585443834058717913733462184249496846607618572932799101509958517497016736358877952193791396444178959269963392781379183436730655099025492397924156027298543525887286857315278630065540206402867507097286325688310965111182317968425461752786202729780295100065722675933727406799701376169182531897422520084914843331168287900363157308006827809748291658254545267830081869065772246916058263005053511500700736369318547154958814892042736692366694697341707933265078114428923997675774257328467709664814737304945589724524525728222099926800536192747845369852159643233197406672641327071910380752131111373281140794996224319534721342512401606445338943956881483688893779871751154090036764565730448357341576717411093932268140674633318903386167039596321834853972989265944886018521373820646247898645281145598766568879044399736617594793018714715140033910701824636218678851627011556505849374704604457389821276935647924842522231463155323405382885338029498320323224584799398754985760015553829181461708538344891919858490286181806627582071614737320163003675258974019738536395777926594933613118119861689592742336138642426873413356958636879656541789213401447870103040627946168449967707652295830404325548932302751005631631544505223937863742491176413467464094661288026116919370882754278660948580878406862594393031187985455183705596230459604970773210287226276726349043416304356427752358518838583737958485919453249243850124240892542609026313184117868206502965895857951946393778452424719582119746412533947214000571359879860926026030277212502987698071075118965012178283731734600683251143357365512399176516373494652089166162158241545812077471268262794690087741102811084709980005690592837079696636623997002214899760052358727852953745950171534097724147676373453273516595111887991614530214837658121986292170874800083061909876662580532219832007303713383863068585262952825590679492547840382678678958736777631953999155076834518148337855497310812605204102122551449758064587117582334518766115656046176372559253983321458767426814766707771686011304033461644174439411928903013073580551499489405466534127725711955505530175408171465576727883564924852989851973522754394456997742788096620775278224121149429624411372232481474566109436143449616194058891762107751559727447460730577237143909721140861283319265174709963100587305243103527992384865864299051627534737122205026325424918956693180493227177554482139373025207746140287045880456215939805261935737191732876479742085757044804095394874193038358093910836802286780911465614119009792953347009909661187663148417210823368178795514340356771457947023575499561766654976448511252825097260979988489957970994121552034918920629991193581939830141645469333580789386524326464028931965459377715677631960527739400401617377632187639566635391702237566754198467350581246474065430099496534622253952056511366411099879301493142936846587041847830442148339537526174863072924673750168116320896588989463954542043001252993837860428714078463135730933739841707000328971817203392580067018376176339714467045432675910805858560176938715552407398094563476373419227204051218927272059273813444433325963287074018726639635286136730925616137532461904459994668524722847525811670684788652532693848857598379671925635750114258659758743041365906761182719571253447915595868621212135862215178786510420929545363044272707856011827694766141656480644575176838103910970883856342456603370422986360064547515157487878874836369348435673628150010654780639480251579309343156702649408742634337815394376707948748713328051095951641931075772050467594161584094664390814772230908352174363142198400361916199109581139186007422110826711570762201566538524001753987802056351568982622810869646218525751463748620365609840013534521127869898142838936794099658746877852652485920002853880997616739732928785869072105113558475081022726306460246294858961250139659718167759910522677511927673615310687414634564076774448250557456891416756142404378546408807695386673930908254596111542484767217577230533833967981972986901443502625948044622310951866012762762177147931352866921071611941077208342725370937981342039767860581989906836587995299741407486003168595784420719731535611663072677161176168794959277607220231676964336511073942162566999485005583031985380003094041010751213921932815348531837257525374516268226294760552710508831638722994403473770714253798590781819491519256459151634007477406844675551526124716167301034780533044116050957039356988639119873763402015880323661650843834122236823731075513767024835696010817800269191688490459121180091471663687746409006604225971900395095675250966816187761842079075698320521750219505567457432778753061164227882504520716319564480144577738069666613085402804422182489739496977302640696151886498846812952407842779397971620659333628275401644669486557288746871972514074866099090900937062075582107981221341765879076006596496305287770488678712028567790602350832869893052199674594198097298852482777112219035085453292412842057624811967844539251781513445249666990285401718680225658113363885351822871828815659896882439724598485546870907893658076854810907283576398658535008409603764671447308770656997848547815873048623811184077613098094482336087220508833827818323061558483420119759738233532498887074511256515792735599753157243035898666753446370911163451062095579333295299251360718711037933261663894033836835024119547746105369644108893133454111607298675597832464909524151191163652752210603843290923962768739318428126434596790315194172784252024204197860418560738669262510825355406588032943460987824426863550613385737292060778944285970146333242753601584358744911249217648221048187763407782314774838895215303885506135399779890972227513485568202415324079745336280054493513076114857010402096777410212902954291495579728504687640001538640479400483953186085222243354091290824300455796049363697197486443568694551511896688615574244078047057057064598298448671786908509943923046150488925736900636539045333893114553797167291369912898715156379517344941510892391400507686660214616889635169268262007592668316747213451996122869723361406352898826201374219426651202172655280587331949714644848442251974076096064343121187339227995245364071958136998452421613318556012321653260087121288143097157855144351546871359298934706255822993006910919559142935631468114563298307643225892327315042239842732021667785474524693389508336978834196874127049816028614766586106749636232604853554010767949337379469652145943342214275655734845085964185652717487290068924880739501360429377295234516484049773512953419257653599108194621622235708230093403063954087400114953581086228651362521115689088049102565248796188140449520489555484627329604768469862378008707590706487330953584915214246994212845079249662531978855238428562554758353132232139937023031275257914142681079534049590554452651096949701361463363268502605406907343710138202687736350978432570981370266751523179777500325172037501244186712083856925571501618846394196523682985867978642271839118966796223796873681084525533374255213018879390351814817019379633182003807464876621794385261355021289451982439421117850109281391978254859559016306866103846627703315937414886576554743159913184537357214912635087526202466421643499259564348164107529032456553444546097481547763869919447026286504880741044680350828621772236471772170076212162616403417505419440609027471215699807542657948073491010573520896934759818172713512505129107391177887603044923244246207308511943511078056680738974873894973300191719892389110579664583303084724420699545322323625690553071319368674593790136748381907041818971572939044237008046436541950276432063300803686026688932293889993399414174936830825238620108325969871459770620961258858159870607930280787156248085217203539302574133076764953115619332211909971765993046824737547646792789505137434671674761675271546379917972145510259162316079057752699983195105621835754987883388520410247508895972540025424831824595625170128705158424535019015696784561241221383881083142324315322299552641651702104405306617683655718918265161789398419936214290022666976829271284349319034589737851250887217930242472447779852876636812099444740490915756389221721551353519054418032290251462921563658584540341273015532764370430253115860172932219701691274592150872733428753018068329032312436869550626266308580102361573420576795870927870690387490437976197703414998588872107386222568204492448612334272072000347557398537345597792810672656982028983844611010965239985602296335240100950876033558472195794398348855900839221966622584358786122613541138963119540082890460806281692755964407172570156872901039119649420860485178243524019267733998628324196552220164415277439166277087923321229821608882971031266380526250531461350586090637868596653500933080178265707579970348369610859963418169612117667715165160483719348513158838179622197899352518910840250552430404690807276859896676572577489927266962512744894503934931268813346072834875106369160870645462872096518935793361770235873398180354911122796864030563479704804586314255054807580060663414937463965420275492744805035531744357273213768464023770492490794969420375626800206236815464071597241130629922817632951675486574114931540841748416521178923966676671517430367274252580116741239288366904930971181883814141276143920407787497468197204351920618369127789392075504739175554504794291365333280026696775728658411080799690553217870517061946095788981104046223027410617802938661222526428751457307078954911603879630921502835350220938095884703044821539223990336278402082643730146167031285793025358968541781945310911360681683821561492453985083522876311381841792806980952318311998609848667397656101887873143442794042090916177002537270160306557992029838818546524125347320823849473705138748636327408710524270269516919815836870041673670141219708603193886006090170722330255734719357413044646557710730782328504635117342543753990833886377883478330252877936585459091305649362466492787644049368247240566145915187729176072455201508550495369345103610498099594323377583504787046083769567545287992456082811725016161951352978034707489578293308143499130160054700624392632097909570798452757384070415808967262081388660089193401017527628581870107271112337081620861473070911880745859082741196062228817860368719561969599297396732389488193936440157855917987603253187207743746948580251656512245877414383128169330166095556945964522375116532441224542203430470399114150308532314731536980825667193304355865024082048301158335430220566932614315901989794714493360621236655370228656603190998547881380628883366622171915965145380367628643643551353737203546204992111666672650738682654141782628084581489185982960663409616105759327376209854658183154532820450831370722150552909951030541150187470696077021409709558054433192263321139822887921420388154809800578440583725644259656044587573615789378282964028137267890495424502761369797832575394803693968909370275028088765555230908419777951367053074652421026312478562985312761323994189596084300417794386410530595588952837409360016004324470308040137924000153403177230832755689799638929199481297841891225946818023016763240970054785337802726837539691794687754881679373078534030290493061905543022414820378822028336192399102362073412974946808411288178188313247100320700171164920044703542913972773480640259463774579951401943652166797490485285826662728867821979249594122217905772331292127997647173504721394383735792922042309881491092674915167757864539502728753055840461935835155450846700808699875963473856839438638223864233530056530105804111937161709399328292276736396706871738489526688106892767486229329994265868872330146405912154613339686340514776295081507536480327829710072386397768260583314152379621521447606007985389143876557821241480606507992556051225469339641536737235667254376084196037836632064868678601701024693591428159477660748216709121705166627542780979523298126718551577924460640142145398844613865087137623206990316568202654466450916366766516062443317445506965501839566200328023674503531020611437811542946359131690128888891626824407327471400065075987576451972830672394765120133237493232733708765045212393232859208690178239626907775409880830257793681471382078809488209743821859024712928564614423965281153349313490058678262047759410677149793800596358072038033526284388904133420468255184021959310204226202925544728419666803851044462326142931028955282420314026424486785940069455152945168471346545156892530612691200625524442741575598502120823039352546485038412111148425200931491874100355107789306680727957467804276391771420336176810127819985090562819953810743163653890462910320178965471526902160867654386408494425213675854518747110361168217970244849622834034326738059393082493617187679457310808523846645126551183821792480122782791669758986151046757206544902167943685517063249747227741672090544864050789639718922250695435842832679002944615142079980846996407980467399407315430226851117182334290460780127089813976872751636833774280129472932481207315033964427196924249040009153819278324609523009260373663890982259107747790743122573369179069708913834272263127192080993561920080804436697726557573237203097968845203707511877186061719913144589223012230421925641789098114205609488150039376915925976381298695916040932886784373179458650660893611679830335596156835003299648337242998800986983072769175545500335576683339428885946311818463998956053126361615477890018125801755486244955539111464426565518845207526036521315714100762221671680070011806948177412073379937231781957140948124734173861750056292317606237516376732865097780321170400900218920191944763701532098315944499176728609585184431330198150702097976709239249664502396539466866571405867104609431944059324875793040891898915811727466932815010252662690628725623101961541977118423879354177459846356246013447438264297071365263370453602484591297720446518117402402608578960512500276337758307538115324866562908405925218711949059968031296907197935717635357414507544050527197359181061078215284986422371635701829900501166434578296394817265902601608255501182448616653040502967647094277009998446461297562256812127512239506316502128862389599520268298613056948488498552378557320277193554750429899939822251366074793910219024547812571496489364155538026469552118170875021128508829751732409479047206318064698573598557990344041060720167385511669715240708925424539982416820905182496075922671817176665315223752199837532170619094621748166676762171343813380798072891100900466915220673330179121592219313512238515023485834419117621161711266549537282132696569180789392640862728635131183159662201939865315292580336035880516822553044537971304123884668623061004220597982354433370160975885305728758646445602483703597124376056915715766241367844853286221718140972814079021139206716810755831032176904076987792503996637284561592880506417076745299945103904824283121504772344988400628769113340677866517079160823898784401816466714715428803449239728312882326111081309871268440572508851290956652563539652940773581916978622543412832671518966718209579847841994112282591703067368661508683395729746158556792948754264928344287610948603573207439798276235570474971230701408847676104887614293523256083955471946087872552340419041792681973913284545270654094305263176147696782683896610937341943627834405479526999383591299746337198542717885758076571381716100055359511346087230157830858078975451481868313201145104929894011598415029588483478809513630988341838000602988217029743507262036410718622789213642266413678798613387737730951053708594522413751815497308686078042637338034204750925877542749731785686920479587840444356709650034055028822416203683267486235589374405655248003337158679876035738817151474237132241453468062511761776718360092329077389070751315269858333328802717715784111061609778132487737832698175552003904507982235477036188784419252912126028229592821599285272659336348046141178086166910021249128766906206715395169382455048494537990622036638789629318579075516557279257701398032925663854859757748236831509682071638813030955954959916194787746670829074520958082018448243929739373841901725368218972976428657373384557886755159877008935368630117858159905228293887215238640105838218068073918480206674015251400867816909663191024842604207542108857008679935775085775200499476661149504868853906929005558734936229239996377594276682584103975659360407686764212467730069679366508241120971124596164368488971269407378917992607116670311965571890129493156380646833322424387351084157309685877429287586230163876369451176759737540393887905457156605388578017691584620317404491342408600832577503710363210002901967635706390043695627200085340776609605516560934078464043276809293527768029150159500779244852277825813254016555092312626792246418292235315520648708623914282267106170656216926733853117163350088303737847204342702310444476017864125099064747697045935921605549566619516172499542618906397996749259229817070272731503023564681151071418632658166036871843936430534156881426676074584529415195493032798533658668996505320550634925016680589179049957651050775359657997017001358404043312984544528251090804203717927948990395012573025516015823116636585545062810651659865628352569642004938066341309099633579322474296298839209004858088111599527048781952269670666699491598970421335964542636935534015800193067715699283503103036173766257934720849566713522581012025196432592185486909530509745691126968893215619795817903731904188795553195498335172640805320906833562436500477455934688300203822097017533636923744929805223539618801551713050355586895734172701037667056817342063355784077004023970109030514760617505016443573514691300565493792063124301655840404649685726576336554727757570460699088899689830486684892820544576669753626641307387053163490550962980107085283934055993697909296054264585086306423839410845490960060122235044392558016802852682078328220982026271452362527082566700342155147006874846633746639756974625023342325465985962078106615581439337148239724198684826388422133790894864320095200838156842584517587872036393856974880215332066763268928560312605290123983920327614556857184265040784386054381251487449922874130001076271643759514261929533213268173049599375402829437400588420623605302127626765764279104400168300841255688840825842455613212271317504398963125624487761151930214302574726896293366976515999389165109131116727542947501297339775358338485225382490963902665935339395301227602639075135130026876749682112007806257428142384041054279732545812947200779147013483544779174683741736885508574921749757514808675119127613834074007912800173705896028809444336266495214014097339738966148876494004732059169502124790913808584943235885675160712370587915726546711934182074006365848710491288362948585972352397450067976836001860372205721303970126538720511586199551765361212232232950534239718610243055163108250608298036425969664511979002234823517574486550306911827793827914095305575398019737712707747429400225374871664822954482098246134142326375311093362594664929618321390121179960516422080311859486258557643245250296481273505214748435263870547083435619435317174695509424896977304918843876865763976340745109343228902330852824078494342934626054233657078923934947409985312494098162891611810576554351366723598824706477898208804646836132464897107885922988853839377575825575905514409102540339449644154811234160469666465858310530365553725281056022241608288449177465675966893976986147011407989301482492953077307326046851023609437029766699583026918405071373681970808322651325170455796041568092038323632394891719840089701650296397050912338005061176335967925564914542932044232033146642445196884487161424209322535159797821940627899620355962986774821044555931243479840710607771577498249157205194416643938453460443602699799324575276083213437144442866331168859173359191797120875868513238397515010232642688173349843764529228448850014332438400824406147700710767469134228475312283272584090391507220102054607147259417240576245092791845719117791206688417655507624340953465191702882446199194740813681175692999065617623063139953768988244422980167631420617174837924167181564588196552294031449633960863180502506973457806295829187789301965874110457948274940188337503431385604302730509840973662786237831748252082005612483615976498203248113999078372090503021098441020051551506501169723716644698745451738262401475168590373830825281425432140279962797461996541217086491146980506097008540273496313216557695222413110437677029656038809249212581804933081909431481743779761653258839031701351218195745470004465655887166468484752094088836076362334262602867378885228241610414794095040645895885279229253632726608462828654959629102116391061894680200263010399128909859610552538381322083646480278404637198093654367548887444146431111785758394401319823382001222468170487856146326436434744540598912381116649290482862060075285937007533804501790757467381798217058240537953058721686924273050297587959560347431461993703253716773305088244079470690078570107817475682592477699345414994730357854246382665706077442819062442493758627410352296124575889925273841626150414003524000441887432285345822145258896406254709672295040745833795038646559930553829236614396763552533513454587654272064247912350522844682705474186533346566913301399287087477846469369716352051536551313213147184920113272631794889967198419995145991659263236404397274298526215568752208711491994652094227501562842834709975912377863496191678700889806112055437379684824196943139183098182022586472289899129158509948923516606156115074311684232133316114598081149558934953804619167108282529653190958873210578337869464090034156028223252544072649211341245159844374497670413372031882661600659958855620664392436123699504845052585670358124888590036188323627019915177993315665861889895148558185263390655998895426690899356270298854631403571027652636542278441690031485371862373517324924749587919883203049324265100737624351168667843846762952058222364726354656913570892899187541409963253501695352827274489726158476646371880614283645392998483825543736080967318594705360586135210136536710589371221794693642012331930378263764940922291353707163279053593438503732071520366240348677116949132211210934668070806337614281531626828471858099289339098733720392155779835793520641786092120329124903420263558222247836752612401690343619576920489844009143808293516773198489651925191813224856523626744877672261525466052331759828424613142566453387413418085251875479610250443761080077793235950946710150018204540129062473576511071981708476166386645758184713771227097268194146207930500663849632442370530388115133386569224729562867533066032106154890391213378505644053814382793120041666491675876860878212128290879884677312045331376891168885921730824397331869410169658797449563133256310379099035634539386922922567094961025551422098897399860813197810357498475339142836272761404814922356741795571729826382795138378199724786704432890370648443075251194808619357431617796719599778046981724240517933088431728737122993998670561280969018365434852804828192040637626960044388026998687901622899381373866843135336086636856124768890737464585978180586220408598103743350522345569451475885945637348855876464748999626442328457264109043482304192930694041996554625313520329987071805339555310273027898004087490045479281880608851791011156601490262621964657019843745792101158898867112449292327283664681820496834624736492701769351252093473817088749351817973723418622083523396183650761564796213254380261401745699171994436308285924964523772481176082314617794480334297128739290889373856468482857155355685360596163715962342168583942879647576461962082463018052075033585149467885820207077499795911618772678001164096976038075449363099659672330278118942548312726820068342349230370367024882601829568258438811743868851525768180156709739077562257540219832838750873893746809100421980148464237571945185701287706995066853755933764314748448041712424605707444015795272144807446982405641346795133749012232485626752961155256137972614638139634257059268326109581246405546710257706115968540919200458820115637064964282736750183153539583388083941577763265108046623314645639178406244746574735639822273574486860349355302318468139564869405170760767331286231590823044362304012616831852877094702588790848803323311228947630313973748371975153515635634649087312127003460534540728061644254422026765617737123742027489871778760401016666362404037213661281411774395838729425384485369245660515902516609298638833826549985349094034863983795425125916716810841055267930630780948829541094478954895900533195899162143205966890687731473236484826843444507521306355500994230589472858132319296181592138929027966950823073955499138144583726914511596157400100577177482825172979426250550609806027792221184016385780406314769035627477378585189816313875783088584847794947942516889158985891260124006305725074146394175125255504051809207880736430148074559690414627105449128791493287303437821361653455743936192739072333580631580317283773275362481277875748433004678582615325568248818298688386920944031048731048690522289716316184186392445009670022500502232063154425348301006668372765238234034189648275995695546735397698831285810534958736169867754814637851114603580745830328493892181631100437025133131070568511277398778533392994215322980380461911107050590500305036905711761001023113390209602732007649398774141051139262812938259143183430124205193452105137315854040169364843760796812396441246953313690852854755416183281733052776126154394448943614619404582979121158401384390031167312733865879982677491989640791956409657668511094616266604367864717315598060227439939197292913591911407088750213094565992289670792301331428940892415722220192655929678893901501096390238679237042524144005896015972555155156388893585047927619569866075780268147057874308668421296418899756118434851861791306626594439962450534201814049198409449866181627227216644945194836773682228364489471352433476296218446364263429832044329744379588323869196781949977132354030978343696619580414491341340263175083739055701018120110862078308612575013187154792698009926176062900001782790815572218367427661877713004169162355738530920017081284111489463780903974556890253946932119021248558106155249772544446247746722730377631232634935724789670575922081276332971582270816964740929648247835250225461180867362287597421219011270515418372596904073051990856372472588639140961845115113866178272389244876063274832500771433231407191411580567772360931071807838963461827009559909693494771201503104177030315455523272917770235483419048797700043059508917394951371343056401175306233630657769619382750605294973124635982050323115796934742662894863406047382490076755147464308914245332248625046905133731015200914218365181897309649820081189827597838018977211236560793744576941170690980869049111521065174946881200357535335211687382386861131934252277068346651566324322227922326205161893935719854618276857965586109041871284495147808512191065822043887529790230877940140411674053824453524343278188219945812684986060518448765505995315604165734912939085034484037471477419479671333145180845550498682786586713713515052663272622998787813365708250961929256405685890915721017067747395276721708171336095748943821056918292481739191026633421907430854713885905741537113764836410155193322709881307233675907871610716271006019954938945256920945247574631660039022493968512346327111705687198943405135110168489140247003717530298425013735236357101030225475225597430796691960438486934742135318701824168704316499482533807653246171456933418639667971956720183765114309701819392698131994489337027776968046414382799499773314592279283435602025372406770040533662514183865316390753397205117275841017571022785086350387743814860274523328614850633634930496189536291017814896875234490136022849186607317688769911233943248194010780282401592823581510497256968808873187961055520875517488967013184427560614048795101705791068610567148028027695287489213130062891715969632147023644166475576584228796710813532006402538438728689074754416889447343653639587207255416590903389011907258245392724802665698169904008637306490811286459312257101875625859093704285048853394164013188151388259885210154999342685637502919493554005347362944961679890079236777198395262944736372045567415193649004231849066268673730567221597407435704171664202399822056220703579636730923952910797645950657737800141560480432795173664688249485976618303201440424435956668974351958318379526135806094592478732292578974686687310018726772181172035800597318322919720296848511649268822560544126150856316451777152690972840264362755160852983373942070224839069232316702462281868697055189202110625121715553907585488025474344848597233798449598572377572277942225117436661679429533832118523987623547476715946946840685441254207902847371496158287620131436290969113835048780830914724171516693632052545705990513757037360610033100884412471314142974562808615074529078880007089733291985551658027662786837679230950855223060520695034867926443641419499210268527251493179893705765573218362884008602649200251128693567606679856373382832896974706790385226288657181481275629262051324120449097947952327641682870237526116285166500664615061013409550402511221397806777755738928329291812094990861533068469522983421384148138550979968557574551499652884921205875826325994918568076149445863998412458908466438890041296090195718615831321676997926725251591216471655231015293410293931816454578456402278754624710088235578191552294463119386960610264878598158580090756257249432989403114000661061417762790673909780012057144301214878015900910219529883650040095102177630435054791024956053692560287043347638685262176862675908519836719766286332987220730535979769942446909388276699399352649264038819540987211269802970339670765098011756353092074608220652769392547301821465540999905241949105170069984304590183207635144409299278723909344825942799554620460258037411180190177947337850532781018246653339275327884329491849328273401564005813859984116966492728615804036477946618882367578102847531787639202876343984900281834063781414332393435629080756621588258035186161761807921003462381425349450940310489971919410218805520658241819007154740807777841596220162037391448910084906080395680785665441539222001193273154789563603513527086447466628980602199215193746587888682090558131989461625350616421751433917099502395926197642853844091816479405551139743083605600361989889035815292719403801612666843967510583058323529016292208363939165149856244692433883689490729756737046549549275825969691016374924861748853459694529666389077312429755228595280228739825300327195049219536769412792443620532518451578905881925124785494454387017407250252419476233632372024215963297576531393694302514398364300406835536513328384239312961654181574421118511660883780406315089728417682604135075415299483800206152185691003725647618166164053905875245776453717236512460741313359941004640357100265660371212868036801180781002531470177357962202113726022202689849622706297136135823944183428856142070012124331592680914036165209589034563574498543824901207775022915885988827742589485505765142868841237087338356114717991066416235634081760866538311011040718384280737801822482613579073596357209809342111549849772190677325220710547410982870174563593027853486864355848249615670455883874095595337782708906583466280532791726619191504187789643868918030320422886328267253971241502779638454827529183644708281951317603389972404118907485556063714081887651427087983924577550646977731135804256004060227624051451387033775779608821726521483230303434843014504545730367003203896263949551562427278164037118016385947663596606457875655971153586312357044730358674364311828166778024795236595891823799431768163648943662539072102106910657512805161168424907094471315451415052961062326407544837718576538207260549949721803876233202163449617155779472515156379503420946043064455744576361948338216832538128214263556375019391748325032317684729204218849758005832087387531522503107304296062358945305920129777788853704846963860307335210805841862664198756971024935594304136023326305208502137506070329536393839125383996042613715469337747800274877718548215384081074619314401240697798807646255999489272644982769518190118312245015423863410502016252651458506857865573168546358602259410377239748401444650225005466285691467532686360719638234903329781238389649843986049771550382796872394547883680083399683191014535179733936548777991695842766066554238826683011760404868564132471980082020080959437411403702173356583399961392891994994781704739261359888013971458370857232879359977996822286567122002718021809242142273551679257279885320559168267491332612809139534029566440779278314537843673801486514666282503223841361834207766408597992666200258086351144035239283463248574552128627774428254651239110901560353248895679301815323665594288140095118697338670653863671388935235301204262959823633895079323074275851477080425523676052856473478021024006270508103629425520169964355927371283481502768980689438155846851572152669694444622056007776305248476818175734482595270230489594302305453397922423966598459105965056969655645132169315286150392550908347226663341852439567544690913774168392922419309763070910757885112004770849639759686188145946568350594124013140371996083043607337060277377835849517007590310619221411682883118577191658785869290443786591874319298716730415429859107360049359253246210527014265306619884949902877923757259727998322933548396504815335557243314847940282788307101000827147762365140125636838003199050483702157387287901586573048430256102421866293960224305737552969720956388344046366466596509634157577024521043662473190156589111230998276855449621010297230968124878347492819184797191227862581145849160206300288767718601750621237819917469876612126925919476914633906759896691691217275887750828773557028944238999947540499829095873705430105488893818759451753093001589661935349338329267965572051913593026205329608018454217799934197209383388338351442365868681542980784971929173129330172349880999074165789892410226173957121135652451470450984643388187393779618551839030189682283544455255020215885678603262991496591961060426406516552685313073437849998784403132155142108330530878765883579491600326917331868225212587281367646933702317091704163783525480908110380049615005010657070344819434493780380304977307210771220019469571609049258293766248376677759188985170878298998556068833831447660868357719394142429062206620027065841248838194590208485271478136263463902079856531164857552380765269667100424679727950111785648483721341198307841558624641241897940178727651685890007588185832179275234202330401935208351990219568833829629881604995919873360842765249336235223946691259949731831229213055609467501825415136297140682265637492833331358069803953732178036372078591082863077981056079594479555873169704699382505928746945231996686939350679827430728934416349624797669770684307794959836411105548169065674606872853899508131489978369484339775223378673231729167604104444500668861050200382210062500337247608925931480311505561269275232774000321151213931815879570804795660324665738940345928148981268571701404430221113974541595431720241541961259128092242000987371835401428674722278556480616185755416882186552558697392082488508915044520703280860029308983428836609891252502985934989904566716693857474713806508615665116048580229768659944252859003938421629591390329250532112454174862035033707616061281258977961072870523945875729825389452493737618049126956197004056915330474651750365802125843084072599596046445567146651885644453482773134989933207186006546014834768514462182412843089265344643719854057637553619011762307011219679077529625037451358249755854914583816072990574767534379679856761835460125220064603835346692082094331769499036403350536368565840801288814841810222865457878203798338371651048313490981551134922135962767689233615182556983853108593215398753527420916267903824236850872843076223105375680395001910780826225236266696754737342350976799250175498989009198928328154537787996987941870404002365570809741779985335913033447459752934036403984083735859708123637113229815179059512152809428204851726318395932498862732733963821834073098816390198871060300714321017200877374130669024227485328396326986306207459137836430226077167131811698100879828468704466880113800196896405659775911216123691759193531917660061786212711518317140309916100467625229146546152398346740912824512358093907436916209677094164419823262501255450601542976063335626473687659258310857361081679616383338329172205896512732068393251478635815972298758190108895712094219350425127491017404489645080377982394429101748807459408164926138207135513482820449990835643998104567302384235635315948892611736109549096045128607614845011611836651514943967322307810663936000016999129008152710120962566078752320082059893882523948868620508358480443855044648802415244218421491690441303396545144567650920166267694296652027481562432157476307954604768819550626781135226179504551678646128409522601906927210388177196437713042987120898753877060077587596141312612619699309456385132362851193350466136926411522847423367736796879168833334355005849043118875053837848122675724267533327032417578011390750984898107375829991888338645964916815644489943662329187612484539853407699764058087741405108791486188389061980496970991125264897681465795897955898097794219600407582850113636320505545305849334373559804848538350345173641270071443425526205024642515146206206762084759319998865916158258985919312185820927833684109024877142827158338992320030177659521609695748070358652719084599160250619945541082604875192589172355140615631842197314739742601499760686944655614549343543112627069291251476906606644735534725357680843269017442469951351059780346702516976434172201529623594304829470061920549828715399752479781281829727204585156891827325836068110995176350665891531286917875520763663840567317612638975927807925773952407491575189498082138565137940176561389286823077042454479171691416969647710383140206243311196510805600564234270042029703641451051439853409952778767480594062435480789869411773819565467464203512748711214705011261746320171894238930393325579078093707112329646071543342704910087926661295235689743537838227580056667812021755441512533734833742516165586593569029246385379973536598693634137021187382634327245650096398667289334123576242836102290658338693076796410364735428803066163457444955445155975408589040874316424963753225343779381707093214680762250169917656316211771707082031814207431438448568393216522124104919658246082081071059799335799845824522020463685999844551909724321578804185766532581927849349197949160369499282968757007063647934747358726089648055980926782547005418164266594720890788265010655412796627279903572501192835638952067524670633553979337090051832934191597973962136528015568907443829934164743436829944395618492170282508475497371256402016303255989779071893121913930640211050296401181650342136834371539999672455523478764432403668196336320442884680641198009393450633938886570953496728535301549265371735422178721253398094552486601375069471754113599523863666332643645045345309892861743589216201747702464673662265543393770830795816641017622937259937631012157633846980874586865752849043441748927611707803867314756469646122880043362121565031960178626269233252474327499262139533005591030189987733237843317145852829509117553780448796984301851502218936902215742250229795785166547373017616102888239114257914333300329795983190070915931459224285567360386413816930180364723621103935766089225004427863079780434211123093359108543752911988836883561179003198322077976829222637208349085482786890121310774549667274660060111502105916004306102304310502106379921491775378585106146521672643904916204928136906226631011663528240061506682617260604686108897784783064286819066636750964145967802903321877864733840056642916122106415566591037564136073627607828524493303583218834989934722954364289532584726970242013426032753710828122515941305150146105321341720623656203821979425873159172010984630498138037720617283472234921319360255007464640408138415513002460542546597312023954073100012529634051539422902436108465876588280793059196492010553718620480291805075634358598623543682592709285495403276366397188246185628845016523097977298296854072766720801019580431048192412364384654463678359267272211403721651002446951261548899564951128763888331921242716256282321397867483804411087800190713441173085140533053947564811298625396068371007818864764235946373661643402095758235609022920089888848875736570798356958787970139557419220393987498663783861054494532506215774140259788636624390197241534748925409632344313673374121257716525010922183552009728094576312584643362813932988748984520884175523621433338146892683025951674936963234688996697125152775277131112472187485396126518726991309984315918242249284685112276962897006484484577475556347031426648121636911472063152062678841961633892302440189089470567119928631505797881984519153029497270673596411337467674640382514076431263599383282754950491040003414200537044890701792573269043899590051124211667478193511059109790192149067638913870950255639296292823038340729188541511220270536338469064288185543945348356111151891427651426159435904864141901687691328726232372750063492883290650359659365102910284029043567724071205078246378165663204152828230022695336315664377928594949532653105714766389006573129346975759001564910809174889283494592657471943048762452632566425341723838094705464026086839185888454055218605009585964268232748361599365387482124297557943000391871438977140760116199353740024774046148966561994275215100272799431918239108041111556442643785936281880381898187549842289381080446895127760824905164044705341035903137836796793995890403902208927611665302747695145206906780628858046720336039703831325990667679448860081920113213466880652157270332809483585046327324547993748791433286927448034947604920954284715829041236270862931187241794582437741241011645472394699539880245422467327649591261573751054800224570439467556678824053707935675898434451859386003454482026903166436242245576454254398792235996162611533972690221705582288854589514763808318243354036753149484152826211586030255226776442124342075783601488541572417452634996628478335979908634623321893401976295973555725407538032785611532853324139781616947609436599844903514603437048388386243455758386355634297101508391803883876085459983943238469011475884248404074710648914054095263467741251461625400749599110950965949277694973525351406312615314944452528561750594488466433221556529744263307080163305510528489608421319010560806764891825312301050210362466903436840049710540678578961010262699570549356888415620859671558223508491274768789408000877479126881943206450571003516243596477479608203607087327465774500174979278852006716113981213291809894728412381100819712532607975307351188158635475958694651385513580626730678941652579012520589920832364168061359695204241020170639150619747102267788584364364075416436098058918594116277361230791290725434768154998503570334955472826846331157177190008049425616886245444719307909610578948914466089984574218228829989313839571972225740176566338541009479014488819064494140049621283488048632909761438559093968175063937222615620133647285672568951919340331635160454469276230694964082881436196651171959002745082732754520087018078645710160154222787423284860512653580616731166959261173124156694004212709275393055681142470447087256646238624896351449173945957313457054053911798027333147417859910146452532481510274013627762941457489556890457920445966109823238751490279320056306776037403428194543180309848712808833700761890709735319049555043237198932719668998764133056082343034868652082175285843783810259966180065073679839026750030807831595384420194654995900213160177713655960620911953340519244764434989727579630455257115740560072184626776507101053091138358320012898309189790320819901491514234437054461654144250505564906952285469905575417408120220513187621546182912333789689217506510468932015416702057009946203665870850383299026016400725065043123855410557476827604598061081635203430634658684271479702014794814875029591197616033341365220159439133216150813477922608631022148472127266326349064830493044539604835999309671976459813580797370881604516579412495531633215584599781682772169498476509587008755349984761281427689932782672242033498862954051416695997367731566771858301169690599146173759207227604934578296747794092811155591910561030854449947653959629630304940623116574513972362803622183448111395859355919572397340934265897275684683325824120046078209667672455147035008861641279223960397934496206399534462149416420848684716285767501302610041154161914682833864886253724479582894116227515016586826624593197490083261462468022429847862135609591957731077065106763554511710197794432255494750198688542545007685593201746343978471064962769646398670625159561748664047166061449768416288985321562715194051152915604028108631304931553871230998047499258091621404448340111533682663174391509280822372373839023106993695938543212296276178870320981418109466148589988248146042384663182572739804989621311977553625568542906238145255331445881632530557561728882792263216293830406092603169193657322761273050679638281196137522624586943275968049516681154975031113898425024291001204597917040954905137196883300231970586957582459734981690957768729836796430170026559620210055943494525924483405406943996389102017081302124224019709714976115451729023083181315827648413683451113411059820798802578628514791330291119658453563805624279231522344783349478460169513105294726155713753593647409367327175356307070587081821694343647687750875040527198676174856930393222455794577266809505479984514924746761165092628435595881230435424754677380976345082385164002876161925077991386198495741710398059644657772485714867701115418794199326422057481046287440130093149879460324445038224000794814629959517284383522165553368123234166705609622443067208440349885653012798761255488408236179176017205157619153466306538146368192583579999991601530240056168443483957543446675134387920666536677478691574491127436314221711237928875036822828493691699330795633129548443523048485329592914742393513002282031321785994310460535560084165856209463861582404675532775641416976818075117093789167346328490057944643756250154835691036079487388440509695154414627964140188595647381294543777760333849765255862996986645576034999866944613809347696728997585083676485981883814223541807058884418352725390442807312123254037446138736523965892734829028879451312093268036620675992723581761355448614408124206562664108349947751827943733456139985402744331349681301364689006884605624728855627380942889925331513167286185832149547227869473296845571683276384598682612682773072707022568749200716876134163965416169191580238443770539365540639230973426869289649276030436514375602019909592677294130033332711779948678848858497029985613842032821866199512960370824055907065001687115127783773445120805218374553726344939076529446876621760058019630430963265093785587655622111471914121226825220157912688705024614467834593332023343388742450492491369637952556004398671849163427578182025906249688497035372853164314019803950406429513221643736164589232359008899688635316563666038757843805757124950753204082814196744742978220438085965164426941423289622510427408965549969887930699360082995945812440370242145366407868031253690073665182971798040759178143544576324703403008037027811910887135064997321086524212195648455520107877370098148017475642053230443807874423715778655453011255296567427480490305065428518032592362106265489196052861719167276835855090581485993824470370915021186386391869501855894896033736011844711142539506013385209012190143372579000958878733474193704936754945435246077209271133520106620590767871904439203621512093865347501429800427670092729290341755689209005339923151546880700192675282630847274032823791334197609478386378504352329850813248026368101148521575842984991604867732762856997735748258490704846525606352203873607479321830235429669185752254664108143696662811065516691134227827091433061974583956730477904447575412119474596351033140103145581094110654478340085864884389075397851123632324318008664703812562895826214235625640854606726210218902877604363870382907592250514494391676817270159304487177290080142777195051072563227591600304111836937118146027367071961531660647141066199899847065456644942256090146352653748880800497987756798722486559139364042860806862909007601280733778278933704376709237008995876825726071423938666385914876029014197324910832422214795329037933772042602281296897934914559776997772592727920936047102731029313613612596258087836652526130215435974421513001588390723834083442544281704512102121219035350443778621161679616363742515438800235076194568825621970462328939165594390742211268936298561730220794843131983783787152091827584849965568336423921662294889758814837583345561863509247199913684371744958156773614128107493014048318189829873228812831384301832835511813840767375476504320582067312108768489388984081025964374494203787614543128361333838084412081309959735482858509965083173793888402380484451237494983753709538855506726467735597915765876409045371937273904407598039061248490614584631815753963904739871466850372009431753983840977429520329282486860781903578190719404738647606100393735586823081281511544624949921432931275069274217416388534961934940025374203155974527590710699695082901074299846579164583670214522355024763458341929991869573933818920345570989715379481667530166142357930793922570080884516249493475999017575935271206167686789809106073998186559788567729594217625747217439683538598824904892190783614846484075867600887827214639288120900376619182404949449393503758081819624839685244639994899373837976574159926273556104368840820219059983521173423554499013509696986372750109387369014850192890462508516756739102865530231328043744283925721031312178808217116362359269553824887418869538562818199184996838917909685817815617042108255315829436795849603377554940756365238860910774643661478625896851459973541587704177410752334001841597437734614315823549864325301672177955897764144026060682747053887561684769134062157295119015718886207358702483460585792681667367855940095715512801050195510586979989001682406041732433050630852960126657353251840188441298776192506304321843680790920344394037235040459195666093090564544090358453275405945438346737839564025878287642880187683580607652276203828990838025100215185694912130981717834593373509686024705982133820741459487848216143905649024423718952682009506958409931506351603602426121597557739240737422194681659093426366258529186908805205980334412113232258502944679627625641653555861041913390281705459171210347536918893933713028482350222238183610803698977931391205897560795658177373033910389945083163862007953030463409829965685075924903545284406891859322160251983527438034751535099021172784302298093471589845269961598606175626537665469123157385155621055390752863098662184024838973444751654090768730819438451810644791483596615682992928813013691140624214781518266141398654339730099546082796090970909986060799505336462431962441486974868751944136537051471006605380140170134537390280870605316427801273932196674027382624052369150405537367264764686212176816210967100546407563421356816615331765736855473346497692856883180633732304323842731091417229386926368778538530588680547721744004446873255373099630024158878140608588140240175571102963446447119278596960454760844102126212125208081653123895331766360483756011769590209049042072156470194221303170790228134133437839075563731404950789895080940344638020380268222979704148357624731272150693356365496634406127320097074451788327989224584810286295276492172126462623085348500368172811859514472958694346559959114802875085881298848783746016163417828363261483881810400010006472860014506297217909855133352055314996040745336834459355729080332181358729111304203267058281518758811135517729927144760464208747109782028576150585265978654162874306474703785444711115001744006385467368247021759151670528324855630641302987121537093329425710964526425850262971459969554246387063557042972981504145411126533244694003373441645110493735961811920088391005193513669912934093662839437377571914292310962528120426289997649317351929673921792851030321605314163380389465773723136089931910435612479785418874786036845363602768834445067806890395236209759654569798891243263317693712816604507225469649142808631491270517777619039288962265533426887276605723692669324246652324633710025556782361932512119001890936170329750922888069996476301370998124265874068181586599650140504406730646567193980387653094267358077135924350860324311217012461967311051299619324966871614620437487146491569833082961599241647002635369019592466170254042421423481453656018441839319400180154445955578004371743365531510236676041857398554461376945975460885657359899803903161234816582476403880250920677038431645215003371296290632659609670236195891625071186802644692473367941056952094189716547250670390388517621478687506038436353742928849612582137714043031134286110245544156288988532899529755288988807015669536007197878284993394186895004795269573195088573387400008543331789528316837917744936074323060794783212249543449049018166060515542981646539713822730196759526545116833491879155957211716557385701256906966970977759574452831872915635240825031732756981405788679927313915667584851340687156526890562601544722317082157638957636281090740204632768269201028490311562480681285668279127583253717224539238191362570304886442690768094851964602156488265743509000303237631618292722221184825352461680446330559413322970871792089350357610322526740009495088917139895093997428753838863628845613781953632587206879125552774132416207038037749260732762729761706692168171301062093027665621543608499618619444688258139768842245727414830563757553163417261044775806103763483712147644434113834445814438627108827169647338841105683983663131422624459542359213172692351685155847891975894731167409304092632969991630118936739672151881272003604056748686141879334418875709927677916021443523215720101289930858805593510671076424178338883385466277816990179212289771772940668850863252595026572830725012351752576125288320487456107974731236364604241344669967440411590946075109616468209827864138595527141726531630824116280740488104558456247881210630804571043740900687684099935643173783092868160899138489271368243118126114827707254417678997583109994607648023954401437521767919740245932974047821068373838774248862275640179040641704886741095704240777807711326306745552074851498483771221161079382660575897758609895172908480838133839219379005458673986644336254886569970082326704165667253246520363768530982174947737477548326087795651710398738782303015583511116953141744543585546116638811500094131820362604014671588505144978749593672775537827992973588575521926402753752084518539190988908942863537329967191384226453697746188003433146216570659852963225668230035075380552787213519189215531877954404808643303238928446023545160979044445777053747509924781611664620103751361796219449813181715899471642294347742432808028832315875867059033549577327403755740543497604830689220013523194583375427792145741706921214414182947595376807653332212585576867837435457122031510504187332921787796007041172664105040314564104228043449973088031979591785307784047538058713074049245139590502331123785357409137446205350442708000018215798316296943698749621017995553712230251360569241422870994875092209045285485511690225353408477465071439112347899756141375409692346622361036048643676453180577370993477590059827872311732993260272574406119542771389916447505715143752525298996666833054039381455566893613773173566573200127789595788026615566474080388359745016130038677717428117059138762192181535133354697269940976565643005980354906494869707703709772494581972248902560627430022076325641463776899940573195402753077446689252762929875435486765137753037491850346246647030480192072440968842988396635205615226792873910309530490975299129852424832022201923297854255196901308150424693199685312843139095168902388609843442565704288527396808797892623359978914768485485659004801925505806695020602100220587710452871937289673324109296466791869528711193714100983194496869876616901736572259396640978859832249733267212754298182394022222105760700636915049132108375474075908199773292930027813873809036002588930870280419829425558194988088778277390832953996874990220526895178003111344030879685091401244061160012570360368059913146555206731307915797195473809747254928484191491841170364287362292064845645519493642750775047728749737010490030054848140219513416652489826078268042785572026879524476552695027489502308361729610551475827908283393964327837518467585466989437319273612022891366847309015298687192396276853040858256521546022981164514044566074868766583245483149095750054569361999341687448383200381084904688272714392941842229934017877210993535084537720554859515684272956822349165825678395433502799399778727324545148761343192737476429169345791925782138369568093463587606324154416585780679360760340270133267293584919986088857285403154206959311785731149209674728944113193709894035077017470071277570859027928738426470124469640335947644664498501648444660649048460727140878691104953127232551020578836547295305131261867884002655207100681176599766001756555914076614280822241302716782656822532480394544790134388368613791680200576783536345560485728481964339687491342841173177405823864107186236038515855870676786773242098012314811783651172088758823421574342998959314223337199058157666407085772056921026636868223134311799576266015451594916440107672337620186521632642144968013634679714463894100171381680448642236069132573001248517960010152536659275317976302341100754822977476929960950170452113147664343609208828247549087680317370408299472221634633938551704527177451501621273871237561349076989984627974908578153000761200540361583703041589696508089379540064989511811137301317442747240076870577477170930231085534057474359411889267979075327487358953043673428493771106645240783891809732291056413422788524084806754853977205140621486845534487328236336987475238764243171667973540358976637049823773549460209908533734229092619065331876309784773070622435428917068847278802909305887864945145138271803155302198454807410548030601293049005630040514903694547879895272088779789429816460764625332660039469714900944402899548333519456786949570207321555087418340443866303744540571961716717252441522933826624910575507683788096690840687869278072283577365643644824262223990851301835122099834630399645567116000166630872158451051756601642144535089990797802798534066877035623179676481109382861382298062107481876404332965969845228053784201984566666293697414888753381887422780719047481130133529515796894613162211444097274809424864145394490834655218123178638566925106093240676005155345431532843418828510746713970311310035265195632582285242267077922282256401715216466142050519274784781964134699783293539010043944745819580605795368906251027878522789170158102784019112386794501922309971816826302915614050048256802026511330777293041314843557429925584037748333442111329833409359389265198010817561712474092660409593455258249459363088173861293540089329062014913237100112924978788894080556473611792005483805691295261824802809556364900675603823469578669538203958518395019798636335458013192087728713771484627806549805658166757979430988761415026216090357971450265117600248543877505059662440888819489846241181528015413682176716821624776976526027425162911439157685279050299079195863651918041178763384162997003606930306786833564947076097820552153535728993504281478221903312452405943427838554488131096643843941601698187730795557897824193597805196716610706772052305842206488538650993289440502014988114724316659954525600579966797893771421711434650547670701179256664884100754610669811962391744087428008779732022898252030507565470281698843702267815015313802721616779545056202622618989093455790573311328472158563453414271467981603447555732653413030100193639023208521747703352825740624643675284636997915407984618933881679042913968189357212437794552444673374909105266177545287806205895664660910172314267121792601735186595915405636843164719303220440461152715664578046454164512954741115258225529676095571828226592165752929026239381207853019529340633495416933812725464913833257570740938809670027595338047518006915089345951096594534581164837949199292056559728590911315216294182694627112223488866535006647194997890225588533799199193578169785961891533599241842820714783053850917426595629846931438423576178210459967185502586493125117447637806732219138077035989708919054472424239941374220097219175585590684018208730044441976854512180703103954289392476175595735310795717938190037323251639109090327884324265352040130192978091948781692457683969919254748654523548075354032774912204830875125384167579055856646307946941332969832912872977799800977177339770659765033705356744989721092998874493650123800521155190814492473921631074590959065395348366410308738554150154922437955565396711466482410511615392780094873919399805150466962812990939090309864000059140733670240994944436668893045438786790268659169129065364479546405941073323122165677545898104463458660524617717766717752171027878240346005931306556050440685746265284512102390600352843874941117175488742829747975823611144972947739661697106002059380078370538830929033991046341520478219286966552363288479293618083897118867106940886257499794714552099562270500745762456338559748230290390627833643349784495939045516967232728091434328637910810933601062196756141827063858293686450906489429920668939038811874886476202816940817528653208223241299355710276910219137896222428796303409529410842716616130792256418529899511432780463378453154448219605398409744253310617992962783463130714137701482235217522293174308593213255243031864130070458417882312756390121730166687612070712470451666106037243139795256161326297308156890012531132310457408558346275322834948216972284660838978380880438464751685703834150002285659049644610737825766151339367149866030457510914294561686281701228094859709451296716628400425415613907896938054718222359236719282453193129057599450692989719436981702937712463677039975716888423744373855435038086532535038447791844728017764152140039633799218071003159503378482604037362690182118091468055413795449902985711856525344527810508259140805842303289354306749799728659566261038979577742652902827577863452032244223656983191445972418009374896291546831894604672196070219562680924677518899301795138561443533759555947201565136252788374018179062662876007629255215991755543478886498462360226905415048802889432055024739312723100154126509090043093473440127709770125088462615483561017022582188890017251665173878866070684789945279869366322126105149842880774050388716680316951798542049583139857982115712165981241422868370900639487392394251414514254892428947521173931505814148622147179189556038131054983249644222516347100510128339384041514215744141019154243868260141657186658947826230681078083684443849280875995404616083175042310095732564138420770457395908480617401481038955577325076801712111261680210545109339717252394420132974554874153244750899216771596584854365905424039217594854278246647387207197469850595789319998942607436656867019034988931896712416875118984338084496653104407949912875321328950627878513098586154411432754419910407501711666092443440321415757381921123459218970707318972260923586956027563961313291423498097924725178685834510038975566489890206626431853150845125339848941812256012942920883839869191512068559040176734695551984314024413064325420872508762180838142582261602836704832955130831696831639445039106835822445308413638203639360994155868683851237868375786080028765040457856676121109023360972398700611352726304246103086037338228890068242957775718570678664553536550457727560774178598870639724523494287647915982149532829952177650772850172295794940162878778113132058230702322916851296165180913530886067514162001954450225348030916659090944362032070742654693779453185452048486083250135685529580471383330488946589678204183551488693885679194277810038192622905292758284696811496373629663220306933978194219347894529895059179672699069034052831777575935870634780333135336394419610898037168868952570063552340954059745216474882663033340491137640205806712336657537604600611361651390576593683141211601908034552475640628388478002679135016954254513058434507800586585706942089912291679658822455188817968836970756100310898737582308479326852225117700348520737587801494765414283392972975991110014830064354744772605861901731053827280123062096229149109235141875880839612788193417171384439473965356116962365238909592599199824798309991320510311987460508054059580478516341637232428927228936532772543027940115215553578681161372484883014783675841887798471776036180082020502196901452386651272151152502182185197758724193860681414399293599917812185331758853748185482089571421038930446584431392643492011143742426459715605720016910959209719378437850129072166446296064848298251467148438172176224929706343711897406140430332865034386886096999264329005502959746019509287182945549886311778462400733619761438091781964171252513329932919021622372293033251233114476363899816867741365172449823141715263351767065671396426361686237068034830521760991653459120137797561932821744970616760554788138621872234035081119942044280317137256852492052259280363185557496792808601841148110835525987400978068335171872375029658919354605077994095370762076041636076231698301405355244000168526879478089482607188511671324985084958797126041155727289893062444575246553215361117795674081820059804530826353918582246401818143634176006215160357814643213372404263063127964847624456082893234766241766380308801739105328352514924310135456007239355624806900940180458821774708882815424731285713695771547777896278002321960818147137908433642299087272649924402465507933964115623201358470032653348354988568975953355476188968272286504709419352070993678820894638156283939636105371103259630491112915997701877202384343113738222594322484141924313997249132775300412786797871673483669130950511943415468734857434259405549785054624881870404133296009990882288914451104225299274556058317496129408172027817044399858849223401432713541536972306593758208839418972061164906675177335608155884520338469581611069142241663102170659183446257232143849272416528087075957918993916611743141858307277884377463650334382876446863856464859368584482110857241638814199533033998921003324292183278930094599016325540881114304547777167845652187157006686316832642397608382970906357660412696055371217328414253890845259368723152565477314773531613926902637227975465919493935568741573104635069064716780136048195127963460833082034593393432043241002788622402102518154241415649130410982149393270417408349302076694699726528954374699287902185594563275780981106529867998335991252007206319440397685413085947667316921821077867984383969470840338210194730148927645593929784260960505683633368534411697490250128548060300021144958420844396425401046919542281934116937939354995175347742088883483691762041846523477267660374084220782416506642614705697971946735042899944294125599213970334634631350571474458635207938896593374000376186549783699864956717864281177384036976592208253787965414100430156658577020490785684234168059652076555771730433190645676931156725072747132488897006712754543193843351700683518830088775942309918278483157512812724284195664017169286617165598251510743381867325583605456979178908269892269914511260796487771730880457313905023524817858199440242852422736877342556879823486184765865990992640391326104232333965193599417204286157608708836301413881326777139243353199892066980300246863989666970191159711610033414712037610882569150067443434384277923872859702850127018289947254710430488301016855531058753746189662083356508009673943960928186885017605948166847668069565525898432477217442820714045346294970605194310655533081102255430445880344696476957278972704692970731046839992648230990915924338438550572450661479834469793194511791240514285907855281788427410177412262547333488210506588611293991681099031283048054692118640135922361056141393127734286104725717339888026928803311050943891203520073544885556548144780040566773426110102262240357792669597524112345163530531387764787463022613807348865177647234830545459064627130308494306201429588513547664016658753374810333293753212932210173368719724277094261861417563323451731206601006465948121030635164201610300714157116049534183229801557532482040201000284096193900908588009290026349984180529496565626744393330729694484868952995799392893183791192911018906266978580252889234202165977942359504700610558435857091505362555150122615445548805873074106317598227439300014982296123225666630333075001719846422828889151914099619757467541147100069539547429423591270116088891040679066019525346627674729632941575142098606986329003380609962249660937867683339574121379439038173096597264123236953579500944527918553481027684746391300363162888228309867657065333730993455529973721567537410478196795596683498504782325861045882346307021573719085475137363113509127001595206088787954615059727140602275892270387580340667540500227847627420785466818400464015535483755830199294212944016577504968399373230415093024374984858656743057381273261283776692215835067173249816423201308549286530935499482305850930094620954753661971757904812983340700863226155219560865669665959446069236464740875805995650349237841742706802332157150623591948837839359404944455478660460298324781325543864817459547578576424184771501021694764874025525975464880286047706461231506339553010849812520231954830999634118713652484329968417147387245840164334343856046896316524761032439531151067771524844403361225499044667983401145171551145189292481492272661115523915337223642217208240254218577536791338279704754296703329147408734518809100504456841758662729729801824927965519025214827197693027572822358556557755110023803742034658782720921954549027184909108506141058019702224903753666040352725910779851802093049262913778465534831487291719956056150986778163707119872198777627180817913227755145958163436413820729589558204563753451663323094535377196992914691706136726981619884700878667621894724599736698214672498916749256129372336258700683545435652237630453059816343098902165830152847895997320822146669410695422725784596416299053413488533906407540981826928687328419495103827009498601429188197091680333488601039965126397803611507417320886582287205969370985634000746962723242267007576461752030087690779273818197092368971860340000660164506369174775568093292825402555184091656511429187267796965060204100173426136435169346355549100060519123165485309185482990933195859065435215861871990257105124317939558632580832892755462625903979279378910725023278432751002977806176942747211853383948148260350624407576088966179887669183358202615311595367220127334622489425007419520795898877498064245055695146898041171033078287145902378610665469168963722458451095463533343371627609469964928205199035601141467106107609344887824663915812967482054856549595330825649249914665623122231874243535883137815965114890935176299926051302823006051988341846940345081917855438310277970923026377589651737580250325980550047649352650436444990620018886514143509673646117210730959840987902269748857250172006479820164736430453995293778872009097193381360005181663878050606922509076042518850607502757494100528097614462061446682706024277230826509846126055759051545031156617538091104744850535382562286490742612324419106417249988990001701592922155564214681010127427967383384896200705860942667142237663674727641378177483958285605963578942251378273393706199127961734597028619974906622893552955709969176786752291249487782594947106378786405853777919528268130612629778856282253076751029090561470628025173340446173455828725432075008034766556622901038308336752281130131633137559835696035735041156450508873868264582341115116461680821318435137136759522167631314754072923311013682654113907254724858974366115479377460801038101545485758682550995218621443367651784619896437631162575924863027536936018350542860672855281491738758269815227556413157426283453460753597903926111905355199795921819334619705329154010735252519250661064909623933513420733922479340071626240318572337450911818664214785166175509821440121683509759497157216546715771958381066638703270161642178001854750329129487089670173575700549705027945496294892191546953864983451731315089900686703526882926092899230902980101743984277764658727264116105106784291925235621033753402610424507803159033562630755991341134482031629217037874732998496935595878096810617291020883998134682814709379650690520574881111624191969765322412976066976814236075873174221199024731082599785752920490562973232162283754996902246601810134171797560753970395503912599414513694109498381527112360742352654019361226026167911230253590027070078673470173855468559434060162543603848459605383882880890874848265526497252559377550675560121667338083759819396698152576392369480967577715427841825868015494914770371588527743110481756043962858611288912333185485478547387865177462106631485922063957354490553238260206324891979913245340391768152933837378930860457878630498285577259678984378387127302485089046546688997270053882202088251094853165008520632857543518528347401294440225396536083926262463192568359368103936691945635253450193158608510544412048299061872400643877847779026280042167747115831369773996749068515347181089344015254433910158549287783223508385406479991062648634685082961393986148491642071683291947210184086151966886405450702932998652585459249927371067326179713595913944820147305971703042134438939803013691860217624302879234242466500421650822978135477597299117697342115255114908783919995393521932207806676434797771659696088059057893410967303996874701886998661043434520400650808410783792955025231312544705623871535381367344332969369446609748750284357083139481875308172462773802454986711261629191467580028161789811915795365171268518127831663372004558143949121434553057969797063076930816178813196968772922741141057704875942830433501974108748091166007271457008693319648065272960791201605183416059568777636423156824900235252551167808588854753603214061758587795501963552586847059770661575651855054764241218514072652460038888429713097612641416355618522764580770942104205261271522140976613423972035430715534190914952251486763154911311627013153388397417750455002574607255109808886428339571187345612631078087389074626270323852156777593734031283386407741992138311794583340273956566484501175484847533515763210282338968207387199916107909097954474330832697443989589350049751589695573137454658985364533974021203010819284670766171158422190621640060604934518144301223270644614968910018421951130615653349112498051623913469434725094934527047798997978036761399745501795374614943391140629755350942262672779885031255693227601283290208273679092303413717623986165372726237586995605312542122633190602390017622614283819882915434391437668425384577401876258914481787607609061892799813599511589868384831483807020286491582682961514779510595002495298012235255912189356993801853420270283350090474275178175775563168554499184150483264994785230853917295114478709454818007255535491245126734499772457995598202941291366395978756918868123753272285536164091690596196431368076980662229790134328968343106035236726761209157576661290014248586909556259248981319555048374416147269048837383217774143922743602806681620223999277723601844433999383519024874040790428426633749908080871713482922637443966390436442751004776936589012790807020959679822190475722814503516524423357563201904569575816914089962029011404163586742509682199305686837407315621047223520746240560580950974683359701816618551870723631245116261054162547219521265161468809393020476037268652461814077759880240321913321948006330262607258062355348601869640894295904040723278235141994805296687828355037416651662548275257384543650427130266505570624688317621323519640206242760162198144514876974006714052241309170247746985351301357478358390407495208153457700184979560670307634121914279861386654011461158059835011425423479785407621057349850957792597131063611616368193369200266263717766137911870864263700756829246378407752115449602013539476678107390694039847221785187058902444029182038638570620529609257426055096735943175514430793024229106712585723323430492445638489441464775187383831478972655055811499950638103521252722820347299218317551465181623668900858067270019033995854955069722105254413119334573350496067863037013084538184561068631720551808137902678481861968513254820951753282741898935767787759990103171182191860308778897580406345979207880003534080256776654424047015886385221236996690554985112043781108162845429210722780584000280933103628292151543379510700241085764699092270576548234438964219965592412148184395951988570112364900058585183825843949632833925894716982219179700773476622807077908126922764867540740141480276335583231969100142776155804769907064178105752827830968481288614369659146794558257425228525885187094247842361621811818339797779701390363811699337569443737769003501694283979175201081005131901284747955397583799699240121761201528960996737887543410170695192316740485806216280043454522969264543551604584850150059993676671012680812264803412190443456644995055668683572399590832036635687329016519117268584784559523311546040585728922344326903253394325814003814672540581205214593531407889708238847852642124843324976663993749134972139430263958998558989941468265960298214161335589628437326307422721939819996447269218414196859039579553112885849069219266419578610236420649953514766408485666313682062926238706379038322246736724845632509755064545204206899624926123708311884452513769810788080439065805500337325763006941614727941496677668757404757766696859859297822228182895625972343866941244977551003720269111371038530674079002734223663073878898061670093786436523065135340918579726748123707888960581951186373535753626773551418227029811757008088058063180465758508569866026604885814127614041136815354836550486481358591738375413951486189494858353398933172129358376476537750978982574266400481217037710797830916094059232298435683706310153802834574866556564441861503035363352454107947060876905077446035926190140962428473794281993377027882090995138417395111890663516899475709471499392435410875081105476953461969954798418377406189096038008103862543530333069759089151972593932272199652817500056693167911328317529723541795134597998409557697392266851586614247775538447101019790342765508173452611601356467632894296144064295035252242684363222603247629641074676265259992060602814680420141798932057597360374590455760449880009479245231107589022556465668368590020415385117422921211744505096279773563931775981026677169393331062745433983823704642715401399983395920568008202167998413784579594665865467154076171015465678334635093825099169894270425114121755428595419154294211211935151692159745005324466237817228758349159587040936376439103954067401732699671978706529739966308763480770117489054604994800064699963640695539629382040377451795904571052120385249536465882602684691692531373238931199484346137712018902789326987032131748794231277476900474323532457899097249732121355515267896901774402421954763596063225199534983793641622729526332868500141148352511544689988791279097010352997934054742327773270184757340536781231354668475494668597544330910063203130312996830290215058931624513982392448378199998001751554673019119747559279699338533769234578280127846834413168597962239776052015453797785567454336828960250180527227340222081126141952479896946719467331937955069836640995539544993900759655519233587609459045533546646349294046126071191299101902812533156737693017230356850856889815047304463251376122734110639587881366552468631960911420294796854586898074209058414426957977798825344949526079361428552196120516037849488093055225843415254520801293425932536396268290466013364595786840146495345863961732152553537489886482137318601169639897941782870607301675277747863470254622432995326134426563825589551069448320746978261853617338955727127351029117903957812330120278107037059067194137317082933020875378855168449854732712367415696349633819822470182796108768800577522636350611276720237802119434235764394614905121236244058482628615583270918445319086394303132207989132280282569180027225007438522618045426968391602146164794039358920785358015566330720725327549409081046540065332079470515017825769663126311562296200576939769041832636870973758921255242936805262355811648844318350579575125502125599621501689819373906343069163709595231156398031649395724445809444531043677735372572369268634044531885953341090792844429193684102289041167954128581589577169534521412457158946932977155166844754736543073022113488823338659677283828091282240228980530893181813547832774099515056994563830471086375754212213633091322924644546555126668786299934890734532706379973859222373402736814349042655280314901521869135832936219285654725533140963982935735806618999505701840854165071038414450902098452303403651045434441380551084440232156709475417010409169725653785081307756881334084392449382611205179873643049851883057012429289737662104176488013054141608211906163830847487914360977580716476146685921716029626221422881418807512105483755117052965952648115047390436093329588359064646795699615038537366694226897854161753495682277436708394873578903218194748995887436658755406916612605072011372942301936131551337967413356945519019626491436773188324572035237956731192853544031220618292586684347181679435039511778131585819499703040180383516098407819841889571680862384652359780123595077072088482780465374404880017182167854973663374811339826625415376084319335344569496070066523369561286361523262290902044426894668936456614076887866779349666209389943400534664128871230745102012552668250945239912708553065246117381911461679099190994785005142223646993406168491489880995233514399960998043634914835743626678316656978521448478174713269705556123211088309167402098943887136255428479380598929943841828337422043275180269015367447453265510293616162872536227909012203263517254607913422306947165986539666486869991553914406742289398149328932130825606223069988217570684788754897561706285190879439754439693504100741635147875893199103445306118825845300158266454395187980968435071406629738714863325484648737972337513105875669203736472025456621563210980945954213659965995303746433390645322508273005406152133692695987485041058988058978933444346095162956704148310616512543530189629211442661502421726201388287917397513366090114350466606676787803841973569546303939836430158765386746095583371182046698143750754948968998251260174484243243755084618480876971900911822674401050158603237390538632027526726910710410461667104364120653107836872313039494717299256630158660362829086530421215241252985988491530744407176959720298347499932024942297577502185567374888430774467028654427544692105254801426216136330327053802693409247602731776910154239455238807642125101105496949837094838483576618526572904118766954931779795141612230978763719001187993319456306789932963950980556003763614726076267592666983398485904962864242076586449706268207390335081029639151072564765738098787010319029660143068942605415802298921764653634134513424607896800941481730595975992267391721784229445669990255045896704249665441159766433471914373347220704150242668853403323003637580120765614313220128163354388804049020473511827409109780774144651447879663657079584843980776773494670188691654139234299808030148938640090953777688750033340786150829480662225809713094450170399016692951791149182897280779872961437020807550145485327253691325262844073248050469922646815737692382062889155484393203380632865822367575592045153688501261163944893397632253530426202281130712626653594374103160466949191868700648044755482009384379355623224085345306125068465950390721680116689480326930608315782629313358465846504097522081616192689796518064351160649059606966534440420583490242992413193477439373573633326580628769930274378476885862476442850547505077829045365732648984252427679414642498984838974480033871203479918368571438521651000686436737611186231944700499583588871471765826577626753949731666004094223892748370938625585948570557029657022832850807710501440333928563376724166872923034336130017777669108478293209735522905140338592825739045303348333690057967289849803857591916691198695387346562336119219180716880460118688023474944067817439827179169079577888049352988876794272846168177834420769545838350108090998593277086671551666713174120528689928242956331565629475005214672576347910582729033925551611097632702369886831480496775163246363077259336349400543647408973639393728505542337599076148975442977157429057030791918769859174802005574420193984605681425394265890562905639817167015053518353070664743941287846670910496933216678286430098778204241667121056264186578939993680165242174063005982632284981255021510004248486165105958263923301711906674658885286443768260268775059982199926220467987376585410333376922119393523801060209617548150980596964525641194897983173789757067856665461466447550250735921324211691405682013320339425344224296942803668934216456674163761746564897621500460824125710943704813620283918217492942223858117283038199281395026143185311417907685758823326691068839595987866073305030498339512934289262837882571981284732547802363327354140711898586361837008148833764493740450211753344832036656576838877427841445974069191904051556376827691338484715529956192533425046717518286507165761455095842094905308222674285651219588362009888346121548514656383968799074957464661003368950929926065201362339825483187424616090004027333720860683001068500510788335220723780197656624626670411173357280256522725025343751195878440899547339044277056556140605462551915431919953279939536762887743804833841828058127259156034855676761225247060658844821546852917567100430695485266635203668019550707032936394736476765053048906325461665715988555014853038673562401607579937704761802114317318880875543729568672554732562690398137129430660732154194176870511540874260739691153284378001307535576111308902137109553931819369395450825072544552037993635329685030129951672803303977563525411886911366615312632287182442662495644082246047669633280665611184211210767864578427091542719400913930137303896844469452467622206616837865684087361146982573388472322727810312621288973494060028560404036037405135408878305034733740839270475189455552088689692797226967206401078971737781478027440085730436475984842845492288781464722703716989504094872958778068965993787601592703787549974255583034153102146324828035365364901973450356891931975921924039345761657196728476421669568143477090735398066566587220896358060188107371302793446092805988756237492875118071947103552677777154164414493455390844738477409411963535675852272599574301047762633076862334905233640425792088279276117376482217033066145219546933464164397916599478657647658539932878110243123424266764410543999975347657339762411883822238031822188393390396582225171320850981100706963124167454664360264311989435266931378688443636061244154567613406124508328292507984328374827279883052469455982839487403896161490592322351799579087419157432107433365165096923446236624895163583212281706619201308923830623130943171232333131305894180436737969129253058501173827917870894969588559660511619790054677972052531289538313319871290028798993480919017579816278925804200093222518950718885609529735373235085620165882926551487963139323765968369769932566459060889625027155088974881963702438570990074707002370226113920861935900333612962258821680999451371721199527101074343720720515190809939074679086766410582425498419615574606634827117544023716043958198400798850176192139357051579836449753968057440002025790055563232093594425146089278448359966249991716065819113918190524401290163265259253484758202879810714489790509352551214061745354116434218274128967717375712633702990673335006114110117808834629599299398494512198075466927593727521778355461720379979841742719648039912381056947677279761764664338888499531932567724209735032006473487900563782362825430110147305525072815418767951399751121675780979034295785524556115713204633802045546188926216433802460125333505909288805728091669409786735023608551366510112016380477525081881867603416708517167456944212421710728296724141437192804844282097535820444409259403840294460097221017984177692640264946792437916646485431316803254707625544739195245677092267735843535147373841182598482783810584014261237394155913216571638236221014452411706815159333441523236201228588228906805858159488066979013943208738639810291121048302955299025489611173035404073714344611018513409658834305427185643047537718523808470203585236211938627814996912854331657767522200958416178445855080002302445299440959618770619928668022896068704113070718765399805253450421864125886379849951733236258774004714281662022804365965879044754626269737233750200251372109540684911443456644954949779146091307375850842856220631970597428576673957800320282291166676728270529280821644886035780169751827752694179350681257533427075604202713716220990141600849908962733558695304710052186612274953492112874600723197282194320208343630464166745292914040412666961531995098440996147182009225324104490857489796652451371565279673619499759176314490430334078903361897879264972669822978218388951313826738293598144643446630013204737715379487069219507683554525066718968961316790514842928331737984265295619747467353842105796996607651995900834598010716647836938359308024322446028490720407840405209821302524936730694879910107398408261901938253068508233809275861843123961352385725057283113584677502605542165149481494383463265108930728139832392645491600908231139332640452869390858248888948882997280355258213849152674640265977671685107872274285525483284880269837862400676669179017386858066020647771921550025546684174764739694051394820649877417198208851998544391626421424821222855347200685605270924038058633123789584913366055917581008576499124344184551804467607556369915663419156336635043448750880307508007416621289395120350143197093999216066741856423950055165734919044210091716189159043405208938414192586703141541560451483834302630511762727097994400484734073470073962065569938893415851886956623206571924495759981276704801285059730308667297180280667070352944905053630373043653174490873846531996963261327832536876165241095799816846157166917194648555207548160502626929995533128336269087098186661590758769803837116981495699542745699821760819124896041137144605234055173858405602883663405234622910291148105845057103403840611120807351844511191746155086920592823233338652785603285507845891896822488392567073388739547160489762042759765172243500594881197117698792007642485200167306770345469815143817533510901657859170533648740819647676275174551735121489193798074976049401688325440479421163543530727874711485944119854922871948985615026803583071623773794340347925101697974850056277991074923843475590823308270296147605406259743942915109870003704583299350556331237937422632491332941382167340883323357272393773950785906413394085762989851140039451111592915898819033709338035451215206623292626731300592149893957996403898171264863552897429910868154492838940936121544058441386355581074546277544225365560463363592120296995718302045711504036207825687381177149156150396832717268504875109320357866487260810019351185950331265235876232766824595113333456831684488850199887219894834697075927941348897954347378570509937707757520994586352675269949460727597632084645045524666264752585952595087270624001563106609579409923112054915200334847487312981140174586577871999671857780334989168584277347663093003220302578009117285907281408392191299708146907813111746387697351007393280746382419553075748263804504321865895772582135226199785641809796725478564824823755506745817846826142297151843056807218879983202573182985322912597452430324769838326795447207955400199026094947668308252792942264648363255749066879574022520967301633664800724161026388886819787813117121986090525766993138369570021647994005221257321926379144558828850197063263800830667877898587478505365073477893764922612827575426773464431596631632024216635309764778556067167201358174365409552062123634374853496550105796425593847840441882035924110719943027756463620140229327047292414857478905017455227426617871585873204599156611235413486611062891346295782949846486685456263282945162663727144889169046950196739321017275560587956432085264597473091889775489520188161047275491640897374615052665030234457746718526770730966287979360942897740708292473698334419663785530634381999651015044488887747228866644552102816064542586706446118251189619859185486782129569932987884929394063415537266442327308818282283416886830606569398803913722485342760344022580628257836912589860232008696111574118946532801838006586595356499709741232125831607441671080158780441552218128951699793451977610790933413721153145994722388903893496743290349058917212927109246681576567058564394124917277435982259187701092796331594815471117318481447957237525855153067005672080166406011381917974802111981910254883786937489009193616478678364552815429292981626771188097775392857159598219390853794732135499321009735331525494303140581562853517634595764859984314849045122943001161901550410057963839296813491819826530419785238776445674925484050646117452815426868508833349381957647507538821236713206628365976002995981943781250438517335420106734696773712647136343750702689131272614585951402952831783929346288322212707094185824762288046311461368501087067042033966234007508485005416557270205209236099281024782598915708906534308414058897213887022227821095912129328951815562104454201724625841393537720226884684682358910474691303926713552485356144317106609288108286010414018570402299506519808190995568428423380555706734449638612047502982333161833948475183326653432935989325030032711846594664791356648002956735933922628139100418950811936256478046527797498768347514155407275589702985394201311726321029739768565285431836978208558213335526807010526887665428178494698158062084621058110811820273686902538537805787225078782794696299188025585149995949864931975621964957688933471348170573986069950839053976804605098704070798284060712877351636223307376417853260738748040963886210281457507561021276810075431605130426907240081861242808353960283476940658319998643966200051295188055290883092568594437517012762430001567872826737699856417502577953977079475225698185957195202997244272764731342901115590956994768531085150277763666767048969967211364807542541499131026342126948988061206969095277992271892583194087936190248369913315854512266397636399945244735791895438700437965529549746744929701788478257699786565887574967673236876778134463048671071802880925473213620560310226052201003066404167927663310051029328968638308612063379545951586371212520785921304533953779973477559483889215553668297993131838302596049352294784926112299860437741622804674382449812348368690978265208384962779084653658136898287917331308532501103613976053792025077737943100554729956194581287846608308585748684420467974745703317933885335387800735042348139758460678220282557236978637032133061139303348866125610005895263437885002576244972661208335520398777344808784818179727108274356508619889331178467633764625523420645996284870542388406204492920970596408573443606033562049132528841522142182750120111434916833777090788770536255881492216720732947271214108376644111805145219969288912572638508826421702181725141390424337489960461806188157776414668608133022391959786017775436566350272519201988673013940837326904210952403734939605437719156617490091084714699768759068893556414460975498481089519493796039844076393837410472985207239205663865883781235462471281330617934898160829909726651076152136210225439986248684668050279589462874924787457186923960302880165341966627298435488401640439413452631031001812132790391221870254383427342171968261879086939382899825615329924004025059741501730504221589380767857455849647865804869250762416044642657707023623508317996393287297322102861962133045683990638975853808843002074068302164267512624174795738701172429940195561959134371130827944432968882018236283436902933024144448600766244442291079478567318901169516300647107288252997450687319772313520852539776139962611348851001805611674765707211758699742769895779738964668990827319455068214819482919055894651093764714217963087248654889479845001774882453980951767452648303970159945850033279763371710961030115651683802495790928778874429787357698407377615856545108187406383219976011918154781960721047391460276959544413011250872227414819067359185332145263041663391350429367321731386159243682653790862761145601482264843981953725608644558424517699974376305340714754911157482453759821397206341774745334383645297847296770664085159823208980268686692631165847300783718425851770292559048400783663050388773776811832892407335775284243170172678422247834844919542894925005418568672296353734175608901182259726672025463387781866647016066608556741160951275056597906575438756023219287563892673485844048559818385981351074470350320073875002384913117742240396793106356644276265867309041676741321809780731580059274775811851334687928590067641552310638860271801831615856474484643959894576562689059360141160051390267273185183426100924409117302178930771685907533532720596459667577879496207832782015980012035368842021995585796668982608938070588310097040458716179256746823503335750094945656414462701132152862736940630417886183265459467653400042322937789409932829931949188685803534591363129612151780435978483491584920343411149943117224309201217184771898280737460553077730444530194235120606970372401705513308926732820994410145653660982586962034472956461407431530955508304983166924548344278787057329296633985612870745350992075855923653446298141221874711761821462868829580262177128015267614996250254490025064802076858649447862474365196926206750152703720233462929248747270354556948596735552490781565185648474253366394313342940773391296828339916905012088009421263521345160031771639011218290023173287393780698364192995255376077404100001927809732255944986839866881274037129644939338019996321594940661255498822422360399077848916758847012761972786993316750601233914396812461804868168578119623144257118705953728358911102046779356104615540108788056613885762707307524581673116237187867805581087984236956041504567644270249821688344482470469514922470181766440750718944098445581064331530065549913792977797938631578409482135071861110343958854603015064252895236306744604322837167549473272234346156516736101839347598920611525405104024454056056133714101091593008862546987652013697837329912851092754779566799498576930669979407141512616463550043210544555034506559057836630799704367646950000131294040601227490303558402789414477390003335540475706937637992190038422741714684822919568071357255776384866179754826821529673306660557476921638914825367868087798960139498588183283355950039482533486099666183513211721499072572582384088922068699973164992748762474078469223896320700151296109098800844726198833965395683677302712532330642891866302638771658868915930750812802579695710218538497660681875947761086161052904255532839238759794099275880565740120802225610189599230488293516612338874236604595474214087259223825809830716590847978338124686419420171180697980897688603736195847889631655751807784982251772823207027861236754307255450025282404655922552947578919959717118382151184077750852512877153957874050970621990159906248050539950320801819686100609646231505501832063079920833941069410952973211597870201043100561884856597270348165781495088266940464932089565548640926670946738764313314858584965261054018914633959336557750690516329263963765668281653977429693401920894873957619733751708983566006934281372580612662044692342867117392165783189984698819424435155230027484467810181750360561707123171037254359555056935900920361508389255153435151497832917474378685008710625652099377079332306962908382667513054566548434671828841630188211403758997605146042894459979137173119947201962421451577389731855133881647824871666701457042346103995542408364175913528154415941415072251163310939167410261979746594453179729326244372026957943482090978705125591431178831407038531727707592377865069467859196687646540078519553903770383717126767122277724902862292470823803583651262690559245134311757445152519006508439565388232336797582693672057976534665655361230000260836843676968352927351645233493585989941119674894159102724880461744539695674531863945529527615536651503586412363884669807698620678307292303068218885950804535166665882841094896139707972828635368084794087526600835253881195304851114082407024089859550443233556198835452322256291073425879246854723061394425405805560678887074242300204316329571715535772084134921933499666300577660446111774807659792109673721364568369231941374184158114224689447619282261624429177935956954796989685317972083831979720445760922616253725714700912113101915710198492743230710712821342167652461440642978699321949151890668355599728898467187818729234525526545976854076879708611661858330722724372762304561651329985500566495580966671477153166005752139453835309568875398354723692280925658329083822006025968541363038075119062212629948657060886370853195667394279425267345276364302587053742182344959704155017045695611562952569412920277764700412647530852475589104624154050228538781541983697683788743270010294593354447928721126379335643865493829539796916186194487958519682718387789222982519143984437010246850095629968013602151195462737090163046171505767789990643137968864793802001737640373711437555487792716386152732808221297361836049218932339459496615660304260157581198289694388608436228037146965308524281262149647692409531288163984372502128633374776095220124156549081403649836703205695683087040935206353255385688960977293874359574884749770594730908239797484510432122288391049462948933458114975023628144418513131901091339735830979522715241843420065211989139647648670230055320546875775113846763756065078684352769208933875486107636787339573738553430888114455780643921029843447611794091060268287300593781267176119008211148770594382822488585525477579287098054960439138414609273597262616725770934536631208053668373471385756746234351421643001890181830111369004405453149421725718825818530374783809612100667347573130187988295040222272082034375884272145878671040114335841043875565296983438664371178816323631213111161198956812849918672279311512080896060656627444104405033232963084946826884263133517069306268654305298487839822245528558336875969567417633888202543647277251237943352208573605293066343619248106672725668289685712690282015162998199889318417649654424853056076270398160004918791448744809705566533783635958755572286091116047892308319335626386326840097992505469059802133400528065793894008587812424743285588762929258012826084993938218715883081450030927815001917186956329499241952388401105646069957885568169963453590965396611329292788252175715306541654059406490222578766290808138253523066503859423068434652041056120014467670359076934316756316800164560486231210200464171943870747760006609643920750744723027413740239128790163670774456393109495408984066255955023094770403138955657690714881801520442335753705694309222391025027362647599968723745913561180037599190189141461376473131199080457388569371177600512188357832017192696530110097904391928196935566292180892912729575379226251102886607793848755063513365011615946010380890449274909668391010324316571883013548456944275736230583838682604385262123781473504843803601078814575361146507466822005608835823518135341584744116310677059596724939258298231982275535414505835749697812545143723694964747633576402270451708606268674440288713977006244602912512930235365235703050036831550867492777238436032092129492997566535391153865220126651687964961531567502635035162040404827838113985421851882127548502799883372607944731356278002455916640787868197707708519896740527370155546364690460779705076101686695637822368493449760608923090537455837711087249687157372555883250348625701393830716066935232628380178573338042701057564651918284088872824665420515932409436476326843512134402729219657012503464099731740008488805519050263799541141269854859873831096773896878045337364766211370445075185759259459342495925734131242065345657968007451968274913416031679029754712396328717284944635611970011697281320255259447750448702861559591942896469032263709216969773005368445042325964726288035887278629372052590696475383093795660534571232595778743708594635132099829543564085906694176467489496730810062934619321837523653017425658043089240117620747891672861260693284127330181477201292024344784321942169305904531590426272796584185850911251198558881271798340714297192418922262448815519650003438283071837867951547107022595002823401595418092542970839017193504222825923286431446874647055047800941436000516607633054266039530087481464725201114934479341314952112348512880467619206541510525211133514563308794749182845163085712970773585770261383247410330064509407043064236621190176066444436317757520417118190634600714798771614131261576723304159138094727930295563246797664024689737670836070091050507966857969644516157672621258583216579731333876942658600967203057263219440384629135264767336830244838896991264224198166001555637546473251372503352564977035198009965572621424028402277007668987250328297049073290931286046202531464925863102278496750504298865678181487402888689802309234010092686149846801706968326889441454642804622826142057521975567891279725400111696484628034508524800364970901756296201523260934281287767479736232895236107335887541219546257441469853775663054749838192712632362695709117855554415499133389904954854631501369784224486922829084705259903442509202464503967029991247577694357023677673006469811363524235883767523195701091574539844015025088240380038779856320181677589102645849711278182296294888360869633653861759163121057531156791543472839659899059131985467195123297498532647787270301584315293400169467677412393774291858219217423882454349494283980615850324314450929055707059633025451891941402655508474423436807248033688892094586096798738713448182507093099319338195079319328406142828480617756018610207432020545451829546414175322165371096094621764094516468346870820745051578292450277936558134110105782720371992172008434452841383037300486801273863736404436484989954803407516290923802512496756348770823102351851180664242495425904276619559702133956836785571662308044828111578123609853744814559157626137471903056333799450704947874949531566911139387665414385516964247242501633412163982363773001348683022042763732881711451380996736369752788976291481961801016779193290428146952968380127171378217133504956839397509263459129567557568781362497795478383869086204056547904892354573041932173575900939053056087340209532442002035369601872706636655946395905149234816115570746171659493954877064621114887496168113068839214952835129554976946876560159426703365050722855680536882672719925322598784209406823785269700488726442324177491888236758264773027733567566366965653810322070127178620012980293301040307114459297919744663988686831627439368868935223850041108518048141104753360483294773739915419039321202113004805091227288906055952818503277546579993105705965005776029904827025292323711939483644795086368940270604647663050122750912397922612226894182650372696168472039366759757321905986434261217619937761325080502103340128806230270865511703815057753905428128355798981170281729012664074465680903759049537463804869169682877889523001489919521372530643622698343361419913886859032770646906217698835997739120121732864583155020347016060325468959129003143683730311236120598585327301370187075872735111354853679814313735077419953893879704417165355895714445879440012972878849186610606761925710669198480513244346034591679128332409872820904470084941702580300177029839683323547817221068934906835995928300870970223574180930023486869925903525021805876331581146806128127039121794974439733092307043992635462900161268765536772673514130587080108944706687758656695115843956617132487977274821128373087332437946574071760523643882077602922470363890491920876740442818390699179663868582743135951085662490793699535215186711532709573347522156523797262455164350376061303031620732437829481163344593540025793206660325173101123731107260157937463211913446067233503859031032791493327936999467342674108676007937946687606720512603712645508252712052439853910840576433608315558949515148340750222256000848368811957641351041801319501418499963848724322692636214050553613931070055279772144580599443733569236967910161158335866453146770068438413051046838129121882406282993153046681080033206910679150967714848102082184056354513248363822336014001604782115704732618071719352870342479786275259835467379713889462842504620197263326107658963713908161609492287160941982631272821715643165866818456225777455648272484642637938022525265672187476368225435529129479521809346008376598361576587077552264680035361991441136492988944621995616659686063937919302182457791839547933985919025131492562429000559856898237732457698573414145961605720812076078000460990502477076372998211269457238828173711568821314466155193509418459307014222441845255707592321690880049973951484469428384170871022043054310299531112465914685672423739563322982351797208581771202111996823311171266531981427298682326286474729957473134856942834537469911168626060899010834480653840088253823536733151465882101843237189313953938032354667392356036692186906576683520490191282254131271844535903226428490879472154371343875444999755806539689152358856960903116396754910580737224963511660722487857413101106140220634893599072467299870344750650573819561924966921011898063565022185129444418671300525220318401865119274888951395708746051235836180189641425981474314004461941804595535774895011005165420104939583893340613543979332928401419904020381012057329346836491544381879601978439941250846571666597286492343512880642947423293671212543039173383761864691584070144055090611312610088322573559777229530443885360446745050777940124637176918046159900889859688803783422604555526685890684949511502682527609508698478043699649801156846077210722847155128396336799119589399750209295868455227265307782778894146730716084570347977782731165666167195786559603343095546045203947177121169789719890282992687021997784369743292737087346436349967594749771545770433576136312121871882441512939947438032213529177559938085999169542849519495177350696185298800061866263661066319599861341878979201906174051449779049109465088370813889939486524047266678220294658968772961962712079808710550867859077303065776751894901333061076418135734884089608253947695879342069354576215505875563255819768123076054501537256049447290739485366549304187185167978714389733362787398207025388562165294351013837132712773836847165680451967248034565221385066809953558290967693114326052585538373001183521850923485008981539935703455450720042127012995708754374735313659943321329345703940200966213091415447615792224627045353288645721036755313492317124503951011375409918556376470699424946301973445431460850120782359582115813013330496112160512130752607481651133326373570649480458538918626696062891993363715324431330793131027723475913747794469639948129081990954701496128260355163382158013024855338991002224723073808227329798578018919600206498854814026186866477115505315617480924222271473372336449175925395756822360126911757689110261318797286213456648623162331015398993477064784590091157055270389997760185571922394946037400301085245933730819369090017348140012398278649212718545115170852389769432697137661160296373781079137758941858261331344988144538139721144788894972493308756720197018689533495617379780507071811330303651293952510268823581383094544878286115480329846201838773650069609972159207560168877743442067763961709145252245068347984757810847184796893808329283462888098197009578929743494429220081925431284200814744414561224312275046141741958209967536288749651652621978798333779228260744989146998276551473984175653973931137037589628753538473933008128905277547797470076952104458529614319357495252620212412280654297367113278742547452545775998088063120360011168329514594306801086433985564613135098710772860679496720625751237495105374001596569952572809074348736199678435351101151931396352532345077753736668387391365333226809673887408688834575100035577467753147051456332115925216569219303670777556231569525291451760923812601350947611286533333382260349665846558355169037454990906080665435485665670336973977196277358524337394186592838516469794175114173758797948979998264625368378087298947459460869548079119514233136745524488439395307612110067880602214133918492647094801644738784045244535410009469839132974197695799077799331460093802885786973260440920292400281913433251202248665218150942296093537264118156485710816964703385313995742716105182132095593174333533712418758069504826051207015515635067792470529095781072674605479913459919612951544880226030994025450398469851146212469184203778049785151679219585780508121219285221691666298917413885518618971852248013062719826389839759661444893893224642764128138327239679512291319665698269826226642598687871272795353532911305011354967437086696928142848134069015403947363843207101218335090270757302666962989510508096304361947669428810974026882379964583823132425094724810380760832360377915335616524655819227607687136707619466789955189411528967709758951515912322668678079483424996541301069654169166140991329898652833930390649855145070802766645337059168970597765695468167457029869795605219360095182093262917861159851506852549599861753195335263773809471015123404468770780938438805369377204025859224082009117172168349349124848501531757937406473203384755378664820305896172964933203754517130189932259882871581494445903243072974527922463948368528335341632602082691489389186701192580136827501670299429087323324766635158817078172085491703972186291959775782651865627952532262642858310968169486156942817590645380713995317911236970568513365018554802918707639975890543515132229975119047736232697654701886476885510274588125851376845912643888613041209331411600630600349375306821645479502984004040838009146277688653206431350924232235348819782460691958465013109686458658367046504592792708336131159089629148377668802493153496578681383800836149321950000775839006051399561825180636977953430106767574395507843981482602087705479439649721342567821964026265206793958396566224164731257809685625872798021512849914376502162191433754328982015735837611887146017965219770905806171004468543316421524386474446865642618475878177204986068705303799884411104926097740655643099938873822282834934532367776126986308183043662292844698565023922633115510231647065646827131952345316991169505523901059675443662998557917635471171876940499710020923992918326272149808327753146997867624988463394219023788415355060457806358911435225994697890664425786832581733806943510345882565844467335767959553581510483089165402137065520731210807055604268563702322123592159506389361478733029671952514344278529718131614971909286015071350910144745505168873530389652997807591394982804138662662477651911358944188759748619276219326049693378304831842404810380920213959947150098303485523252502170419118183009659729970892386100560311587069730028655232706404848111978448976740158111536769451537000324271781786615879983708538757730369161444096967009844596588349131660382919522735304164180494406937778416909267910397383968749870109300971074502128637617557663098529084543328430260816402323739788052627759555213762771422099474027013102159071904492009527721847432850310680081123458754652289857192991820801589197190129472471243379432578471013552421850257877862615807308767183388675154951649148980244190921428925370604198392078392877191685532602122768470008521058111628254063880879328683680119292516646192580001504558406461059871293112232744313450346616318447397084717887786564429941859254464714891602123656685281980164617400022202768570121193778927990359523123802914563125046291124970927117363951401801422955746125876272894768884892664887996886478449607910995463660401289243916409670034545253452316378225180340258102618163746371859009544756308857857508156456016372561159369225118535492859606082757291905554079596061321087405976429955630830431237227019621485450457844985140799921647411738383456619786236136405948769028669362591104366013405317053605722551458930154107228926817041837817431883568747440318358113200989867582741598434771466486840496292024870786699741414554315802572025651289744509111343195147906094771865749047066857841037017962668782979894744211362173413869206933207663600085374450100368849255409445604245818304701791642856074686947809015296229868846612380223846121484477865138097122793372989824554272259048347599778607042096909124102180538599347132754342428474441261416283303627439275936625334732755606548797099056593966110091477758912607174302919991611796870600058833779048724449249873002399186026005765782247226515190123313682785747618396861863680128792629424966005511257527178803737858715984891211965662378384927226005012789003782197460917853233724172012158865476497414741627585032305842262450609330782903577827473244838925599151172828903964909848328596211211306360407848196894980006984009079939633927058011663620958455277588067277525051099044088541541725118541840070882617698693084000964627245460545131064583046646226115570483025058560567436839156991544495799493384672319546908177334237811464002387426280386430997720314477082498628108162515518173165106976517242858936194285263234582591160582202961783969019517563677074215955550464869206996571899455492382181226875488683063936271892708938158571165151721663563088736874620256478027434071532846281275314217002237015987348094814260804780903401644144921914618967605613722170364250035592395202695077419612543876472673661858820660744045177791574510315627969918888400030844120275414490314921621724873237815124132749611597603457064642689752563222327492390706013870281868995944541521541744828367321515187941204584250324725783136623648013681249535594655911259430176838296490601951911820455410039539956032129103461106105997340904922187967029632944257170826094596740282634893558363180001531836819276809466724095877326715653923318526301570343925551349330786634413717808921572831013165911172081192101468515012495426558739625979173234277648665877891117196769154318939818721190402883507339178688861667959920949501840898875678106937833274689114387633153259387583591376222484107828462410166231601250867244873868260030831181399035101268477488600930805465141115513906552016606762711251996884861779424699300782754176709722270433232406133480879369148220053151234630419657548205970895906701593466103043456717932234767760679946380545390237078308994469440669634768000671166353877899094431659409000226144507797182751100008458816345385553534115360426336686285565961942995183510062902172445603239885140797661933177186340935446429707424865614948459015716164087399634631874328743777351311431606854126643033130429841827256550835150363132656510698977959433519610697348232263809736811732355880651625580598872690906513531123582100593015355690310219833574114112576985476107957918871047114820815872139707516009023433818996509007924089171138389521861821574774198739527741284756715712553431433243769504306959188403182420901609579494286686008464224562527100480905229974725697617543714096145896327754507001051598004637466310784780368854726411839983202051768830534206704429962053974870548050489979956905614947563590775537673462705887942743837729689562347871487912447350452366303874822436314453321005321761246974769653187683647356772614907892902943677054907192739963297436231741852826792933734944483091921392891967227276000636624531437054944973943935820933584910092209726271053287540062354204346503339015494980116866572700727166287811028670214524635608891858805063350004885306724625912544305439908607022468388547378755607082346777431679269576311846923793484352347385647956544366173733019505780330023747173126226595492922703012922400775200993200607226421092996308272339266579102613036467192223126442778238478229017438250200126830812382298068694392639885568098025080287062808216707375539821437523657452165698311486899072985418285107577986976435960110505589898723588819728653845834816025123496208230810018860013585615742700750179150446399845005365886401980161299053804103254214718630682522814792089107681279254555593797282690887860796009177338800125434914264373567123053084385467889281909101379856467409347960237172835848611579557645027585088510048906402784480767950748641147031230085421551800798518057074321038026328403306610985410995207033865540592419090150922946870215617841622514677842398365838671807518562701349115793462304333821318165699401970880358123331270485236960340733262325016865480381487244466075187765805634939860908593155424845859862897418113756725632571024661878260697273332850046889223825058677492055158258145629364182928008149567314510883952416908381162671902142389462142845300012590465476492298019633188033478716461303518681734453032622837900870701830594526427237346171784996524951010179057752164152097982470223561462053103155718046543135711278706251956686605952020365656524157930015943535160532059917685761195051078903270946356453976710237291792904330947231165015193770252607042346689725966148562168581593297267798516642378194194934605102347275686904274629977443673934259438658806263726905883531906295423608430745739318390593270058217843324337812475129222698832247131007334361272047189455707764426716820251160929360486862805638563850982154321784480178834588597224106607179260833682031468250665786896816389812532753701952559154372332902709367442304470487224010145048583359862258785967287714749857740568888562192840131528600699610944629979582982469042660030257916984782227137608481629213521563652357799380635302172854553976892327638849969477753758307267658950480277689888396461746111779840334352311614940633591098772396783815297953829393222370448024984870753526647464265851960426492829228240638777300177865085821234996572177150725591854996288740244014648418086151943891897309376368694098400888432401671913389141533025735509191303786378516548590712173449883524267511746900822998339600700471133062154589417688993235955582870252487226639216380479553933658464022528452747452067919371457364834483518723511687311789772399648235932831777987453938414214798288474994951720290979586710159313310083427190047481893001332414022124870134810981392485557394571657844710135080599639806058458295887287308379011134353790196785803525482702937489118387152713042750892464133714747918363970656284442135466498969724484301449146532034236722068694600626228212663408968497625120519981021771223002790348617601302867012938743047168062570780011676299761566348395823864490944559083169690851345420221569489534984983298068859050721626654461552626262108641338541067583643336958809744205041134824979222141151128925157772632659741260749302446299395230639702587486888468038271161230111771855617196422165489976268320709164808764146483216001551328143565154141851883988771125356673821805993641016359189461022874289523019492812453903656046769601000854106814210899919454867033276428906761504411631982093887447305555175229062445708045874102974236008153120838273826203932497974264635228196649511569924095335885598386607718847744486297142612255150199451464594965838629902656470577440463007889754854122656253492997214643126071613501323612099149917399184318853403602101997492526223171221215498787165471066103810816197181982901730267003081530455284789917163917402956300575697075406969964706123388832959588002964799450398451885865584545270220510138162802172276849106020226911063657915051428521900892778236153927511875916500661176344751033585656049884112840939374775283905873387840985687880266756657572724981898436445645781613558893109870214419879526808162214410138591363308393895586892302887264503062702593870496538724360898875461280363190501940273050899894779262507461260309870905794751189432107549847762437763342690409829948166794173561261246912965737343746817348509945104506327611213442634278198919104446193030723782774449708586224931926796341396069092214751513207055824693810280999375002565534933750846851573268591688671538660476835737833893291813567026166649970322979895918349071016683896965625268561534236780749698134738606227230129073034489424225626655018041537537478844011219592925501314982907160950746062464752774965955109821671295413565271039500096577966355971902361827861871422856595295469066848160197609568632509532724576765992388540076408906276896202685134647702291418354806645494622472508261103461007852407089568105759806295189648810592113381073438082685882385499331494910339910891912172259564700819455775080244012882066181518965833687464881596091510781164096754729897811283517690360616992214900848421645823342371175870416644485968047637128418273421833908960529922493606305549050214684448636147819436767244397835987758070405493066228534209913854135501024228820159860500910745055511690028221484432206671288334999930171779249600688069895967065619538393269232851535700966540509349987093967879938766126760379372387826203080967928172915487210981079430471653349117153316317976239931439708428706299624318032496227657040404232236283284555556476520985355673041699618935107492317295532609931833680638151230956459560469952715433610801158591774794239158505775530949086640044409265378079379021324697061996860098698982554751954218989538852924076211171762620554426253856964064384112144153558523137175059953095005137452338877729159688445750241667371027301879206052401417665703640543452420160385514179044434383809949119913042993451424362124730423152505971602212910230230704848098104990759729784251216998428909653688575888186891515450648945212959137211592489386782406229661304292943215667399798060624159003277589609836857169725434546888252039045039279005723395483132000646366168371231512004840481534180659250586646739829065445595600476889802907079505529219118959836187031876173620108234765509567430069222459817055125282313604531617940395984078805850207961961701046094974234895015721589907322743306522210166338530723490283809815499842561564438363771205557900315578561429907892636164424057359008868157658540909275887053340142596533867322372106130730681453961392453704921125921531047271490080461065929336193092467212574834066292260800021276808106168307365969689840265947063821517079768130152835998916325300083838471970390035346861368393770168258104116625106904931006139762224839871484490503940073135798464392668423113314141392757427271150444475186701221786214292845935071788955931851286116572834584752578997302711597307242211268003901713052742877292465665797487867507462553443544907202567311957150715533479280145513211191672469555212890608677782635132207283467210667081805490568861554113239673075379122832564394985946985002292416709093436576940868097291423637746719137852669350896255576653238529571607044648889664603184881630025466156488136126323916694545624314746841327019737600689218196474551883986814029628955990659916906175923926304180893224734934100959909400129971047509174999983542074679119068814452045563400542261906121920599708281457808271319169728188734057349783503551816354862902326519615360556426386734862030740127548364035341283410120748885375336326686898385510923622048888330954656354459578171503399655322957915117849742200932853630803611415432824006535169969472149958752842967411249431382104599261351254857713220078590171284616049555679386941959960308151440520076092140029634410897155757099361027568196459111200246776661284221314961980218811324378107098414259878452971316283342560070498419130011083941676574619354167256468054476869208010842095067823841867195032185694138323425922836595400458108811607445870765002064628398645448410179749857684147582684407553480365606787589997865039673982277482042945816543808935408962867600843033309841503006777594837489747292003283129000580873113028478564930358997828187685362392565558037089957820257408539048894972887979263665528266727044856788940980543977053725006120053354039168711332836520438072260185243972449488165126271561850083530030493495754242843489351294866302403095877017687234795193761222400106703692427929948054131245294281934226096734476984029133331973982126138008966304795982499363810282364532645434674509127354988664869836001352921708450247297053071839630531571368717171773094275652886695463604226983235548083044364196284896510983312938850288821128483133541415288268000062784932925550277021792247970809184859283738594201424785472844208576994682579866700256921002956894362228314493157222309503778321697238453057359621666790702422099299032611062744017634229870107613839761693728091471808195290156228761442100407724436636487741254236158053565578189177198322364747472749850241438016867376826228021794442607410022697820572995225759874470082921643210948964381436891056555718365077147668714972537070709695328236419425409118596003557650425783557194935272829643402677336390526376377486212967442773364081615984381173281058219578033150414783063984973725007550988326035365348960737314058365591716988625092666702640638629669119955321105789246339037629782381560823026656557478252250188743871918829387683052240105732547096731172502074477652111803622517927236333498392214918657279918646568361717045686901565287187334209501839546239190829271861448292643560808033844994607553257813020607500812389206283732224866682667468797115203983709286214999152706354788988731305582536687967346574581655145518795206706457562339418918978912134249406675594423399858289071292244946448884016164817006954788221657892273849505152075265789763630836075885860634432468498552358134884520445826051429836539433806054421722050456156918230250365684156198157806372742409455614694039170174463972632839951374959507243363699267676347656186401244985406366334164639326220300188104669989106270144548349671969514023612950960893244763154419681532530806312035627747094529385320603101310053880282226643271529075859356965030926295020388443361795646254379580179910824374496525346121732443839625223624921998675161542111521554846394027544558931451636909816351579606454906654619072177912099824439316616493040589781231922312962172476766501006599135912563568332319396978529171155006215621788370642622960098700106210109542497767294095754114313971099445980375758898847852403007926229064185884150972752034927836196215177018257447521560098576852977096637885982102205388645840281728315862660711548355254791241947437478979948931407225796274859826558447483765187921341271396000446819002369402042177258407944273118554745830304463020855000112181215630613131680688862947409783022205626609757371899272507799130425815051151888958151916737626459707992509231657098039365079124216757837538801073524678028485407858372910126796613356138050340433780894343945664693087938245989062389798020558579211542866019880974020018182774748636089556370714279578097045937489450082263811285566859175850576758778467507781253835539746415406508868870596872494542769524520978634953132986914832784902149029798401065834958879820165368109839064478511455532951450790974659452516082758120441994522739101470616857165077404071622872236400153411870238361456561000689627290466329772054803816150938896306964541701106794447357069425745495339010997910257506238366273515513960537178215374654918309088859944166110855860714872237383876606560257490481303469276391901351910566718094924917692837333824351845262170680489629748590892368137549420144351920659509353492175513649865940843398494974400364764181124664742384901104926229242317843975997085604148693657173682562478160114724141389206635147920115441423338304216940605914501174418335217083362512955386943038419503698364584722914106954066730067704516905306790548875356826425685442853622797661739352473057677922907598591161249207852302999713033132625994668375996065068940102042120467688689022044416371187581782510490617850022011559563746219969693177842762179384611315778814183372969734045300910328586353592808095144999738164628329911821981871305037535516828089161836395112329047309627169062228242594676652709703823698659035493579659121849093846605858254253379608753047706281479210540744772996881916098827733413233211432881180158040624789466831885000209923858887581902844604497161893607939387577407978360398086612332596203545193323347703868047306975480564574282178641865690284061134646793236465713804154908872534852217913011245342412464490469685435933209659060917171992147570333946691598860012011513836275166135886785061757262308933593100181251040208838678513654869843234616461318185450519939784969313322100533907750556557257174053631298252592912902122066562234374596671077234002553946728425025512277990417882577283708796383955227563549590329271832255328259917417533907093948022370807875537629807248673502274994147669754645905940929634062490477528483561887910701663085717358386475241382711303618588321331574893358091435547700823445086493651130809961378418801542433238847462784144316815764574749760816506328406115239881691287603037911509217418208697965284479987475174348703229896165309228027923436381898497258145535018262679615750749603811189664814237034861659356665798679683476237788062829732080496807745853711050874732382276932253485449035891057441365064812529018330244702911960964337325704124336456167908665243650546370808185978797063773843115988746767110987025787548481040429384631501180147497332326087820120847294698225274270316485305469235048113237429122518482359427336620725248106656953620345760805351480403529600736658245833813537571411004180092970405149959934111555860392063785618601961193860147238978094280587777374229989788179964347405962908750850769445985357582888699186810791203048225802875985381564305325328937529224592546472603287926265378359264647312017995261398439545362821386067077958510592053108646882370582234776222271343705498644117505856690906649601814341729989598048785211646471139605958049550767870201486183289284728532380764202366523638325324480497884112708317239556787375034334667827921428290458714866409074391885168500063455165483501071622124478451343632216544049740335485067832288037092861626328030994631683592010453722100724627495641132514358535191736477272997070182464063520457960032637678029602809838323197459781322162917097303563866808489544312407919434829543046863358241457060937865315332637869928252410723489345379022553373032917305880729171070696240389753850945936519273115704498146881912427637247922225695257899336084925377836837692879766575734812138241729541591259854852518252356018187607706854745757424472715817778287628663161401224939137217007784133303657759186505644055887168843169712016950222469518522840095160235352255508344526504292703235248682298676615326356391759127610028124248488836719415290135835730320075697307811747463221738381597914449680639759028175759049900117940735069963956262528942199831320842797850004166933714680728018544344272527854082527388742951616210298296996027375323494841611980082418822160722226932206430726838709725028261812961319372625506738118653673005375754717512876299214421753869470650695207916346490592198320647855191351923262535973649534054290201721203671298538176619789622377054663364287845582534021430715372447515335350423844280020900138078860218048560633987808619424143970381215901152607327898836325878858763380468258695889931005635178338550821676635990429850927687061772148318493325692688397840588713735987143586893997612416165194296661636438038261094221552663173699358877424542398351410719227360096642684334986687169696386456218831670169772287658935777240019444548892542255167619781532130976740154943294924636916185574211975622854096026831591571087631617391721315856321947902161264888055371933827852347159340393787605549096217500231305651972656627301986809093645422839718203433637908284387053015711278176813140244131204274175067348862471674940753538696882302944087783541655248863325543848958036893258170948428045501590060530191322921707984837053296295842068078117494691354732543439415491518713026668500835540983295083110595506611350009370321845656712043242396547867776325864594510265597639197781957171066037769029226615980250044239721276894270504422881579142889902387287241412205178472529639574937798428176363930483610207645116128607155781545627055261721589783063883113526073091642034023249603547839751994171922194044220788824158809814913942202024562036691394016945960206600806313330381884618764517631186747485365077196254575956045846482339930482622881313348356583407476884691383168102995312683719637289728222688257664232501402377593095102901113368260726713854912567621986150215791211733243464268492664904326023858443651629889427147071083140668178312208809350320434286554947649212328711280388470483366373369112567010184666000772114709639048405248378425925722750999537339801074202516342404133028572945233690628791454951177327383789983095046159072131812563441251487021685908392998523813897454180767153843710252152745471528667778181116657359191635521760707122619809027016244662594260283142225419593888790888193283935778284410290397582415127957555166510353110769942438740079425592741475579162538056318202282499377910659726821596089330916997656637297169708798565662892411910688683216640600428278929397770150770196205289324536274797502800866671980460928777321094651223521959897173172924770564864763469672561705647461873681910240984156878900242130672441196995950438351274231802596067943423665954110818550582917367173612810802015252851599385753126303805243636544682969456881681035921596214229785812795287535002674566078147522064055521149973833392647423053186895120953798526531318561627474560514196552703870640719979497753458424697834735836654542648826832946147276389064080231160299059043998906145309793932166200568547135425896752202397114956390846974739742264909317689234244304582923104341741353932651720236303152153523575867810823400070309029609781783117883033705594803001596131053644461213069290419343063645881178505720151295733416136973088240807196019128216350087740895029316895859778608305263605327939267554991384175844294997712626900733165953271614749020966453838128442345067561491063435918918693005723745902415524616157587115536289741650378821218746371531758604759314822237035771859518157748944189146724207536845379200082692813739192290368575740123459219402755996565044943297379686435761992615670607137711907949283422565488360669863999843523313885072591970973637668242214518417524483898057819944562386326886902993735589669497188575941460624220578000776122722741098332141732571599383797243145236178635902559255653686636962057785724654317075001903613541915933735249499093095908595504565252075896815940489378809275469691093469224050286549000131146331738635999551147437300339396116363313653272623497776406898558131070013652024321926456261296678675087537124687116756210694577534750842484759643216511522645201695988318109463394864849244789373782944851531948676337345233148095384641303097067372869677300146563435365702859742002307074656335328982395808031383671498171612809060556764877526471968299188171091066369628960995829336919919508905154608842599710999320409164510414214769367828969895075152503760651939074743610875874416021877368035742411255788706956845318620285735169411378017092873381720170534913569160964777296567290253070929792258036559567408478046898196116140895209495230348471419403402214516925533433986596292646731918678515749257098027999127466123073487890409178536270868220233590145144910988482005960302131554677962746150074479888423829411718073441649696059102628839021420947013666376426386362123127762775464143276104248860953757361248370065040518905325454900444327085272573254713964047242040969019135302005180721289763396814827648405372221420468301604148841918201708485266536200698607050948028997642854327555371770375070914556286878114533639004113705611566307766855151588888792713488123105335866457300574907147419568093195828018707178489932406306895558985858589471446120221281520242995226848465210650014316220969701858021960654747970196678089437644989169387054346874234049964005841508866377076670931004455743528535441501497438989610400407479588060463805027073373423818100784054233989404822619654428233640899724387469326597440902575295307997805684827130676698613851635222385576521654433818135482434805090014243743368661036545691568424630296549286054177849706660406001306199496299199773681987420428837923847933709103354938897028439459355502985421477217936964609469380775922897193927109143067287370276162776744725837237786044423975200664160074486463927895550797131872714855205711915477422666686138508519402176680952035914613008273668840291042816196672561810575939232452441020969290463549119843157110523156970094111203640861448109909798889354406413428890152804389469668801351488236688129333130814833480917319724434644178672625365859018420298451221789351006753733279507047235770497829636709588769650120851260644427700914468625897052649371588966615401032448129587073380418091813271923633741188879559885780578070710897377461439927835285392575817248444161587638365074821006861771768359671238566135340460183947633463407223503375835862972955458725022169037597822577658009338568012110285527372237179415908188661072573581387408947141521388659579654817190107295847282065271708801587568415635570682077141972390663187924049792170485322461251296686110295858758912202515212022087779757988050097958232219393868118720385806602936753235654848721438491111410306893420186844269484218832448051522806042464845934914271799622738363379991129051089095853495524357316953175865728182713174217192891809677052936196683924332796316859340927880790250107796033366031092704232025470729962145341157261780068930284184115324155871075078115261706211476981152679890788686913564262388011806698521117509855469133474031784649518254028431391517991789838044504595350433980112264653548890338013107385841066087848741211806831412878581082824426155400605605162571920058176843005992111256913028222725802437537448662784925199891104737287897858537061671150353332516305918618623029507516988774126049087475615088642752842962321402101719639137077660832760802579606610756107924374271627815788721734155530495523514950256932828387603599793894681899583616740975702729126292930125686253516360111662469353967049005423555638362622693971604881021726729990527407759015741393076704482062508412098320450366229591929264077523031355064262865272997152553965945545888677585125310482442817732842111588238157285452201305614738647502724507048501657131467682837977859324673899704348773342139119263708099946314734916632354643588562679549007661929339911355533692997670947918048289327557410201492060569772243588462243343541519466249678435283422757203023481885177868496984328046470329139372458969639032472798068174964934473424738320137645153608342495596504524718293434909906285227502625335247515514617950815915644521375321450791215657342523486244919997460199909207471709353076134610894952539844223241881589872217271126322592472335783808384591325994331773594858128256157019768156750094569185491469733664397498529845738605466824725723670488842258189672259143774594980900427946421655746601886210750139236303084488857294716916383067936040649293850817053940120400867995120100115864618232003740603214100603693859746935226924094369528075727105018024661960122252004094550972347911841445387222509998008907012050245234101784408333959438180688609062107498700601348903216346006649797016273395050486744629563710719760029596270877332803783052744822461463824671889733146919896257672485091852656332685333625675794993580206126605994012730911411523193881045822652537784220142722619906798438978094968748650718167302585209157093208274791068279630440890040935709959347041797961870964515266819591723018926277384338521510706712826749914323956050870418242898570388732229815198709226188656799372868892262863078566795710896394889911813457527763508768577738736424053998340601096023558560200246564174285147255755202965110419953638557638547305996722953162360884853853945725064140333320537102695562206478372225937394559856928335479400841101536219538440070467825713745068568679540975631599714242316884864631882263356299547438246141242894717283238264218340093286547566648832125590203324817058654869757563679151436055798121208909991183933262367489981001655344038029798829575052793492491546462658201221823263382316346059439422159462016499929592995390688679206446272860681201416388970707724911047608558231931229661942340460914810075433962799765090790053203346738647895106111697376545219585309498314167566349979837342112093096686992902384169267271146467581618912446264259193969228669350626023229784597209457819193493650139564645338793984236887366977565155683934512664092427718916359004531158260014656591722509997306203381218437005964633363152323879458220276914080483895086315309121770701012466357570816841023956026056333472109432239979283462095082011679923921354100764018408233198945234630953631736010426167591076173305520918525473945912194000147804650737560200264516506863189571198708178694382939259407905547059849774098880359665031511213753934453945266608798997638468034374300681986084879232071647290916656532730742542649247663427557410219493273277710737449310363017585734466854402135980511478128039206705542676544254145239722661152743468637535023847450579738325428968473651124963512877858574859710810657531976828081728413759339585073696039014193282797121998630563656792830516661386797146005447711047447278410315685782843928423541180639639775120927257351301001370961136099284422044280082139038038216299335881270311254385088003215462647378492005273748514783088012525777025307303082702161785384179730332146868630718177230554162109219479983438433195921984694263393126513632966379533000872249374387826581917364314227205325555180781803027256342152839605060162710654811829299094415069538654756617933570321837115174086928383910198868707647191291980672100659782637441958732240325051463788230916381526428687186568333857853245097125249436659685601806915506528165947850907880356535648348843170277270286179850620398548532122903912102274008678032375022748830646789853915235696596764925629720384080659172854236160347836691500123764809119072869518808292388498877015028028298748514922903759105988638653340521392539299022583754821118202000837723845200129232227190282857950798924651703006830057553522792465474215983228338566378862737725626796935816425800831613215216097375556883597322426528148277437874268075916459189911127457560392779069089494060046990790335635750120568951005090599761110253873603557632696674327489023552740955003880568920605788661952820303838545313267602412022396633264628155262314522381169549304974011851660266989315884794911452983193395817630726199075489677070887573041269031854698647177290378173063363361641288023861061148849044802236632607669718374855477272745014816979568547448079781550423298998912142635151489144296103815459464389718183930726083032886507382701190777034672256802188693825029438899820341555215414990956725362606536233433739536687389475004196687031025326235768988721506079651938693710607288480050001150479886801442020330697591286527786295303007738909555578372651535795595770263498634004588959366011659170651025503296099156709975981186675671957814187279813181112401948863800049214213001557984476779515437868314804626259299964598040673392658238667888934242233080728275617563556825517678133909816373912924606497363703037040495773729176019670806844015977769026573878993215791899204625125189483686186689776576789127694610505206888057466039009427073937140830417415528083845176750263671827088761587405259732968096220244587949639262546834283250238334921900119904903906659813890266632350025977479696760289921193364666858592414420713697915447329928746894987872858334146610164306078421960650615380788222270270741618541597465723790351788503139155817834158102627161666115992652194988736669685792492218706634496773189858290687371146880635881593871418930343337909450036295353075800917226055521268651006376447031421433431047537330108495714781404088369343100062572928756608532622593998012298492615009011986097449429142050993857603410045056311115188145126056251921666849832480696779503857651767923066251067325498111064876591135588455713175582279282744911444543992183116298800887165986375585913282364047076530470522693348901449562642738921886470900921074429927046992890084744300883882492505938528423321074865140109785698874357615417963162217800804924188102270782579240831572820305354090239388401413167382195295362392346247680537223564880776934613398885221397585618900829145321157534017640823388664465103066310995405718842580245564739134150593423026217502907077081107452588783408262539479965280489537302088305181828170079701703749257855504557360493387419099543013648983047553210319274448508439498548668412262757537672312589031278220982073227893918345652929525726094391104084457013043493999325132268958441227989154982988724786000775860788229084211767175793633079015496968454526886767774947007895187591404696685858084741078549970307690310316612010685562230257218719209606087550218299624439202568315105195171096369118109758315898295600615771424469641616182899563221097440743406399319627569475122161742080990080467449642843700651765577480087699859832148641068941893576399815180643437153929750225155175732206161735529959534795695085672040657272148818984444104357352165180334309083341495740949893999927278934525428881498380503378432930915442485041998072398340975766475696383692992798792277441300020880039081752471335615440894481635822421167611089152539067064892002048522677017855012139724924081148264813883647880219120337643851377013800545065754993058822366599134036451080126169307176589283020943775808128794298280754106313289818676618111348889668958832925969807888885095074681590893231766162890995583534609415164303571455796429281301820036110618282175212768541743438561511875177106442329606586791059543528267901291513850598049037818772318869035672705342817442566615106719744948559689021836738250238506651747063792084517297570086115869567757129014504038355335068161059315365203264406881718611474445690635041338988617359103500423659240141619327569919093755234024263286794452395203964317768157664240079929005584732258834395519427117030009885539290710913822592830199653011550312035619899562899276536183441215473966784202564597168252961076600723963301714852953777809291825015769522107802295477145183862521303833596901992194926993042858432192362770530577880759202785922117661613184253014894705025027191518126005744743457955571942269171718205990619107501166193724079609051490453052049046883237994900615411601306399174175669846724705315975513615809052318561258892687921738623003350726377221125685080761852020770461556107178439975103605265367676190047020308877342129343729759956915755544345910478347359376919006266394379174604596827179288146437988583810019375793517108259338143847941888384025180111650134001406280644418257338239585001607077998626367718662875769640158294367633490636661780599841352682480301234191646638506667139914734866842614367146738994079667610830381273832648070499651761478744574823338445999712896842051693773828102417731216773730313014427574780934396345141998991179620848882219504474953436399104454811435394840966790661663637392724301327949188683994882661678955262353195985942915215062053740991222438696095401592261990953260087384108706385476603598815930346498680558113304938499570903802333922814518029442104460948107461987391316720032901542280238954413786538884347942450664302104479705641712895348769766334868795901710467232751369091382944437201753081909883304866596453359191643380623284668633281327944613005873611465834191701273276827060995086487618119650408541068807196145227504199686690167642015039450039864532435822505142035109436819011538747922712738940200764032900132975241159840159869282437763897491808996186208172667674381212374652335263949327495157811054894772911428134376400463965314674281628668153918255229478848115221754687516992537236387788168534717255753855931265411655578265354018176277572792399229485478718383568102832824767448991008475393644670651057302402733530662315774859497834401620332163780244363427731262636017065557967056621482722268726487893443841927014352312938247438582658636205593840326633059075375901779775714569578162764298972577100545886962149778741546846862266871504958407774821831247831261224051996521737415227204417655175674774054252424981747749441008984779412171086876960524610028250741680985098509837414915971737743159451999961387276128543428690432240142431460922185086289926148234960629799503075856951012298216606628519323845716140268689902203954089568713687952376780474298931917208538897232119481850465385764234906155731430220176834129001047756531183170659125337073615977488827861631348124075688705481719237009416901743990751638549815326515733466557887650868896322914953011968669731632689273454762020086748954809786639252060891473486759179896453023428159504386925429209318907631199152571971127247074451582553587589193319992256826779169329916172017251703194938629568633880143818012549961936356748060082475716823833757734824435127041269508964103433595352803193664190771173937296272030009424780601778832348387550084222036256082515475873941548897442630123556315972514829245726349688489148037598561522321143426263565549249473848659523660087849083693653338165052552045106683644090586606117930728923636842351675413371456269825395366401387194391538244621152114339427600933739616776395663503869551066570754863834375439407091355237538399693142889301317903699262469788600031782475279042782432705248193642940594655731482372184062306950955797473230845182938897486370950634814989201702964508279739981961394271455209432797166110222506894097722287201609867102608147657214572510030237350282629302309058173321257773644640547548664697821706313257661346459463127086172399804415807862970556428124709243513740517595380800194973378401228603226426159831782205233735582277534632034620478067771189249864239868956379142187445342883603754472165778920025659888718690390803514340767278643670062491966837841512814333413786703688280303255040059890556717360697919593803302534159776235275882210078349713155303168764754709522539199274917905703590475489411047813557360774827170907772106432688466443249325620939422305996350523749297278445225568866810658784005862012311920890455158140129792240424887894065036278834798936980037855942570710926651519410201859550777146736713465648126148960578863484547947933156282925997842244717040600419793453503869135719525200782231405132839413952041209260068404466163759712831175254430956995465908646166668862257180258969522392129069467270059837765036773449630327260288231700615957581406774483216655386432620048349786653913311702205583245351753687370044646533589791972612027673039536385561313772117736718084220079320051917183054982893927408598644814318968076106562246866632644995793205226262220178007738761258684232497795632705436741971704902317500708194823273066331921928914550643926910416238038611077406439984001551417667748472110644658679640275238062520094542533970977532036197920284211852720628464753175518598945485263037091104075440085302680215433193011721665082938798021091782636315786797932659423290452989940455656332721497791285646592795865782231401162189149052664237040326293710273119644255452923265178931644251556531523395599227468410990637301890997547199123948459173024547627500767658401121565213056391021818202343038859133230344483784779895319941913265764970729258882946575533002328822753789112372510241161266389236520604347887068685658367664148969772650767134157475562329695468304265691308630696974798541288608122017465340665192934042024468866513921863726418230237835103566555037646757513985118075464056585304574032364476826169141353327925570653227933614986541768810336344527458606122169706495162088930461211189442833953890115855813065194592268551383212555772617501659739985293402703562080883077853807795501998535992069624860033188799862066361502554485603359526955172261054475371116949025618661460985861566417566460610504113834260878914732853904339321632228447924582057481959074151554526120924585980292246106807407848330595384538221244197674812159864536451567894048225131787737943870191343393541864658223546243711879457866608357585351391481253575358174075042265723791193698622166377528897132014675816567453216116240506462697743085556646602857062631699151371972101083746421053269795902784304068145937823050655409913303327135939719311007711660468658541134239520834638641480594796176892416503975565846711705753559548382858717028769260992387042161152123747550825264319050834020491180507892157148888495022418718746675979093571362014789709985697637213339870429041216831540016306876612660499807679720256123719264573270032462218335139432633884579691411994970887292615689874428733450884699064649358860895554938682620872138417883636617543119132544567863234812904397683660150041960366428438983680241528508395059287986041534305819326441575620468645957547222610344859987098924796138296769243890595151570995122640407854103646616179821624401514552468452261318910341699360119352416796400677181204069069194276842973777318302985974113172951702185721075247680031237623646255848149435035350909973191543329821627680798352086044016269446442582433370175112894937952594702581356008938717138128465859337454771368743239847345573404396274108623616454448100706219639710036281458650464243260546833847764195599897391105253172616599864565671668588071914543177043442077945198717863844278031515924266148544623789297403622867417947571110576924988816759005559266987993303305713008630294438785140937206085673722501984883535048714509814494317476112248239525483716483488732065496581367594584765678963665221825974248379430760096502614400190460861092925136606461247930318873884688561502613330362362752725873203330496776130993344770428528440443994752526590147384314562027828335468255696718814786368065122748246214071805228497295699634893540286133423412227308396255662460786505666864741424725382321970219224151801947268523594413135506476425740766080791934204406654972390096984387033797529167916019326762809803376090574143826654543351508341187541057591358927059529312940401591315722242182171235406352415690996028243721527678497129932921563646829402435715564484631997058818617567865388392981124780376763265921937208853643275676526877932649825937679559703958222347324555539026523912385395214601675959098078728913479016343789782113015644272880524543396469950410834731905412510760781252524323005701648500074737853818877952913902275782882681655519217531364840061660527019863107651524772134639988883530376102304658521267350721112528343910165942798249094954575128039416535571396189096519442198001946812530142321376766707246606857220013841229650218894187021377764875575557505088846088045994638650453997855598646375902115493819423228137287774324243492267018899855795593492305973523036758652743910351669966161945057515220438265006605048605913176163476004755765119568315683497436304392359306694715471742857257189726252346959001500420621200658835249662363733001697227804307214927031807038283485444066943476063465169943168511677378254065468961186893436780017540362788441744228499848445992099792826218012295223836835526994584115121868675755379458742367588160775934865200387485681359033197417919869407600336944994442919434216827028148742950167641030513517880372730268618674395676363492594710685741968002171916776265421413438795197562703684137728918395894983914991619509019167038787144505973436999990901716522528153793203656246718786302640111954407774694938658401372892782296091939620433470819603730257486863211129219433048491066210473788204012361335113900625275473756277230200283270724355853011390914546961078411884419141077904819723160483927879495389753643426843446723709165038725010750989531241509236915274109324161414620472301963771933758198030793201248971027618780746636928642608276432008698502528725640402025118166934056551281577675922654219771524366625500035081573116717114457228339355092716583951470513532121352721355916562414548258906146106334360610191869261717587737737197031307917652106356091918368355623877232713659053279838677035718798033164544620690843246642702775442176517071715509773993143455512731283441824157627430240598094900899771074609428413575601448358689457825322422517955540117472542990427126129489815651233335715673164391632449851263488862481870741555576844895589511238104953561390737657209306520673485779535396926035865926057026874468739448069562277752645586219617611793507080429604103283458946158271885976578224661016295794994365925121376626269041660488120349434916410101908073133534628667995932713220997887587714627564799208023639546548932577252436319954599111794490913803345794545668733371268029861145123142221262826147273427271731511334206017740813801555384135505134919470355643424527558891621546458866500178748509797826600944118489970929755098999593134497167358326798007923039997610189384749711806541084154247646158389961721999150619388387828595015305560877702679460743587371095434924890568741743752431138852911109924113044041817565452791385568832504401726563636228762397950326759908104411901784812748906218710604427798279981196212834525740380113636658803427631282699771795443085021264654874137500373892521489739293156567724356402071601083910262293385514313120932973504854069358923927207783089631504760388878995045518166734432850518528588780395622158433649988689646692627052446791372786737767687627386457342520701974731103721130764693187127887403550246841282502980979453406626189597647844213097176912535242604022583851083863340934045906776639006398758325316599051736283379769185191937654399081482775636270294248461503380175579395736963194895590363974942564205615040141748405001430787459942239779904624199143452534255601253625022275495264688064514828391587298589470241571861389921572711164095892592326986808057520763738345634904029605112227038243510072985495362528400749163868564068549163975785027752010603714300045421944020748844314863213371215613452196592609066191194900750589053286696193651314176095674221434794743955318370751300772246073494692307313477781305456977378939071222743908550109206411170820358165363352588617863775863875696063553233236194503550294565734699528976399701251005862803795165254817424326225423317239450342381913143089715991307662991205874034151978950850092074935980900672018695044547035367198524663601770453749510360935177481135645600221349444786828881407978849696661659077667521265646026128101316210897156111400813887906283329739615764435839245022632788174450077386982901843594700363606660148560641077476597486603247660548727434982974348879713080944848671339524697510971647862452634918051346751885401749318036850190334006054071236040415891411721344315153926455779382475126434151223916783579976830435421727094181834872377781348213914191797406162254703477016888430524074399719781901223745356754907380552566392081389233364423978813552714636867985435686341690682597380437455476439765556814595658607841829722371681180507108347253123542150584834645157326305396712934086901989010281252186302073528984057706692112570466398553480694524155341365206525966549196125753439727555991577302834653179589585898348972477827853518893136605342060479130033737999465445347162168552496521333243756174802229974967611670639529459119589969418995012816828870447547088031776078955693618512459411581990179667597597384832057217450761340102770940131900660253205305328459302213231121927429422890542820241241138263415477679329982695215349308290775099180415085554231194146977500076165077827712969765717918967081022930034384227099115390156177913532228936832805712875558627729587321968729217294091973080323990945839762147128122225651926536552979551762231651384009686804900404527284405641599098065742705773040822032923588780624967597037386400358860086378214906974533567681937642409753214541110861758858083370479637118945381329486380370171188058290777221178274139077526392595175454111582194621352415845043667364407202073276721952306214225828446998012920764161718444003444703223690755741103172368835653795072895552054128218578111367540040721435983507220049144453815476018036039347510394237209650966742941060128431228754110884573616782903123964013596517983404491420837148613723529383859652506705322233365369845001729701711126585975541511434625642140104391876855632906331971235199429210267800041331512356273051354555477908339198971052699033877132914549562470968112889120922113763340901063075507912591519531922583369119898917073813238440750958996643444421885114947695719419070529482310520969717346438188682224308489776068981332196242871491515611826282561574366880730208354564969755274613084659417534549444923112165695752808750109197376622006545568172747937670404604224350929033023468438109820934246995864821348000443615262079720781121297252128963664454492135386678453671415083127866329835402209378572198192264488920618098867162474935105157250489799329019318338509137911616120808744239777495923781147263205760749313742455559994883072612952862260427962617741720544435670179074527273639420516454747638212958738177050584690402336019311824617860933497700720038432999750055021246545207980591978060103306893827582451912153441597017655344010121579866984256911040636659167546727736687711801142671208084461268924336749922046470170031353076128253925001963833328017235806320829311884635645093806085920894286791863751374956352144632921976619493798085384157132004154545583810881119753500479061732182193954359826712556199774965638326450960789053701006773781911593825168081351161437698014471378529918753662366955182060433538894362773285935491842382414087603707412719705622034648247537426217545846446507074231427255360213631612346653256248946044820420770605380407162234552841831600669046389834677790414608971720107232064165877825959159297781803557114629461839602777580659786103478015718621147466735364266188505798050943415276120813872780374228980574314692029204431188239050621116594522665374602944979850088367731379418261185817656947496639848393985551556669221449816424920047641329075680425048521336923904899246071493544704894792127344642049207695415980547875970848468814479961631864021869313211747730357771623290756483855622742846737144375740971992272436973174689822068477825573457882942845598980206768833760533037642316394445035181765347961992845075871725639456188215443341906472887066200072060614507097779651799233039355428061649559650376659389196281109707359295675504612264583144309293060176882422758150532123026537196932448251144652634926605852062378961059252900528584256226579718638642912894468795117292404422993983815573406176236206679485857836714385093650016947612705020245128907700651309189193284521940234817309916155211065534190285722771731505840624341510155162516086008915979959347081558830058761118565595898335871082238273110501649042052661732229418473571007524480963136591014972309607293169892181006201488214884677857127019896170568375584277643033502653470561771185058700083751914571135188217161447734174532143223135638703466616037951722964352993503032312260825673632197862336641944910319757800153971979960691360580451596359727886920943095092764877857015028807444893389999296048194256312142773618009105846188562912332297709158915678161875270836032902181253715559301747562748265209586750591550927587962924726022889489774607692903282016451474779002426467245058978237821122487091536480593635893362851121733237809728556592088264919864762821081627321529654721934131187878534796827953014287120487454504104985705969882421610754538565314807261652721638561304564229878334275855838760242447359924126219698622767885138129965757445401386388886385363853492818775894989571448736262229250969583822596440004507371742509231935405531308882571638783907362069725653181248054083581534989594083639743238254755516339053157192360397513468603173895551943244134703755225059408994171375803040789368014413014824837734132135974005374379051320814579715672904574367958156131931465770224708930009186780215800492775789236206929959591260263447613950381042007044637643641734163289412081273979727345585729200296408392324442961177901636544274138904030709691842802303382342699452550283101163645614594270529788607670870531740009644079410257713400674466333502537639718961918375552333271985002691970218177208970073809010257078323975522914389891686012042069355906399191538928290876020921009531734854757425728052583770397771906826585085746443306331470538388724534671077268464108203695511862737606605809370577366978256229571896970793796532916426532469186219422713779715227016222883061334123025386182634236044761436967832205574837231325256449262243232808610278239270554057450415783487503758405551026251894240405210599251796593918680037634390234972395662890752323064049261330483415938252951522394235872427195695780511151862317320170124954658176129142015455163084717798396152331446774907565892556831666047943042032790838770342282685195689752091597448763384045295970084439567859705062371068256068920934988723409814269966348645489566090162178325248354858295331386350014314303814109235975191873704992424579272355297356696950308558531926994138184843066965242733621241217597697302633842234861524067774889969533947007921648031465086397955452841733370136301719857167923806921183858103199824425692808742908266982425339349968117803847649871655994641076489705212279082533851814162427320265807090249284801948015137451178347793455692587225487467748169455826968225797831758825548494262503065994757941784055029235274993177508736171667223433473036411340948973994233262717614295893379783057646972550364353780987427527137100633632400655469933344668799620648471537557220025394574985208535564128427171284919066844235620965537380833984843933615889924379060576728434361259152080538293119917736049422384622717289244575339841160082763932336850024745500289287699639180648548989469471092013679047083259930246863299277107934480303034091333938143337282755635970131950287276159663444592404419886512173011488962727163375013903293375918200475458517227147955668687874040391733734569270686590166980198143997667907335148852083734471690778517138581275528744703647379322913452605445019268230554008195566233470022295313610581869591383306512614452633945840447989787735363530909079173185368036463763178730823282889429697179800233755680087617138491490106918279741531648372926392502857130007649300545118235571577068616601633788911120343750125626977677922490000997561486442083561323522088823393215877433603137381765502980287780315531788761373907037427177602518902634300876095386544832229968451128739928569546999350465268000146300134040227816243612616660971994948438042229078831492324170512997856249681389237116738507754494123161556588083194982442123065485140882798394458769755689122626121131941905742128391024998144649428693537926021407037028796179477268963677183238426879148203255604585233197501813890573078767559431964957595972567119170055100824733417179689101994249203842360527000862454611684298007653039565063166654033305957594523448986206832645121675484163293471334214362002678234619727946656953057798541727344607676347538202004807968893961123246626340965970547068638794173655243603715245535006950134271899469126907433130206285078719192316859287676113986196602178778410932252353687307933571070802209470214395515528791095745942554761817549634927037362080567942070038740568044175179766993379990839908595969110759752823826647900195040229810157756767314833859489025691210836429496261817135762701695724531261071796231769592520539644945167439495009657041928941520541464180798431872054621926935217044960542374858218060365152141645444335908528211920731522896912086922268075108243638190100841968985990849476225784576326948584841970648847698139395631425927432516520175773807615553501211875412402407513224747061293093494686760867040675018032983350572744978894163596913161848690108695236552734037448272008872273898659502149793809947861132383306976447941322497077108077663728668122833322522030217599610470452793887832156092470920605073521908972392975199313067369637113884947838008777685952000603885930874490833911961908565202129560427911437118023087259883363319313109542312759992313806351775182996164831212539694941518825836796275069363157967502677620415559182739709898866817341735429151961086793908354039459512428107100748548971116704660217997214901394765810391605548474813954012322682802187024354099687902806126852264045413965096212676421633689079192084272144169905973655804291955537488677447669235159231249712608518726152141975840033827564217977560682032251424629929748698147161848954799902384120672772023237104294483929653596148586804479446896194140347300345777966017888313422504545067310524960980131344879546860611605359184832681765977572469503802984988903164016276360589618315708293816011971242883491207644585480291331021302908931478995926191454488832810538661356752851449630619862254541848540977176326458241174880789508254152948360002219843023636164304271626923806074540735486605442142261547001558123726880658327894603611539794509652415082718764408701744151900489941653007772640719731524948070046227332200996001194814519902065261210878119656196714012689163976985686794193198106263957431428960833030492790136697997885786826021921522626418932557818465226342903360212770616027458103865984178285387914285800771616760662214386067615902498461760717946880694081040677369940427681637802981401524022925844803676225833074902795159928801226856035126725750260621613930560353727365928606016167743509762539608638936767009689634601022790559049844369411606840267519881416463312588043652367297077853717940150289013849903737711537853008972052294713628659800095604441005595933356309109086936397416202860169864907085258266412000950342660808957894023196198016323714085591175316029399806251640914186212826072342210662890287886823197757596294850526263659842649699016599220186743592779552032129370883932565891608583715565923857904706448993382072959942070128608936713828884428403921885330891178652238400291494736066636514173754404637053598473490599867495808037362575381662043824338422307677606986610677754085656309007142858916160987548523327295406406798607756566745198935330088341634331830268107881545721809998148864171852448575551218806740921714721460240347515313886577831995469856062567369575978343155410951595807856621442289927108453924286364909792153976270793363672483228694863718475514328003638200713912898755061171378906663661111661940398897446570386438307704491843030979949136391869601218534556924323418290439425494293468952356467727802086999367201246160715286151254715771122511457527015373811408736622635794713215240241283657827218393038891602242019204930261763905713294816647106576686042539714723465069736737169164643458268413180758799156480903857768935514985797084241644128559327271440889724616136531103041333004033670049414774339219880174091959728091227972045443433590541371071629039028877246120259963013339117052009596335263126672570589534635070427313164224747885646314195083671866084576010729328148265533125757361400022466603519864920221348751315086132151569361711749808373318298249177691169517547673713721859027303927971530143180582008640847805688636090381130648416268599142471534809931958352713087932224251758978429414697141160276837462222835745274324074265857794433002146882603378576056147681920264323854337487687557086552819857247323560237352513053774384779019472895518578177449857075537707996035486376086041323777455512307051305207764558283859688612095317405904579792375493292627092280630915647812616804633308164924628394579786054569797524713440203329443758552155248269419379253734881029508041352051964272064006283293743482694571532179915580448484054470371325352366031956353564056715312563477736009926248119819914888623097127292075061656369423171876834587412922058739782472771347008775157921601127475540056949094487318051928197238934389684257272828884796127909171436625744782082178390942031176045037112091868268531399108785317045320158845701163878437585558713508336311855524134305912640300530634380903731294834146585645657434090432104260045556643790026490091737379808674044023555073843036730613961085901910739156665987784130931034185694237722258663035316641989513882174890886630584307532848689321123886378570001792723615093143695574993923994721339266072297863609752351477814089485879029046126968243289934156786705323689101369434318918177509810703912499899661173887124792444764383211862842778798091377707778029969609238841327363755029354194834310242396349658803645141746368013783193929345900384578866536829630743649353531014845854839827143636264879424877605324570400995726003855165790889124900791779105550207374784116732237839837419616118962736972190067830123930813053243231905161025397289367556832568901720720760943477527318113995419052387718264897354262440531467736971268740685509327987411126123587799375370964571991027171747430808858452312557837636799882770226224647380735789112723857078083198706346459900411926509545337738849017693217792468028563615709986452135696909881499621051679257118273627464061624546046319252325285998183430426314690471215594035014488272177922735791896953633051240159298558100240006056758990015983706721829196974400589646701400991319664127505214744500788752326155745053777184675093930704584046133105312307594348643225023457185614571319961262934638367861168117285848572698186806430586366459652581568771770142409476937558192789319164406356312226846618031032566663116445056730779119098278905593487824104111525368811768072112570806985250903875111829617948159082878733836813272249648573480005753362631452377049415746320852626387688452540062134005808215167674596180925915769316124649094199232170523682890893213356941478535683091776957975396737747929053924334842799916778992002908169431731219525002629327130022418313908797783267919384655518752448885446575367778851666665772611185736726177446011478179749687856079252083629215969375259431330712488802136463388969564902903594296460779429997465758378005495141443679069021339742431636639920365146912585306559286179719960270436006547090434823049843697180133487587883455615131467240089508769197242988546611256385826603071688236377674594328033089278077770652172998407425444697075639994916299568012458369009032461345234309414031371365722002566936494108442195292831846021550281236057075854970943313722228778219631459543247851560654486008492505623211488463794148954607417068711352836072578016672124744838652788353898992257709052626663379439266162275243186590505677270916317437922214929395908387058017971890328535807726703614947541008941789010727925860733398358609139443780372782324531867668761463542720274494545853792598671980345429668593659237980314495182007113291073333769641603924113147074321222117667993892602272358468883630684190964356988837038802471387937399747842604693358973345901492097774011811251771024291495742420287802194459871884126017470241001823765896024899761542634443432070833764377692021190139518145510048434510168593982886530543686041907834432127413042376099088940695781582613861360514081431290275668086340834716443088045172351988123158651026795925857000301499337205314270716220007529165026727690383976665987086339952204612160545202860616727750551857035728480521176597255364333056435189586441085988342546303405891148308184816947258532348376704607350884215133927943693097231087181200781381407203522773075900600134927672742771316296119557642226071372369232756055161662427953644453061205759689120347687923062083221549969897228448311797902726219851203126506044017353531203114465380227909150080125697477331236887717722842344415232206604059544376679539355441754419472264097133840605880884411682307395095184037949756809947106452774373734504334691448239400521526396821988371160851626893521064483390545240090091478708085506467543006149582501159318965734665776633438206465196355465585722890505295461607391327469522077963904908534829679430960526881158528531097507122065959005080550578916022103305010824181275017240542305615897376127974131810863475385630696143637224499515148232902591337914395585972486165060380232156666981415968393176554548822304562609483970492459920872011835617896382938424766382548618050233208977976572338326595610862557434992802413909823925351126418922506388951220439746842407091516797590983688127770254070995820009803882284330284610195110396128804559982235339868767436680686162125306012791853321258275501894100356848994921405535387618287380330946671296602660613237821335619462687564560422249353509932761420793009364048665659863615412674861475648260899998845675772424943808553352466933842659430098265312417742484794491678580151739737334951520473798379007030768210773193639165827097265160612640356505679716209438929213842923430428965225781306719959702066015016235179044089128957564642418502968161085115574715303169557039742448498496081841915295515265523228340224377078559771116048316976429338649234506472605246281377293076332846509161289735384596994087977780924944293112490723196172799482656962616584218104036323118934928037606565803031449326213116423552800732378098869092247334654771637891735067379734927710638893024596019932571945377334706337573403517247994080976229852605323711592658789896334696771290920200941607294948809032375325216278046095991804632416730206694276331493096972242442976181695244930474521262999755098474662380949204570385363183330816861428294718322694165231163053101277217915764280959755132891851217907530942013961827232583761917511885328053712193897399330963153090393940059104395712455437055013631892465933274822216565247801638731512636274397704041316710697756549370990465769114584083222330651135433176513135513134034941781167551483345551635082329464905357768070332720288917776441472429105375429500060754403946929058084428827722324791168588805454400980020534717160866801604501055653642499058537582064948553443700316179977051179628980261903899586840947959707683452259374757176082898001523172956296081616752020872207392251799947185014706890704639874809491214803147620261507314475536536981304408432012780569562030012737902313223173976374313417442799453528781667254821530240620203821850225943921875492139894188042915101466285956419080061300636038356615226941045366451515402302577626067725449671526136573254836576686078934631943029958422688595587157435738701117642504050088091370181723363165307522413721220303686387588085416139028130559962394204591142354769933090895029849194491312182931108255498483067773718451577642387221258611791062849831843634692936193272480772514448558372013588236910188268054071093146654570155329399967743274597480178695217713165878286643666148542807745145896534158278951984721684244876007552748290913182830777510734975130732158855323336663220652752408304503253157228247444593948571094977495896043126379215501035799164348481596741622690102213834980103806506701839670229172321127550275588990198330071330627089619093720635895821899081166901738169156294639636034948659207336613688045292636402015572868731080321561863206182753501239989149130792045054690258432287231531643782238533909546556920344207723293976621804636067629447393278870174669675087716661181521910693617573441396205917426281170664124331972026801837779916304042051278537655535658123414379778557874012298651795117536830952510010886551210813321632696355203598237782939462462340937576990201505032012990263898810508045247832257820941977650272617494047102134255526962077525429995511252727042961217966031012560611841991431060958636967572403833720922218343804387512992310806598961432702764162042335686688402857067695843687279240516565557907988431002760050679344413681120971477625879030096204409874453766114966593922522934029967232475455136677620889064014473298615853174801950632149632013853955798532733130021943292361212066010328334988073120211847562771578875448865776701391533132077971447775245620628721445096269257420494661283252138504121610821812402547170310289813102909544110302404218206596942971520923459965515059904898301269805857398857455906604029515916905263114705381263516633466577556169706839094548473886151673563235409357373833310028888570002610389126440009820384506391956670975006905958720583216674542260468343044858731473968998577415109809354759903644670225265672464283617379189208311252953970424234865020235884013672275922336829214496318189517104899486182431363932163099136339583897446235178188754731916858367985216553470389172084483320288516874664644755970733002125614981892243298936394724305904675080833913545080129821711965091322490164908151334911528336212910448431973318529454632604947602466613295896852050671859803194999633946696165677916386783264751985041962151971722785009032159807776888149920785725430721618392551437831019694350345162744314792384125621920771757451467088314948270639489717778453503795210153418822220329645528948058837313285110249790751631212321487385241637954051130485636843338365374447795793333754498198143135318698200330264532483531458063942318453844449420791959565273978481483494679689756748340742438192948963379358137505847635621316931660607676727425068916205761890254988007088001236349749009420339185767889277385637744354655718651661072611107844377796463479398047710778921585101124729052029412588183499203992037483213255294996805215902240240221674798093797775614962896122855261179362767796589147918906949992368182078061272245017942251428137049173415580526034911222983876736701793308509475429750074335097377560163062737392841467059180294495627394758698656111971529917727090383689375132458379726357334877576303696742367469259266124844997557360255677923354368760277547814909038550528278048003142028342897507062670653656167849175174145690220380786960560474118055980018496804090100091543208825400098579952603691049564603131117645737792629164833446217703806019795447506372116774065776798056156933551108062130159644354188558885012618356075752130623843252410245753364211029907041161765903066213996662524484561070504507830004735959786021038245395425473940873611052785667573821461451272789005731862378722046463694107827040057142185317113571172504022065213587422752779283654178204283875585263215312496879705396199907766762959649960399243146864411143305454184734079567440621177057689719713481442924321776715055074621723004099562538245360174907284019156883512637444690256716055084266660142980135154228470094077057311163953538448069212568269382228838151081121679680898070660035500047021994431106854066944817571061879592763357641799586574066488949582451275729963376094623468383651416181170346463958703303059157101405429543621162279119519476771303436064550454371290344601895708922526933285162046627160274811162924506236548378024876505322354839909380411887026719883746631224785779952424636202680157261540707791086423164557930681863643413760714300833348773283537947956205187843995837800256005378483977060985916785228991636004728852651062313707270380182220237884933572089376791669325128574862112621829156025406922107437483018034515328846578228796691902446372402892921479328949595073623650654813912845305646829137161665772296326063487358896262089911617234444858031050420404945750446517292468981741841466163941216690662432189915013313628988308358377816314078397141100803968983790512206310352104248663094529336644419265180738105976315298591682867382101247069213565827982046631861326393936393887617196319688968288246983513511250010329679944805942592663672693184632829532361713607030901746540183916449312726069824168529294314408713271077165510463141349352900944432960070653621604819449414467227323149587434181909480214246410259413852630322242463694726388877808173072996177139419064958945192394817021001609231184961804260346384887335564424512490727027718167842839782180172719957344414546191442391648643179794511868967452056710329222041571690729337794514891927980175201870982377533208715796473109966564717404994636554171797108492158044532662142541940654874873393069537829338837344880551329436716757148666533885606174928454247884411249882610167049939961790930602525742649578161287267888051821689526044378020960768188982072113406523879164789411627545782754461754285741587423468121419055512394569855153212691774693617106238871893651220324811917041402941721741158417277895020391888296856533350029922888487220173629545869873750501626922813272479516270047072499134979947341395295258977595789868154159794362460309311134786286413277009207909236893524677462010504148144423612933543166227254184461030049769475001232903933430434994421153176494831430381169187239034374953082449228395614381650774073502543199941912993479221465169608543789315614121248521873856061182694565201302646437386331928404671875052838693844927719447366375940181193135936285300138281951742536162993470961900648376886435152506322087710117515360265901045998225299379148714663691367826080070885834512483744817307903513142953684661775433563539935981017111895813533026556805599284526936309970670992726113322261880677136724031757744919991265570085162760093387500250945749212931437597583455175379689874688798177405395562415397137411875383584537339401508805875836731528498764968696059623202457055275719781627115221416229452412262833144014485831398523877211997715535234673378713327628009554276168861074891729961618792471374314338675301202798865103039664947144777172034777124760815449281311207362815598912998527997329302859959796629300395676169145847627916110562436591328350082894908110647125438586950838270273195344879508689668035723428191411111675108631302928878499099151911472512928585373045030357356072624466873104323311595982313383728557859120356843273075167488557333177391797775642985491156436527845332364617613413086093772603124315413475822661275371485535922878665166140087270158955786502335124289320475093126267574112034248140404141428630959843894244167102304818892375350024610023174347115874191822459064274139487670086630484416928318153879025696599515026444100031295111891553616657873628499785946056672535056975404850428807489733640590344993369761977391020338800804099219236015058893501326958853647424398075763757552686537085880031967005101668710725390775625635193187906281529865530641929308571816329573517190842981452088195409184965589966525462229155200107279893101222699521740466312553615155354467393601045858108579883469789204001042892125757145046633524449317857479371167365100355518281956752038016212350082491172366517327804952071215595337234883559333048790228197690056999655984076952008923463484066625955460922419763797178921094821354785192470341241296894725583869725215225485639055421131274365187175435371369779277965000281245663886597890965672995109000406937936022760705734204624038906082882703788765163545278442910174942570882617410720586584806003424576258329668759841038257631885564874176092991204511946365412231289483618071262184079505453719916238247205412796607977201960904113233238011625642472216053257209954509365000782922203800128541567962966649906942028969212374554075018349988644300207276693878884931822572909093801865786494725980054935829885525801899411143026518976008316835097288080703326547030406152321508120233981475455086206006208277489713775184515009669429222464472270995852272568863002859997176091317097036535897050897929850062993100572819832877073615233397026323596894506418657340196239063879900658850537031888116599284339346287862904794041835749737521113130597635520946519278695197292921651044142754053971669254862147183066128015665113927949720914894182723216003156382033626836231746326913959700639767743865872925887370260245490199549180765866393802987662214353893718515938923585963256090320700204239388793365485279427171126419406768939164394110567158804660985199191231686622605003903788080538927952056648195989117488773085171834680044164772970855747475609861531010432749552414988345191913045112245939483811888366426043407219498290607921773698682905507045356331825902097349334464865056621412289524589997937667861790599192515886228399228280552574807272314537251515826878364732006023519484752062262675845874693795454357728363277725594294667066557490157373346121258794611490248549079619479108506739315788294861903985483428297639609469592879349977518914962978438421785285575878249356737978259411701323759600493521147420133892107570336102503050850870603835022264475484994965937266219365056713283518389344385517193012319758449124760233204259431801495182196342497620818984349700168154298387823036623590186726010240986271947762312489334010902275451325293266065440095545921024896828167906562718175807889288615162785809734877488470156078937071666165690980328069976796809954854571450995461454603105329843394534137453381605712415850320370198415646205432066797059066482179176457352341591965729206068102886750227178590231035442306044626844660418340657457986830579180445446845502846104764257032436857272687879811692041436741230666039250975493142711263724940810153392967682942602244058105891284019278492875727684521292807121000961404773233012733490493883445590142756920858030617731850449284862517843425448619512499936314202627811670570709330688146055551214151362351024979094410690384934651168071086948541700179141737595650136886996737927561022709839141743480902347429588756985181171500032821248331248445194398451940624568149386362699037829729069752715381328080741516338907201338966902006114266769960380136530606055531096263086768203803201909412876775675079655528029850842392013157266748935347963803920177417156221668378392020012334512533089253515817225053254756096519852655875462324701476007840071003910918273886820312183574214420475153555835455658578976441215019524924043468294609256203743029602334315422275244502021878553572129478792213484032999734278896090892099995557983464994697558232623906653772390900904949048849819228217568366082062030948598123728574836594094652818871922114677602075098322177703645472450853059629431161917819000323038561508654311386943135389080009915441238769861055736319552856461414266050471548483798630204292483454721729358221641267759354079463805905201776068633923319788388103546864052700190296686669043568844653841592418779162068398535732644548668011081146345208043498901132383923213109320775928973224410850372548112736892361166898143608327516789249075809227345456577554465837790915515802138992410714367521944003352951441077392015898714040578392880454778147070485759409545747691140374073657888249728850572611020162874797289775913642090113866090864942961210276850024579971030079996448400424671049238016413819827648460045924300946644539561570775131539456822391778684113810191831527573132625613607678352574615959982728739433527806506851986927772677672406496914455174895898394542536824916892239410641272045880742315743270103548425301056605514947100937747905246372702088900192686785389643376154636970990308368143251026407182753360565733235915305284775687173938662447903155558910531814818686423159497392154495371565905269044175812671216922185867646189474059265350940836505086623605713508419762242825616122120604610978725030926308037182830646675877742469328169112457028640136055647404154693613697519346716259159422500036975310049601702928199965822438123893877590392710617669937078363154123295171371632678547451267472127984142545120408499413216140785544338580720995851816381700582704233103639590876108796184131808980269563426667705784690976939879570123992034295689562242135846211774270144556694990935292549696400606286199479941007410425119283203850172809011948618897098525522819430381969463763689017473434660600363456500467439896751663476764028046783757376596659475550931499885459428053773760055247168932730636567121985100387237692147962664178213328466085522846818633239706490643262917289538220766751800267652071854381005265579955795628466244206391472169631882806998283139473929229253921967851756436988204050372785589138065511749803426988891711312989953724529313916102861434760582083926479542230998858029970053959719229626055873313700966502939523868870265233582697392764387611361072259865696236475656171623630104827121523455096689708596061884831054640614833685600549387525340778449837908353931000340555465571728634844199502800402531671373959224399889877158082547453987687404507240796119524206464590226880601895355689110812666105465662426048060339699247308956752144037419451119648952084426858627277706642679226394486081874349318675250658911646071552288488934121996863916130168871877109327824361379639093610157011480165781167946452467844645053334301038800920734569358698261574011392672264491963174972197576116035515078541130655508112989863349218433239717913727061501754297682302551596500661138371266304383122653267571640883933089804212215818820960543162706746064444626154366135247232809194273746778774752488143046259473118840937727601846774814752989157778193140645798235687814267477201953657071543026823209691276568607442786975607586434538255300673855106610870041089995492220333723040362577367546658471960777872556633854447287139363615403792020679006144074210530316153562601337008478653400177617147821493877412820120764230206580660092331423570214710927925935397999480529846529171381493265411462474217779129808697785551854025882786147654580457138348558965455309957195745861773931914354930288279068916270612444118875170498034246743540073546734271440107228367811508874653422540681860829100352592730086209923708635677646236385694143936976847513973897502446622294642343863209771505435545570513149574515763763777075500924806250456203919520850380674707377293448664751353920154755357229164360199827724671581084948887186954012437345477945210701839883566938719313500625919710868847745469194760603583994361179117899781194679447731979064085466795016281638250256376010102074285607941671504806061462526632911232070738894455257921105045562316103812959406640952043647861343080469213073963484682761020813226462326761695457196504855555755832855975576626750388232125543333418289077961629883223616100254157147006987158278734987877035338782584632569482991972332136126255737832934563291006655055150216289473837179056576726206370024761025243506682261535164044706671029899129835987735384048524276312350370395333244811331490719681227596307093708473874849595221958415020977924148890274184516508363625080965223695104245657297835964241288697360461224344544205317211152673031461624603156704795201050805623695251048515481091108828368079383567592345213019943204006452763942974984292106033250943634845306183666190352138932553224664832624120405975517978472805992924197322293679220282796124158228871400938773219259477344141321422127169013817653656708040100430761899679362148806574932607502785391783992245102955598512248045251798439157534808824641351994228684821316192424235120730939274176176388081530935973587929060627003915503413024886637985527696871734050180569226462179267773147472793689306745388183965618555340088053453769930820378478002950383434701411706323993120308355881863208946974498606287912548378480139676496323326825462434901264033293121514096949730172764145823503843379192177150729880356692679882688951083701317751175966939321585779697555838133767643440906244484628302934538454346739336158725081288804732851889275826119696687172578675122940696832137336088681679907351251553390508289613826297868295268427083535269373760704187883924340430965625540968624514646762920164521693046543250783704526899546924541733016354687847206728699900775780432498229528208492103424668827789747576296590861493390897242380632342012471754760178262781119918276639124151159417472865648954661716584814829719275623379493158906756315137918487362513068373519163438364435175786817954472559792832632657004025950961638383538615320126268952271442363062815828401034455790058400812115420013925558563373817664227944890602790887970470567497795118099813013644806947535003853009520421065093709329136570713316853756165763583350111559897617765612519941665251401643936207717548660616168096803184777123825134975573903620498632623313998595645381903085623799558265933452948759321666671819663454051720833204439052446179205321272625812557644476230506339885760283303573390243659898028929426536257555039516289179655391714083773931911815580397322167083788807276144295444431272520101290565859267788908927706246136684055390415230480251766075474884206355744716842702201623357946666442200150639443916877155963819964974817361336579391584518338918663281837088764948640625105302301522730731927859286381394010144478357393048534953604765428406763088327625530890394366747349086846657520707249022770121641675815924219131265438984776003601333667641877627904154956616631803919016277293595276780565328754505454299231447113730963900888384343158174919228633844517817062419225937532844742373357053747295990113592703362107320737121778122421965622769282531305594031322819566582062325183721549441992183228892646014913768343704827037593148550858953311595328642167928336127136726050707425399381721537274199698202458663727440849556872323690170333998353980479685246858418318019033890104105966615418217953838968680593178518386277649420863360000937753452479059115180173065587914872005684703400366278299590659730604312910860865716987559229399827208372210751423516718246423021751244452834457397987505289742919405898814932340980868689620439280976120459340244796356077127444276763518351592242197903648366601572654097321001354390608566762953341398788077016757801661930281920985351335858605388968727781037804477684433485438818813853271668921034674025399711746306245760636793726232110927483860056424640476271884226386931558014109307051888097028610119838333232606291279826991955703692964929957596961196320345399601539777698249404238335626718168626142635043179643298025775290055059333785598628934875262848451197396236237839875112143195129758483438297749985505740254374593969409197286026511537908074161004674006983262899486080736980537539317696984594966357272897008429619764252972497003009238976369059937231436003521833075393254529201964500251176643410574138932168978249387106604088919615568291174762850880688993279732909586865570911653781189938470011536832275464816346420239185864256327655518277108224517603209123458214212151985003549818313013800949192779102205992628288159898620753558800580556032046684068399984869295178423144623759056988771891078119521005617764930123254728356696880719848406620478863941849671696542154790243232446714266711237883049117504962141509797051147301275988322275826747250302797009162177170196307927935206961571806873709347682667538575484873788594732522969503305564916462699662807442730786217304900252735969700670303459362962821925537727032202813063334418394057670749381788972267746349622088593824669950586202353504627419427477428882429058437481585471675686215834722158903542239638893593248751456075218927086758045695157746361165220960316971924300833761201359826384756005724696871387729380196781698812022078072630667076981508227152287574041629379772815573065349156325386869799395751838578945985369593456270429590767102642725645132249374768025178728359626901425014500151523195352456601603830066260912915405061613159519118823216179258680475787845209859286812255141242537379433576533492152536078633144951315590401410417178514724173138427374820369325764261506327199818291063202809132325972556370971155635304410634301014717835502140911240274533313575421059718802790340684345382539897190841231925365790086826846938478382333839352060515326156759305313065342855448111947677054253854872511962746005838864022626951978715181327620585518383283951049933867511567872911135524945657339568567979272104615096508245223550719434204037970535660147608974198158988521309584918466585279769580160772013856499141176559528704676733696486856243525278926016210355475297027040364420366401714235919423964892153163780318694113052131066690315208842342803570483424012035076247923606175891983074219919010541856534097994489765940555062514165433560297081770426085325609510048498119845115939817302161656502143405446748916868864539087529491873808476572034022110377383988375759369863989849488372592591363593331247449637342711352576336932064861167017153357747615443066599041398424036212950754211311995947996783849051644293201513573261735614003137200146713248645023997482481933935874819369933378948774915145114379438856868717440726846218188750032467941595233193967437991313779943261093477942736604007836231251449301050948519267001472622062785551763222697768265283516572438169446429704053116988450070202841421607269592853545555112949941364883243568782540356248484036042217953838064279042126089611968148669738279289419737125521750529181038781272595814810098612685375516482668626415836054657281248581442359636952660907019918783491526231329696060385418268494706444672551713533585876105265214364571001974194668729439895336549369110472652996139595578446235148871526998791975010700729633445878244622486927694097174517360271956359077977373670970775509620572298570779269802626818301325824438889980082496416461579613215755503046278209483568365929542184020512544808039525112378036100391694733730495975452533353854062474120186572365416328008317617342223415500225941011453673079742492605379711627292279126265208316491327302360771646771422883088011087930232124727958321740406557386247183986259834864781550539707594590370579160093187856196706122397377309351650375733768037448714615293600097535004536868956326360703288477717184680156147637829349755043939301103181389345389123026100111363036140186630336362114581641734279743862366532902683972113536509412881351085680580740037557050489966017817225164974998028067739852197078973136979844038343002419761026359195565569319167992878286572939005208107118659445546540997905670129945397164959133972224046596975495798120288366522198948114843603663150142103582878925732804832042809794216018099282244115518398369739219455939484397040457982592975197273301548498321890539445938256316469380000888664890709706122973671863225104821545027794084571059063215260732603359606900027408084178149545932874203047981480672909204609660334631744217568497277980782811422074004601397610534728129778111072046916108957632223234383879415699449063518310080965749362238511986853254184584543029378366181431658142277657137118522586619512166157225667906050706739555259791832236000643117675874680423515032309655191565029330630451562860384688803677540847483394120987637734610501257189419613522565081167342154566005887203384446048818754594871391406595980371100657924499367753386531219024022669703168011182424677483052917746074006698575280779348040909209876415610239575158797703940421740769830267869161597043211868906632487067535199772805768956962645553499857623175566988971148019025802263747879850154412545441520623085452918864645753156465991879520449956700421980750896314564625239415998396918006163288359405435880050653749524651844622453555991338110154776473646890206257266435474122416985345576397092254195107782298125212188261141335463550361015758323272053681550970072733464270718235789434571290258883216836312884343263715783479519680431205233471605323352690143624410722222087581933080945294614155607526707972267245116444946766585581971743480015374947594649052415506606450470794672669535954456579687346172186403017792233653460640149699125110141978132088015617105882687269281416275049410917587527489944148353529056021740733315866379430015065286761993343682159649447060887063716051728356101337468540083877508315365396851180349834994202927531782014060125489189702504195732167791949646518413813928517038223937070961202821249934317770175420056560282210749876340891529615872719148962670196618753014316352968613827393685271919738307982014565885998356173515432380733880632008670790429848036281266269166756051772138905810678990933754221499469133749111837075164771386076546873438744363827891982505282207430364830749277987696817141652950625407664829408937741018016430490337343018599692783025929534752743512245287866126640402468522482759469613100844063395909882632037869954306079297613220265183298437605898582103516450284706762383836043984919127267297550485085556728310360717562675531169376439690823812838319137664344080400654143408364073239430632474744522571889184804075068585802461407021188403708013011478872765408739405177779295047740979115152393686420451962308740597860285284227857067139377225387219173799561857361448995545627323277790377868010556122128149719635378078804746967894245921507037002154352198364175252393765087976198448678660805605340768938236725673170782503931167921955926930993733772324531013610238690441185919744308980980663937212557830386514449347852360858873319133967236089261308636272668621972232497789051096664407194344732446418351652099337701898758478680108063078303193234458540485324595236366924543136763866228433995961390676987971838615926694288970081101913192154896090898934977417106375452196595563558910299347491595742036683495312919635579737202373674953329656021228832976647244608644025598057018406258863645563368417505728298223371100019268873087228643334265287071775728934741188999818974892284274844421775498365899812702324922822536846229449305547894566212486273312831576132240389977994209217762092954138399459378618836774586381356669507691593653062499310095520763541120615132773798127451501657202988545847448974545761018659617388517115425615369304758967819073559176521425745660810359494784200365129669093505980616360790991101964094133468894071615291860564401211089616308638442204687266876756186498553920249196137039794966804228767318114979341403777541087597196977233865389486284303209380666293752480997973855127472451561934718245826454895663790861841173574293051226404704667403735054223895860663477915035724369212995540316476065780696980509819269019802997288135470806856997031541412375593326426275727090633132166800257823826501735147639767946763057709081390119001998131344820488244703037733760865247282780918168374005806116057667820194560087439170801512393707652776263623387286335862407250971149136590815669066449166643538597450638366269353795056442065624718982824215506919647575091504277648787253820792304986091968022114267987459765448868996063128730142672049158786973252068794601308426568925355369773742155831278190300882282895378505907582322313339901424333482457350259670237673386299487771012616031497966927271501626647547421106350205543281832278122196488930373109873139828555593243693593605350168557464583450494230159485998784853449418391062243389037234951141350135945117837542277975421220239019228738693768659161737034704713334429845750038973783133922036033892672417423946450305619868527062296686743364001502486153798752822510279348950653890493246786624465417944820401483968878968453580637010804331221770388695707918775283131214681302993514227557360918855969859180756905735500160833844551299360108781261491909525769207190727677231914628758407896488973334286515096602512151310876663781563753610379591848194634699295018732320956891477000266739648644802312615101169476611774948503469133244414166612097908577749790948332285596235596483386316920826359696061165642048114611936839762191268491221384746767075895334924837826820028755648471127896534131524922828194078362703473593011245227219283161570524997542912118306276696981817922053059648729748633880476915740678600842406925293102181688733706116887026872701357912719191293444872720397447837564154560072393278932711510519137383009792457202229700938792302814698732036024131413496487260128257718933894794475349040051422821838110946649499379349810852524165421437823285535283351542564594753792253836772871102687482184596563726010220667640935512059947141754003430905443195249096918560480302399661719067484841836515267370070888842089803880737171429590725831235098272390446264196524982373094720411798754951474375383325787190658088091738043337275742726779154545449086468106170420260324470666010201822934972592867219344188267161406702690893389464781664784622259826053522192797534045235927975462480276374890617005031621972257066404583230358829226066841667115310728844696563383627565870380165575032796724528790992517515860510713310896951216433427103012469669283948156242370206669565846598986375961968606878838026771186836133921071522327464962428149401383666402567732307900108122371257415746990425502429504235344112848637035310799759677423252754551247465691518482466932892289276954439666763853431501243586694313182158832542876179569592054808276975233187209043472455896292020800675446839809387832089022197473960998584398117905230970119883996765573279179785461058610663511934267125781257581855228552202206150090112963762953165180637812443384565306546862574017864586782997932159524794404513942857907216027791038372614917735242030152211967653024036751559338955630470664161811141563953770819308250551312758358153003856036759660236053212560656149323192151122056796198291811837123605286034356142612184300942390518608472531290830965933597447281647096965370660077011177853320193151973370224847988685407973954211733785558422059744159283170441483639017702551093208186642506553037166583867576083373833788066440691657165673137441721398273258271176994874686449370910136428649870910633560636226778740539228803159132460461028954288905376823230372025088703100454697100792734909108707155606082246690632772310805222813533643776685946369448755244214984590061763907456091416968665463435824888844512093903070977919947701298455576206051314156287699768983368131482482238939703204625693302923330724396318276062238180339043176151255949370163119434037126649114895815493767151441984731259862400220679617701058035877838509319548998109380337816865261410832836889877006443504696672957476368188498975166702644228165990552999647530249978197825752906717333569240249915055759030414916825802023278085421365110361333947579089460839092615103362287320065145553383588432393031489184161473860286394107944315349525936475418493332626189681535642775261698945604064673918463432684506157746381112765704364570599977747623702918354326661814718103672721307124760734521508548278067757278578364206773540103803298933545850971067606534847709486170206523013383185448505979535549549113359171254552405722502395540679026737280059467039787853752018040648464463616756761410850130181647995824728564204448964766181608415295713768571002949044878320992778682716214811625439975100779255291978500323854248599081857959579502108592047269312106684349932805726282103923277667102937736786795103811511226246407974120652241316993407784637719676036996014463510829614906047621137876437686679175749873768003229002737036230881813507854021784513166040408466474480972553182418512933643064721423479567537757971506702601889444334468030193204896914035254727992961291034713187483940816305998536225717446996792276237080506502548042020731861350220918148403991001261820346195688089016005468783021992241177924386166118850393844521658964017783849534901469904434353735917688653144902862425362317641634274735090710257074706904437392534189382728613231090278366614274793598993027997767128744918886545655641321788310172737518253622199668476340713470343904064971343711111751940792848739894021077194285178074981936932720314244679761156026639591379104546838000350077116307077130447268381694324418342967725635152274450631885598229699168044041522831237282486059957215653811257236672388298279153629322332305793343790642978048842066634406839413919095687892895142821277699634263605533627358845802628948573020669451501734147983968096186428033504748595189628155347364107963936444729938515299835189232534203984300889081333512482614129922001110494524886499393644536328509723367479899620898923171952586232630290566049428772386202612099274630180382221742667806991508568978120762887360266469505504460788071170735424930417196914761841354285817004779237632110380277858393102298031279148167054648524197543721869792218867205191571673608096531272371860487422046317461175035377261358782559707658231586755398154635802511836075732925318234264456595117037134516921099079797037412652548012831112898494347827465305200706552724279217386263955542282111984954589001000497507852393686952174841090449595847098076107831987441858960234027872060419206841710603384856448512929156028186381067644312932562732962216780720627613683066484979102386054531903257353470196127611618339055814301167874829758097407661420507738632117926336918489461762330410950284196066532373249705442695648174225585307033303796611284517348311461311515471251365796897484809837720128999633689109363935086739748284256574618754252280210314919335879328287319418943470535337368957755597575518506153556193919557298080176232338690891552354430341692632834934635532396158702072209230309812888428929664885117801461270715439412786527487587100541627094346038009250656243563251245628994404456770769827098607020008598319243538857812183403144962835833031300669642559098803407306567200392211498692361172813958091440872324402299328414881659250215873415990165436361166983090445197358464141861826620104195234305475341304984504960737857960119859092223166456827284657268009922334662787062489817679348716399273638941185151063580932803473444831259513937243630248960538364253399116701477270800266976308220008514668728129400900461295809340609973786731263116013135950243729244167112488376227920923327888759044370694039605191537921580391927711672741146951267904194054669557467742949933465960684785764511594784374442001555886915535627374543158039168030965532185509212718882674130464347024491458550054044963450411428911237508237158257152787659060838504144671053887202019185386327748495437740202243825393412459771501268662150432074068967390420304834977720584384614972871374094834012658849774667044486288521784305290675029300217111825115668416417141806379111195605171328973967011649995845505149923488782724963940635262346090821067154094221191402355884714847501825644213139019030437103539332290850860998845388416113186478118798534712337782699483251088814715780367221714824021893926227969174792991991959662678141665532684433497002179443616327606950051648498485110934839536334149601502701240372390846998008668743036266858069302623284417754148015741056362382530098330204624303717537176377731786644373491952301186154061331101932478518305359544035369422684683000686546145657304320117941882071090468568573841999884506439276787022067379781742908627115314479372343434305386532468765564165572550482929971847176901122870415128351488042629420985385865117572970727243423618514331734988924305746100706172933985656160017634870744417326045289000658990828331264707255873084376765265297603397364381770346048670085152429319886766696973624402097245125541428676442422512453299793265765622216211936274244336445543182723258451941434168295740400259478677314618913752358102475734450081452747752382304282439685856520810275321482947821816241882539574860297679477516987034545483328989026982185320587098259187103879798642685750821363035709591426947925285493599111579875009907359510336184980874650431705446527315131580293454449872772670457700827795331401868822206631413441481932187397208818493940723705969362546439537321634606382405153188067194118448525307609701101750293952225758429572833248223614695408746564656799510957193005519431182412744527776468553403268622084741366384872774440166093265696049027503550472469993013849847871121563800152796460883363857739201999344644041714755723893161314316076703351847422747848914713941870193997690696855404408681625266364449699354935068165244217108666217159752512166835700734082405228571862636648293134051007351520154739929068827475323272650168917690107181648722331113131948920253247142320440368415709072505213248809976699815158652725630617651344871528374774669640070376262875747133500536255544215591943809456966436280256774801304357103818362719104434759306174908716709221676274916814167533838733103753065002610828979715860922526704162675493971611895387462354533324903850909617019017099929808122901114677577093670569243153872584185985930169717023709607984186743602147044163121021050305057796248655794436648451673553953707321505292346521381600501961762285413297665160146760568144892529589199450419700896711028700648784441097051719088804561016364111429483948976509425545807576566133257887200941682429263245606430547215689582482769516022083620159715346170118297052488579111215239528524677655277461124430444302624083699215894463418673949262579287067862525588896971953053524053053690299018327314504319247782720383789544639778363375354367786076750626124415056344992554609343561850753027013026273099543470848542180305751396034466776426831063258226766670228755979444723305682989112050438739132276483399427008617122040950379871485593446011393618882503819926429414822824806022466939734202769738376283069314971511665378963575476633133719190956519655102856100366024472472581300648194175195221079891740171566353509541200979618034252289784443462538118136297411930150173940230192899181667531496218293125450242440912956058181668414682196444200723053022997665813342628767562881651569718223080881962730823602523567024308874788170895016621141875212066824353648394731154718621138770502773120051169579459155627535288222123287829962982059880766851752238489525793756984069024123580684287522784430126037104403347047595027628897885220369004015573752761540974343440153733326321659039806865843839089666888764350750178865231008814773819538190050709335599588055497748423622666404817946498964655717940027184649382972087913067404167809330627426051663409612729416738033492364670857404801078091579987608061744812251914046796665533648684267623209024200300416379865946601618406639424009588061441527000256942018510733707319044380059150078164285082264615098746378381473500065961690475643844093972044631097784834051854285500748264107852740138521360390403171219591410955753919890980668891395792988185375223242093863928403478100907041500287196840258968375167063087910936568492846644901739762261000135177080005403148431347247412562503563689783242735094154360648260575246807803998192094630933234049195074587704702451396202751639720333809784652815176725254700489053646635083871765609831856165086824187291168753557151346587491735716931540654443131774655646014854720545437450775882387004638905748717418235325170047382928881585482823598982799391063627155708253359704913803157944347044108078250364179914403066257462995474200583890112131604254296396481015866927123028833443674600391154858137059484793726413121691698049321800847883642915367386947570690530865465399759777208951242623523932687033044713571094168898372868582341307551054778917030581861909927804808447160443569212195261189258248167543966070045884219303982736432805460950327406940870748180070723129337264612773880064284591375566072288005987046333169116746601344411858878676042891088418640304248854826786741140998935117320351553676500332923302190719399825906812223415100710340827551407022581928582470025264555070767555519021931351213187799982165904296214583618042224474427027841663236760866045775759568502208442895572083397065781494019076897392397812996548532863251179251601714592983543980720638963789953222855076316601897262178073267605005060918964863020217463156329045933534403008219336682263641321996510197144432151239773777710956115720239414182075224927783356261265545019764463029898762744416611257910143945748734627801280075403348022209421363782122386902762924576327707161880292998470767513960164011478780431253005338491604102046148905881687957063635509481442151736638869273165457271630603518215139315892581190980672195017753031401481182194276421654278313067101231898120427472691676736307406439605808881693409792640720294824229616663618712768016437779784244183298452172712290557867936925740802051925405550359557854053493908756444476147586548286282316339315859740833459748060222027192171902142476051685055145731047193972634644199806818432063369733924839566196932678920166682795299322237766366170631647869128626052425433800436137827126218171984575595037967916004574798240453464159574971718394577662993320817358307996479524703761870214291027074861477890655757580136061659218020359765654669991064571666458679852582210737263717739900177381028679462626588083740847028330884844965464274570585113493605598714421364404247605310137104238309503004549865473663130888258803979176712344324051791062853170955682465183806431928873030395095074764475416350373520979998369409156462085384860004482115736584475009312358121547895778585809290507045288157246751211817964506086920661067661843482135633985001258204403160261670333328641867183763730451021970301556919173778623558810097394420129319097509117909058442490927441190904215700018398682673502857654727009358395103155473114015548550700472523455338776401779041757894065178324710004919371456909910025752823090408600928851241884913954800650730444697226646518364147165177837118516629705966794224485036571921676697711528298493635166517744727719078347145975942048346497003004393984959413932294153193539754949736913601454673301634634734132822262979609297592770812250175212840707551315548896942643550663131655307183199280684485184299924916750014366188235968252842369296560841446816570214839463468026501298958932355724398610339638680775412625297643078375711093299602033906912543441208492450415699935754067244047922371487510728418541268998619115638998727073749347806809599499761472019323045241919219135263529002097895777039588098386109753097705291439369578776990737916788621965057326656340669942679010776789238190517667809361377236797956822494075903605802336082957362096334489423601531784886868231735153653429258969151250087107498701402831840392047294446970692461573050001287946456343140242114610019013576095560838685014557457652901342618635957073329022854376840734496304417552230794659850747681214405589457464931374555242460781826747644691004188871349578459574107882223537790360480015216022480766290628282360980574605608619656654071479258503064580258035606104487318990764076839867585249109427331666811286252815793330529127955544080847067770313718579585954553637576965109000807802572841330778985251102259056486159143198429200630780090319064837568196914649725678429658203955113815997407046212772051331829043309208681638199973456593010824367055779894267404172498663901326081154315121301471497553634093145831007726161302523376565754928531830576813526575786050076952958111008121628893585447145926491322452903644220022829476679226488542201677304997846554063403349598099362681789870956606611891413351873944860558763192848931632123945163018099333197040603626618974035351460782527550822026493509973016458775830840713142559423013318021933943939837994040389025548072517193025774710905357378078680019425372602803732420509837633818573660775046425313859931021985591335771709524152959562263170981491077066771411699805963439231809661492996763329673376420591244599736891034981168227652618842355061752802267734040249599983298978762552425276684819911407096485489855601322847014706739287367270342776114187819207060505402322939887216302780199381272650122581646204936527206656574741908825455399185143871994086887218922036463980318133700743151613911199167263377462880434426603505427892679348731912106199093544263426000826596500289643905830998377215886454837341711485876257941462385852809381281857413258751286595797961436836529800162129770437711195256187487435676159733465791265328201478086233925161307692532962281908841372499784223226049386050723026052770228354554479866021468670507438910277372975695750615631614778103585168606533753429191348947928956429886916153961009823330986630328405860935549507052938628503229802024384963580294097191575621530132452649619315902331486638087679356866063638848179723850189746581311452730307091991887151924448221569206215934225713879604498219641301155343158809395802809239585963546889775114384024761085690649453428611432380874392443871256534666680319228772970552900161099976349546265239017101017797236155387573592799866231756275036615876273783349655895606642856353911810499774198013914644118619562456207193812366519071767426106699043952237643485569746541462273524937702863550292400304560561640814866521873645712666219787200650694942553792957010701184995527681591910465083062016025688807093426645153097323882638972967537372848686990669007233726936523901825639757613735683984143327064176752302108769946700904905296566148092383144338542190849967633438018193521517297671942791038470235264233648257570031456104404037177769071287473019585707481010802973562624932352260594948532799541279665657610670765722836486802197278108164615984810408943966555597334581387449009813303496062065276051931634607134105277942286655925769617470402757673589115672887461721724804887564734752544454879430964468771876850142453671324257717428297356034584272214457174084995159602852832274279383666066370579143794811407022305049572293840107799947843018543051184733442927677128683272270295615285811291224033395460676816937581286367423776615008984050514823250201146014177733714906761345459612845019857123244596863867989116989142004944978015377462906508813026535725220661317121130214997839571684059385837629360621189355162031075805320558561017753561321076989372917162771126407869706157088286457506683066723184902323913977632967705171190806518365428980386027418802985415904023496336541683575440474524655326583834242255913880217230723234849992270884105959103081890372931737006014922253787205609801731770285497512143396896379980277043492832682041027371636039119367452793398302745468201167607989529588387905904389402890659118075188562102188067678228184918547975625557099321406784045839070460274831071273726460204718776798401614056863467536238166384350860817319986476701014072715813393450403988173506615292017542878705374389175923265893540793481958260453843106257095882309896008797893524312933832408977608992215673633720585193528595849470148440184014353049001284338262743915379811100204021255441741979916136025696903995074438562867230963954311100762478077791554050020239292330798576669958911929000541599116156082479007366606046894468878553045544307631832372681125119971819682164983361561659694922878159153264130137224066498748783552853864086987304517997157072589277150481248607519217221510226248751727063341149488474078630549886323669793570994665589198265074783680407084321054869172209496641151451416440340228559276932491800933686889537123768430143252099527179570979532082074691460284162928571977791104760759058625531193963224548259443900907045308426752822108510370141878330344825266774771260734050006921035064992446078038785367998332932927384143437020872641123055066366593148866271820272333461953384431799553638175427063446728265259769860506371414412308208056403134228967416348553327752282337071113790214353261725984927809985777765234877649812317360423707191917371202283010018673322967306429848032185774925379817764182060464547249184056381593803960624894229948032684702893306929086765589131473037770656461846389339075576666243763610242502828517337650128634349167990108641494538868865959980422303590825151234253185837330286826899338333598185207834546169792007852128212533624564942390684757309101073444936337308632056015080666437482539698632547889286491765708825651058022906566341293897050751252130286087235947640679158648850761363885088786212247371944114337500441983725049749133373674072900460656162401510669298674151419695633371515277802696390933276628691989555388694482073790603639711270163831393348122725292501718492779692056868177092293589489692232443460495685571977373175880116006977439501248433804423947463536939867823466379943853547367035262791145105973059046453489280137842820830770978662956501685866982455790489498053018317095559032433076281362281902570346964390768813938188213864803585581529641136950290566889536901756541431352687452532446916686525836526767718672936239047928249914922785306857940230297360934344916717770448371915259302859128470908117124665269648693020952563909713412364464237450072183813074369120587600975636561724611868068901420978753899778494517113488213418380927743141634042427746147640524641302242207588746086347735300819327144740071643073040970852264448056042320912711067440351305245046360299118999554877065242022806891941552810279680747751543319881034569157661314168911438128061844537020662272251992559044684736864482148058352019150711965158099063453152478013543232569508990870333949901440577248472768085737834934383955003634552706724331346747570500259945355560262168064389550531556981209490652295485904179824255937726650240201092250094948630882023798840862702885478754197663805112903456385221724717359119853243886035549796142659468831121600436500869881785479396551617101006364267937029783201045336728601404678094041381815951253311197514325322951103634478658434951329173912669560601302993421355954697841881461020612570907003165593514777206921666552739823535969764837229043638011362668264131644604479560088551472950698424254066931512112679882952392081002582647176460451208321791203479923300095984685197217253464971855125664509552538574151579998641402454728491700190533373656144744613733662968407684295394526851096987268257645239793371803136845077684188994697054984548374772152734953059487781415849545885921890186114642827217780643802689194797199405823773836955205480766811504448539264898125787775411713368395779973866456185480804959369445768907086003877708826030543644358150809015239667068892632649130232936610460442821670251642890120686727268112033816332484024983610373732848114538024600167855852105464418567490451330810108768882120445279514988431583075276045963614020312748321068377604564184629628351412825454348885572548924207709881829721082092081005494878366402370020494211022269249956252700444278956637370979268246115809446017199184812226742068780718923564605985182165280397845678866705286863504428024075628563159040039395979852308412922861167855930709369951471507113375945138061753330386426863001444395416356503155977207230086711927478706174970349840971885294950766811268249984298451061989903625408198540939153803398603108027788528972838402823005905746133001295912746645511082047111380668445058013195572492716184410719434953668888398962564936218140119272640834015087021381447484171547236640319592525786228494363596006104616091163440717172264238724289651098632865021126609705611926288646849703386900387772311049484950445982026754890313791745126687727988542504168245082791023784076546561910078104428030955858635581115237303320453317428528217512748926025350343168610227355581686586190536220699421037206038039576221078533793941895223329825467181800524603117472321823071982133671830101072517662565390880752288001741836583707896994763137895711726826060052365631695828923718739206547056040584616375702535296960698925610894870136737540051844677549926208046370899511682634689103963986084042988436247389381428207067896894552354183638047247163160544465211708787939733822235578931787843498463079752668598418582684185565407184180527850767802537184349439788271698106618573440950013946956180811289589184759102196629828123054950747859778414482093166148627381964333944481522945191208618236079908985916705981536571832450307687094000614188559059960356964073482191492804337717231735870233619004319786395825923506048566748958624154693658495058312972628463924223489313314704604942020341924700074489653860311479776427923265913752263350643437359598774606535174189876366191361436343102982436565023996480245117431481865295779248692217707109343005599348514589646515683029597851657558550697126696788840410583484010565106244833330228155575009476088740217767955516820733056496626775325458926221736972338642028372973866435433442806715610685624591662249798202077626102716764704829088478443464142082683801252680950983598282836006639662782828551757608350355921509211752139685904402237533252199659232585762091964381698287756902566652188593589347404545630109878055282423878608057638900947862064457686873573321888080526284084462396309138992230933368641954469131671618397521750776701601194058538849859132677970622317926561742178267497223821569137590899901734166150416180755916798780153682433774979699419005716883574836903184861281768067698626877142330528815424802682423528732997938515152673697271528825632376012055818768062306841543010053025093086126331908677134890318484866332272233193322809065818796781456219115298166127078716659278361073359714338793118632800035222583044689401712258899643511817215492846812872285087259407210698566905256583745903051977313231864129273532646769395742473487149369081537032472043030859921803337713152572359612122405475026168789049809462247999727590303025718496251858075445332365133246505367196494105267229761209207145117316100769060829430027032575757116949179820704892379320281648460742776498017509812805432979887287852561515578323187052428653774185915048091747057119834613917898539271291457548823506330825249019442766804229512924985499836808468781742399440090645739880665884701067302507444834837634343588807619473614950405693956525097671798756291752612981245881478213267343168510453857065978790314912230399958450500371875793404480250647254473106164715193127360311876012151221477717978340477557356644930766038638644184354367935866632202042980350219146871157313224733265494988710553442034803059166395452145469432036015955919919236559220195649670517657565519526135257625626790479143313005823588791773590829701534889975812780419917135932781762316900627471031433340967274298251432533577551206008031651213523305143158400807935862951014080523862127340768672031900708238766675626247334754398024747920887435092660761845730284422312877703220058120207215246192915813426188396317270976991898392095343984955229406845655609323261660943138213821699738920359088053957901431585085621503066592708277100476935083607609774426982380489770031276858453810504219288925651833856011273864557532282391010477262284967295905954859739621427274939927721842260640472146768246053886890153586792764011234420339650867480454997104852147819192197074653126343406380044584742205398647394331685779356795982610006129307659269322468048603474698846502364923899822111209647885857302829399271276573626720793330925434593056781003907525445400302898016563568727706466656976943933396263788408353057796064949123269615446085881169599543668265505754401610975166282703124295448792024900045736065627412687690190734897896823331354974139087059755858505956521090202800136760986856372157155052188148928671422662972340269051995816271058431938614322875428816465414373855628626956759733715701538293852775675977479333281803459462122021234670688881082117541943441840142348480790139752240483664760679085224421682832498952519494060719862300935782390059725191117420361523304530545521592103514629264713433218543815752639849143557859095999009084115399475798425998917505197812865371573831242069428515373495580831590564657207155906711895724114016117682952656991715625635913415695439629264679258728532846082316498980657476563602406700294999207297713431382267317901339924267801410919547008557699684150450235833055226068357490487331110997653183458570980667010906546024294570522062362274618959454172330504364400725761013431878880135424278243900879152973297267575776122785719844981599371006988155095175274490960636017014137088578453516691692044606367509893750103233893660796620374280310595385762247151081086069164268677927312625463658287601071177496205286518971224110541461069962304612585687579173740169397101912912217683539265591052953120723076626452647716060388208569928563209647780727513333834447444403077882657765174047663097631316920706370753359753894358199325631209450281128177326160505821330957779329530742885081744451000308712913836317143709623404177419670605250052277899735522435028294301564520524848113099957778687661184440434289131626191375915947857080993636974020379231210381202268391161170380093827646504424846623595658565328097580854303922296970372511772059783327722289393934543370228689282932942742099736507775601565714161249517523601591647001301280821746231365863035372876942540727737730935773119084062096380018447849597582652899896870084815255030606742968382007189992594808625965853609470685401358357088432059872020372817363020267127502774057683508379264095888340046712996401814442610013122197645043915657267092638183754441677261081859281592510459056994766726618956443582831863019281798216906525333497148517203026000927327873246926382039866786210873501349653827306593242959369332649315406570483533127091396631557351510688637952726742292889928819841446828940030288434617098546354984798170247288954571496988811259287979173381337571410591153706226662212862705661096950033029693739938644342534645342663480391673518153082354273835226689410236659934450441153219892492695630929500839332251776842810912414373976849355505986303646448564178384780679663400378552484297476018652451979907362278387323652881118760764476750058804342219873408443953877268282628565143643982539167393801798145963687550883914226785961251899296339576789010900263974438976523152872045560649136294369772154654735116598957070585684876580246037340816870670813956457326296366452790029323946637397546384406029179698267971243464438710816044014879889698320901994971383091454607674106482376094561851814681819221068823699651241588352509058948688403445472189866783067253646148016199994848307713101807171798861676511918463891033341911943710691620295612731789894520634325440297174197409234167695704964596972886580683722025223158087528927586095203916572012035222866593497852055288111413526086667036762000533166019884724656344702964969302794596302063633591932395039758209186145594204565633813128385767208014901165127859141143485543533117810477009897170594706076919433894328328712362499690014352947225995672887913313134769168093156508812925944867902706699034434090708671888101712776259885985138942134684299405786265125632374712192627188552492999733249311749188421492776694258345228321860674570743705167530779184057877119046804793857367040475950679130721961424205942992457342099633150726403752669060941753733293771892215462296790340481566739773365048546530875224090302083779671838798884137883764245930066834410340837641213932869520303779905219924098823124754822200044343984720025724520425404238513462104930364850301616980164985186074866603552727140004719283133051713144957818223607934680184366876423282039920445447979301474373663407272472918245466310248281267266141703654490235373508506081655547946893284681934245794313453892825596202195616649238191751153111139304678635653421723476530258463139322768384276760843136649521151254295387655395229768986888688406661666404148185081768088062212567006097622520579863988285348509840399235108339238378191279452057626098871821950762318299671574684458577696400708097264680386724213634591641859503726876317119760464980937358253916894860008527762488773715687104522732468646476986784158273707333078519393742766639965512600016748405038156967669226437917249625688301607521490689267647245113378558808399191109322310628704433804106688272214063853953774840031795002688203481809909440110618310066276653927422993034676079950878259393813738514943897328006353921896490977708785470136205396197060711890295442355809572174937951449135194302319726349984748705447684938920278145203290276339877843583995894901376828710784077867300245530933848599981470534954763045358806656352437147912086441008360898856101812281302910335200387866372298920666481309097603245755961610385546948476436756481275718915980891181899430934871311820715373816290908410519113468833335254451014449390188630341576121613481901012941906927297588606105839038612573434599213111155889981329726353625350956803490262764503145426422800720580314756859220819333749747456633476424090568668168535258063597622776534347368348856546543000440696976350343951437832457690855559485345704925887788366203361031908112401503011032589258729619872317236712233844082972570129409267278680647333237121113114874302131561011625225501724953073402407574030219635963120034843615474444762904710541086395427331732775652044982330758040014108706599768999065390522480786415850173676426805027069410691305042835221682104404610173806003875206679673521605373825192828156465682127078594588749620609511492708314736777114951942722819298739505684242929820944419526550074327526824337187852907953402127853465262718745493800266241331158078293825056784809281965182151244608801081809363979489859808718132354084003304090972766730926176676197318675738377783681917172023313421151453692990963258675609277718469540163719753724719850123163871695368070585626405739525942156765459791473701110781606994993905544432946188148576288645126308175829179582391736999886628756309704107075691312702003987551291467564857659492732782106044553764124088871730701720304225743513042448435513425482968140643475109129473359366182356974181044741878250078730011699627561702967558828127215647338940418228723220384461789983947528624488469170529785922874145332714649689741851036584385703810908670856255281460098843006421280907807961752093849999772527324772422463181383651128583093993919682215482952078739866070405092598808651624857045293574027968261199125694971401166446931930879723258359424103680284356976084982788713090138258034084398212757995813592138815057654779116608144170965307290319934882229341665859421773448442247188364860193340852390836428293455520325316907189665199923992061749934020434560012362137334639339396368198922722372210403218607127978482365619968010916118434192456653775951498661721262794745560551995079071335904655497604550909066421185460229104435805114785722670679717183941591688787013568897548613122443190569294647925840559217147495402394764236855853937680925079678629315249359364723753611582967423109726329966387587287603910888695177528532724280156965407516208467583574117303168769949711379675979901629557903854575252884697243865593987425565389405887094421503048279781903448312941989442761879320677640346769837544413393834880651615415872245180563391696795762769709013245429650642857999573948673508918889079022587442600080978046316949120176786527140345962168991551132868469716265819223266673591348286600372183224916975668730783338737824117736814080465125434760454796812272089490087032048064251929840068597694805868802586478115860200888030863375482465295551372696730071168541307067676142923529315624830240144168079104018375625271517851411451085450707862015561468207476558146715684444477889624954502335371355685626476164842013202596401315055936474275456650390810640014604057044233073884434785326233005775684055942967753615691324562072153846070677644502673926303182959278408898751100828445989350043019390760803122636924695903644354924231185933514190825091763483228178340863976198985048820556167716422500889327296715749583971163114808811290859683162418719903303085891758949395440417180619074311961774298154560156632146165593873541517143883005872671893561821406484337968242627152404333384410899970648075154252579058049373252079867362537326000654306935042294398489014007558927968024950196005315652150800884449279947133443694490437763354160925954845115464992356146318028320430291968478964734672211286785223930245979180380074958950363309304378588343010055413975542099311708953754276406736725680323345252959768479619833660695685468392767543203258750996639725604324467849821125510075942587000507675192699816814382495979823178073779738244667986896548195029945253726402724955374847854378593532952877636056256631921782987911591301004696910090440813822602166072955204924679936998545639905055769117422988256272493234120440609917237239368836762967470792849552869138314824728771511110015339585285639448946376390409537196274113413691689622208535469305175351426329335651611267349777143239383850707603997358504387738364714044032816023765649497070341014799916112494778697431406684779652276371968629964515224602949049301327803675708271469666495798167543976980880646536766987671595830938526848949826440403547958072884150156756500824888970120160268644156386908319168158982232723484891125032869867467699001158202351869352323631591011128536768635814079706002379682441490271453738570989465584978474052054793482500731006377682806575894247482750735260052159833384760467102779658568739607336539012937537035942839710956569981407773420269713747672159102313750741034523449820646331380814886570603725644355456515785703873229550930764571802523191345451254289638296723648994395796199406485897025502308638946665027652817925339089369641428121060112662090588649279520456388053288435597150520677586891672811807810559839417109950574133031398095984342860845950312474183891594093094756843880716336602048077628674630923694645173224877425626509641247569425024558733615615179827270574671740927448281653225944085893550590330910636730944409666249328494170018403370945446124050918163662212412948544270038554262161880439295060840149720324844365315067352921549169690489277335151166259613309511253968902898809216304281642279987685282175867476784953745851858054435223423223157512478642836352490449328021604992925751858041142145762656307982993417586570189254582941531114710157539544850582125412108140911443446809009323746797126966942359119685570264702423630042327965160559866031315613150578715582627450369538655636614889496603889335981665637081961628027658782137360528279748953390724353328377109130006658466606205084806770071555938863938750331083276528153803828675097903625605538829907032803974285127817075286161412523067989169166654231689228413790572504058130747780965673838887208757615491257965725766324583669057013674998146027887331926264439862641566614802186225864581698434607124938036113363603909276457532253782106802688256082377661891460419548805835139431295212046206144664268518137280870464418705448450657739149586148530640423288372811872328115020700976322730288487396987679018837784382559096092844848277528813826374937628525874668410742306991248038683286596833310631927041257086107652697868835418460960600008399172919998819172513780281282346126093177651999809963012192932043836244009922953132896571775061612477645977509363392473942158220363513739262175391969520700261785333673407566754084312518244152334943988611689437398868728802987107455990365656392950419997724255593334535956456716318823538070969118353060645525311924619066489636275221933936787086477138583180945239559906643180498233995111249264421719833127219288224448461270264690425897574859698510260567081849145466939600261133744911744866339443665468625485828819910184416007045453490799024572805152297728522214062340261696335117444513940763722153857649229769734647146485981529494044162435072330731390239956795580862460750334409309756419715763277768682484134182227420898723575339326995177641867090308417571568634370833198947461326647316132272637259770025490067240774122542439947811986025979382845358355619877431269041834472337591963976036418966632078251507930268844398139699635101237435879906114118584788161641127422134869684177496371242040763003329827008906659652861592129837384569637276890141017391153342650674926917997952656886848059279701644732397998246371641157865702837030502420802607745006595056441933155538018430691459585653938662375466116014835293071220859056028611482348794199480113757099004575429675420743442382964216251627791137823231213820337713063992988868325741358623411618077415032815532658035247748488940097241662544598845390458901991521247442553558666910587327024316303687294707950909157767278216789614205379386441727607494559009087330802884795012097678461419808992443819747076206263967523574850744204445321394260039993230649261153006108824911939430390428292070101931476406006222637724961863899843194872761313390468178385216049017908309075759644823709442880513530535545288686004524928881984676919561369792625301442686406364847281785304819689258167678950699715192086046152097480773290901991127591257745584450852586103481556200741224927526785130160538182099326083232570544672252004933011278365996216266409652806955815010005428012824889523778972940369529787089247049115405093232502417607018348386520743141577744953933622689399024315231117807542651203083977200244414559977501227737826100452705960907253324600920504245470698196143437522505793796600028938501288801941102317675226525231141063082327546971112221971672151147933100820680367447533497749178372377144923243284405368626810467184219501924836585814085450247998131364833605840298552137758980792759008983075848381748769566657913829570343228912314581060401816823443065254704615643405107004841732042904144589929639608365348151438506771471343857076109826387284675498967132806171121934380223674495398446222741510589347574417357203877881950091515113932584303667807273982670236059651237450680139331794354684992632904313995395253248794581523976376318877040901073006507432192641909825824711121895262125871609031781682795451584395023693679860604201426668463738113713562515174717930602914785193024499248933548517312814293632028143205599684225774552627966247678163046769854117351033081836472814354013314526988619211022873483896550278459133566762459690162150406056032452364682295405087995532684513437624340093984706830751302272328575250485094196892151810209485605457983860732704739048130222714866456485533789378193946880094325044986633188646657805101157166100859555910430547685120094570776056197943573771488474078477976351994912624648827045815496476980764751238968091849091598854437870208473891064840397358757988152130434989132283536641094245771226637310739639457618414540923615617601079734033711698925548030831305724799846712738467680586210210717150759746505868560175837572720297812117981333052741314287203504694874069048771501457574253998591810363985121066567134367054992873373013220939375278094963549653059368871256138648965897138258266352318438429213348438240058761620236952941518331342372833354246452114434368484547301470409744883012112499810974027102073244618001899989613235995731561149372241746292027836227183328576477674973314277526745558579558182808625014363992897085804349211053821953996718958457648626567156153328143219206617728861313814782117891995349653426624833510110944929548340088018170537801214860889433248365197132383279878092235467844935862523136740343235486556750443641104676558039939791804620402742425824935432734108556765967614292295068160607775098425554875189376941220395179745261889580459378327770385620707084117263876951400163185823591946867913777661567414851809071452569157291949346384178205369887701464616134660700099377199256643333288690060368661923016239059969093487970286797127483882866512699470608246648603120081122839046322926816639818938578616087173016809094576948652789504488068702899995131761258839969565552112107462603872794421630491533288717264113967115835577892818500158718513279693057916195373959973038590357211563559467795729047654227928874424547861648206118296303366546191977104241591163534861528164699583042454901597762824289425171912387112341816799318104692020547441845948689981290233361173858468567160965530545677733427266217062958557349571336559618189230039559808235285269617271450385503270060205475862988086243119938214278905323527577994253358844648042401611857011193540658676819343427022867664523534010981784462137051144552203270546290293415770343101302583538171799544839110531091111779817249476024587892701284232948591593550887407444882781254997177715270587195669148134999048748825143714671234398241245861198360574244307332493703215745700822185711856854521169286304368375159714716457939477790078134181043003689661437900025209956899831727272710394746183985154743428174906590509536498388603303722477703674958511826224307390132722058066177692321500645615486746035300832764251559662587521823834837182795914243028669739788324788753250349637046843179831077212092453832550456111722290237988347750931053693839472542030015610648706870059120856317414694173040565997317924896525343359879613657826783480497429056942671138785414783130591852953403482264906239335935426317435309377028763060550202190942067992361406389668761719677234392283941358205881509497937975278019555785131271091987729152331748763359633002969233875457367122604829018643390823913671662362768621067632045330552016945160590825747373924109434077192579241653544853302354288670561171509068442015693889597355689576032360421789931067060275130871482628539364475209089307734515251033923996532142257048252669207792721395052405964852035896287624134936026334558074255357596285060304942221873829026164390548519668649829045338649813559933044916165595451615766179274531245348702435462007726906881762072684232202100593020327451804154385885614188590848305474321380888420197964906605896747746823345213460999362270648731761479047919480692008601586027940905591059566612069109509243596018328215735871226321362323008683083679654669438761601922551197986689388558513185599304976250293840314741042822340279734355845443964793648255557411020357657052881609206096107020272176580501687237922762879711271560937825663770507532856090113794907055382123540805979470452550480097745540398524239904260056962522157966514564534795762076752087462089317839190341986783148571818025197706675199053482427728390199028963625775862315876645618380505671752060136497526212885182998853984606768117929156615665960505817417744508621187094935394131454071941600773866215864162772440206314208222284642910723175635929684292463458844231074721697856500795604477886419210630316943433450305820671495208172201579517299580956254132288332339039271211206882205276481159284921245502494619884210560955710476349451775693651846749867900815207109838612804032473382151448313796343002869177181577367690575018546040767883206480171867589650856513170857507252004740827439661442749532291770092314120167172221675961286379156996011690500185566312750169411723731639331869555333706617771076479056420152420280039984454119438909302497437816559552013510813113194703993909761094194931225358188004834147068281814801384019444628260317350305143289423198846481732833508625980837362495643741879212095300870128584712798770621670845192594206999650555277313286491628733504681929548925112519146274676859627038372723292428281119734815763097093771546064536098406641333719293800810360364621154652757402605562805936862061271682765758917286989817848911010317041652912100503209551074058429005716482288939130880645195635749616258979368490453172592876279479154656002608429750947862036153932052137332596542385364711070536867141169766008917584553183636037656456138300697129620634136844688904584241725236231624207586607531795578998634116474015581231792277897174370427539046291390752257154693825735380136386587032510790117410772423667837849432579223277274537175963645666411936600917967704627352455007173304287162738913662513071570871563915956834784348467766726689002813762022355117605542414193900708113656378562177149407719065480716754349453240548460344790331819360171403031569676808674265555013044706116927590513026495350048573846175443648246905796566562463736087244884821029730332429330207032313929707639531368727895739472979268683038944329217177460712861793019568223958706605887864878005833110170809349310893296713823287611709556105925440093016287871637558909496563384526278757901816324315324603515629905328235122790990477456681981144005351392201525727144456296655897328669514210072385628256597430584079918534267413140907335431082900989048810310090096017510161238960579399377470558257570559973901250022845011936465258264964367678041226806765643695864234387998622126976501414988297714714268314416486706866676718043198341513282544959244738303030566093123677897701390110441205779233365553067967876521173279930271102464761554713637435760712065293886085539930407740170432188778331167581246735869340232649401782596480130965128575966500617511930296517327708275919659423233369716485719157872920455890854932470983547238580305924357492830268292592113976434712317056800198173635158508378071217149489334411404286835608183121094430097666037182420934785855517195541192079988615439582765578925412157434015363891192120436742014575797562945484501478235853737777821529306669836964833173686419557226536873402652675368815537992927565491989118125299984639433230586072128064426167127052840591253493151286953169489141851891072207114807919248690346460341041885767431052548162322403089119348443128442292305630590530734670184285717312774692339302775807260770742397543937204557752538670162057770984960460210543970012020081029277374976617122296384984558547515289384216303675327203108319449918808925363888767426298874144686477125866879621942632257595602053265341633328991687334207737612668473323018207500796124134911944484963656344258887382322850669530556789463304417843946356296711120047251131937505752292443356970959997325921005441510422790185706160164235889717100756106602881679891112862522995502195373655260391495455009326664283036462494189510357316740587690929573455813420849426925093346089082938688738274425103820710795772713756148323427299527160629079418818883357815453759531816104923304356410867765899644834241157120851983385226701429747039686668285537548013853740160272190977226842742342619390716608449196825982609036548716160023494894741854525466199533819957174501044180466606190289888045241785995480516690034494137028122188811902091474864932829887736504289128158598778367034660929126376928303601827566046215456305643572326496632955034171816203374819492204992084444417922894746835967639866503510367727245936133502515549721990256976084517331008469183025555069809334729432453581686102241333976244141698366472507058195178822782366965941417312677006994320122313864568799890609270727001817064542650654128352385486547646100144861692466721419925812694073625221589292214071318592212884006680307863538179910632417675070203861860322625746320006499414139994974681726409374131301456633177811247980880153787689872667059653659765993004634683790409548802618179371900551268025528476204560280085718119875639555036040276009673999544679401315200851989405095883090201489144470107333190048924499257826803184744328015863961300126101227313870096477099963499112942841987768157602996427640642404382693368240758867961282110249786183005324931473276281057121528505236674011623189425576939711608152733620972150588909959034517523954464729320869177053297785487070409743834335057730133396732703662894432268962475903806230368939653052055670626819208424644516143570438577351691450086061430914156359213819175214190130371483054028995889036601163681809369499790161174577238721794200877258775168448501084783038975568896833368798696469648422134291261404937625535146675187228252148451645944565797614956262727286549043079956730596924776621601978032163752552557391683499586238133877925290723858631873758964182679439861699542016559488098232690003671415916015046997221278254509267690547318970231374232758963242519498570549241815110459899629366954995399132225764022582145705955810264016187823170253978111607652507438401625026090651180486608114889517449333791943144336136698967818667866371286378287725730689461191536904126114330814633456436930901513133596477660204155318356496566166529702569829192194822658398376132268816279065466439733826232414423938745387766414184563153056442457033703710586782285914044955304084329812277256294278502427665393514344497706338128420306073473992668600900402633880729625133020309028711012980003532999546028544098808283719858078706968832920601126381091165265453641353571234768865763401352297088809137588234931425536476390039640544622019790915585759201684962301117519339420409945860303761707692474599437416213241008013933101901394245295674054610868331431518974413779718814922734417776799125995454137019234831327946602772936963790284423750575754465196166269045802020523497780369781097114070619658783229551649399438898907013725047029742448881764857147084788788962242203671154029826812269566856099228002131342573397327894620205766931049340546141538610093022158486165391886372622570374677031626401559407136719523953795236940353891912821704933824172969581723397367714435382105023205119653151480194482023770008715195289251688843780057555820064750610147120238040192169681423140893652652068023852578505763438186399819077687081836756873715327824762836714359413692300692756267688335717763633823500133546589005768647906811452232963466519217844659352499009429193210772586023684704759092642187078048790532656036996397468767725976537743641229046603359137583214811717041036804491772261052250466074482813074680342255688310195815122502687840052031206367220271566023123443367034488991190718129660383439459381614901873135817977727143605678205993120638183773046327801909715463913097189047820679743058885953779774637970827687397030949083645255523686445342680776381624947717619237937916104731334155186329967569798932596869623454300332557612095403801167550384911595906651057612549536620615217101556542210018934409688643401448202296377241215237345362396185169213646681699144142788126855050020650849213722297601296887070790812770658692007879139388692139883706268238272671764475714826241166397062382452141457901398749743727463943602484234370078927828672450159777176222617007498905564811545494109681511955945438677987235255856564217079116732357330268700628345845081683827565526472068813758423047374009697008265792378245869127350708724275973042112639226249888699551319124856726997899004255094380218252356765305796798774170464019861454392852565279800973323541288607868805249998580087326236092912803076963244762984420744170348767430388403536170905227314609234336539300973066298360601832380996953913725111906768167779843385326771227799363958948658946321550977038760074274274418463096847800277057949981773997342044434722067090700143207229295526872635770557743632889231537794198276612259891978169113210503226519296875006666151496549459695152269505620843299313741629231929185955572024214426416881237632030404661599088980300114111855259828287725082087730732232762045674727899257164894176869886180542524251267664375733100284896594055355994721526820899983378219727470994549268029605297917999427217772365645143921823097021763145309189238396034453691819214003606618294277839629471398151731153539426117018293984552228477054529737323630161851863326864541753526946677115500985871801408147902637186032758121444403186320455586803148229367537520542586199111288867772491081909022519049362394998563676963115832305316716634854577645172003585073145698794176765455637599947012667628662893097297782590339696439658130656166877751271058223314133617510888245594048155335352060217193155436150892628694823434122418160831735147786232672834306523085169283182929777951572171279268642226029092683065896480870019859722289750948655083505477082285564468905089573895127002768531786793132134261263434851294461890752879524084723378732930259227175215130841656769613178700083213417552861485124221995953806543153503731374173379171120218847625804140238271313137712727169118746516886588959759949779986084008659027875942705822605408702261801720651438793697172824639958472421194053917498066492059774626164090107655766200406666761059584112959519747194784504622145195515854930174604988088762956193484012260071873657944747280085873646585163057392604712185231830215637043947398532167373840828527764544189944678867418848913053518656848441213189787848139789581246390281923546503988022945658631102524168879028768385456471878152073633611781868267498923284171048615560491306954091757700865731230378622746328080257072465022247757955939625944741797001681655693965530992672651432250288018221656673244806738036945351834440705723060558333052741567501984843094523154179754312716175700383953554035103539997200402362085502760828039353897391668714589862402229248713143546202239020363680074601774593636902170511842085129824288267003792497873030870552443677386813747898887964564088702173153896746093612245222914225606457909398095911042561871732191436298060438328007320604036244514140656426758413602296826409251931519560622662286194144949469385206663636906342767433808263887751481024298939971532966177641010534095472217858201929167975980162292071998322342498653514219312949672326575777656632549185312854072056986817197172578644257329228033784878364896684949461289832335035612342649703114548315815244623434965932431440232857175527051780871468422683330482573676507096613913972360635382088171296295357999961585816915392639935264404225034048400979490574432943836978597716981269702558323030588838954510646545086458064596223289743514820785243979229173249559305214549258389404869718433206971368558387750542778894892122798011368878039300112005775079690473112013725974783649846881718987269565588212832130608432400169411950365514218389348739293244590957192885647139211968724164308526434180676730478760463554593142187681305100365865605785151780229628060206158109915020622404966269355304082308300249168157095728200335146128166575619044896800142445563413419623308575781689747901418726113315159812025997590311156771906387856541670659934373349168201881484698584502746770461414832533296750991616909968152729834069796160531402833167169438762194126424004200870982984161557387239168638180502913403423155441768321675196138825404391699010355819986561172362164333867916291456583812205956580322388726104613891401156669732784486315260725960387602478692278697110609673666149980382826682945201595210940628703437084820044810697742679545766563724426425247293964980692678154585813428928774276165940153807022959938598022088728731492632757659801985628593367879300212502036289308602608487890307239393446995158754684161219232636529425217261054716791603714164486252287405349475858097091602707571467553679289947998238183926535166869711955560967295119865055495916631511644061619789695020728095232556737832615106505802727070704415697300104968876578995204331140264342738525668207066992700307613334383653991483488593379137077895575649323948789630880078395096829726001177951086603887962292468399573419776175421230840219413104801303156192773201454869794490030510560003371880058241498073539606599614937964179271928646211457444174040635324059896367052203686144121380062969754432264279004132232944686557259231349499130322667722882513498812531551387815388718180065320193307936020427900261029637909475511296699290028544993195270129073252597485202187951584821949123144872245241875211279562025205033326064718448463520350570586133230679455647242738156437405841450552017376594863599075903315950416157304979151092417626946472448598953652224031772210155096831442946064829899535611004730424712912430483693907102016988465323600829500904124447557829781992953466340193553262567871764500852307165260387888448973817848709848476193097551243894832825824540598816022894131131584549532288139467517404861165252661017221606845512972520866259040012926619689777141392984252065447916092976897898047959168942044431839309062935012648894399788800090912121501986464301355740910584893980880924807351984363884670067810921899624921326565575956737023118252952329343461187873795787803829295722767481858583212271296724438168212090689608115877723759915451904434375827061783013634082749311301985665925074968610874982256481028722474573580472849615294291675300212772050364696190496204630685285529748396400219511232644628991675915095424794128921523846035845828009857163690772670023471081462645818977125525464601616402770579721495525006194193613956950289263958617701109420386293071755476329255241103037548123266903483603175293502364111372257633571541478987794124971488204750998787221786829037165068689349454644250197885666070882705722853882711363998498896544786829056681942883164897118544985087194028948939358567447564101561299934995458713393468530493378216605757134127351241313689276184025705550102667652120692221409376911220726124134343376051464516884935822675736172664692022701444358579462481168910044066996653067557438271780098201722881818785148038985676250901961434740763640659719441485745018143586510873089351578692345948981715444902872790549412589016225030801995234472273959027832576058708737169624844003567966851877430824415963284665813137048311317616174933046397236395515719808750891290679796458413645338409960770813173862343290286184583075927754176202050135286783311666174546808705971522179320362664910155621672903596258143854295705520334992732842393131456594564218224437171375748658898364578743464272234511877520408214086521871479708630078249742707872907971925994659973700069072101809195664328154383847347978792108048289597666171822644678337562909555806993687691191710360396559516639211614775876851132392935907689891913616262929070794002906181794247781256352049736040909356225844164738915996369550075773322669302048849618313265681501490704590464515486084135774960006018427928533966752521141398666722417505306024712148049823240642210978906989426432303351168308774357468683148213134010474622354149776823683390445544574897566445362498697783691855543045952969429755149417506616744729617039208650550824617248212587664607910747413919110964334706916372101295877677491518622299629644352416969562194638366503078295174483652912515535511092527590120135624021389137144398720897077401132523837150702180069962756102382148703615265112923033808521080521809481688692834875077884732413661760414423315685519987607047623560331068073419067889266160085797262922227918407744882914974521744659863250172361690156494432363577780932558878505112206237475931204201866656071338413674278419525731687756164517229410667389445946531383363127361145463094202721539714531320813856836028005031269050068741037046354509101806998157070504492049584573267537477101267580938760017838428303228191404886509388666613291792919863701646922217116978431855894382395392141886289870275780455488382813592253305079490389228851190315721276804939969309896213935846708140077513302177217139693100695329289747622586351996509463395104322073375130238694579821575946293296902670408103077753675200304082834412905189110894254814818536638686482759557336142127708132940983921997676499365880003230002704107589763602344725266511221474598914150460685448524402879256317142477815606115694568552510811411353127351478604845889372517368924164082687750883252468720231025494202136218464339880872211228641877609880977037520546150380157944211514720954556968574186367423245751580315544782201776756526137738911591941862702219553278059726845555314996751551157819766593608542739282650434581208302766316765460916918288927484544926248144865508497564883177546793272139130974917413427050840161217913760672348785236898055642420982187555409744400972051250226911848490049565719701524314339849396091688455854167149670697870105733504691034690745486409399875913762594266409375281042987145917062089920513777186882202223207077410417072783632293746818010324732987846361646982295195840886327305490523740101013735759782422960992506487860248787650218153230302323301287143983481681446577461927946025708023662437961678760076626580002894877732084807322621706312718844067361885865855067692522233552395896526486934237756629201295375177702857544034901076701988770554181578608821382129279760583298082505937549106639122418645886175052528648986097753049266639352041235783698952292431119048029379353420838288549894073948475040692819046092870661825348511967021273365157190071281358517879945393405218112728299618712597678759295593615014636247447314113029792518764741899584048039202570657988719247237743418258688556627724474599576672546911154461489634737454753692889746590368517430951292429783462591337874942648485179097013661771703444332762357620759768872272132207693451222388335131704649456834403692758333782797159727755446849910614954462781826353218990198076285505514292657964738784262121412294245121932849570461003156098480708992107526868839912841568348932354219416039842692759897244681420904598505227613354023639276785434148289175115345359183676404022901822704208622400949524563145228684438595675263698321439521466361208561423087834864630070909266597355409241967419623535893986169018734598211595846356594127575599831462803908657466550832898580744360750908044637580680041127720522956263526520305710209026120168180984994880505193622294698494217678746706515634221018032016889974371683461650719008779825641884135556004341695006742196248420638806402893908807097531958918801095752110359687696896370425159037393469211276343976153259697196614919101015655984240888279534381850352021397287263358317125158500925377634569699048542602449190949333189759176367132134033416883427991603658953444779215922932799891194237595009553091359253758749771254711897653156639473489535771854094340079685729018406185275560721176009845302760405562948905199110415187844011070829443545380771322621145050489371429714552711882942195144691581580045743947053544817302189665897114111162653630996252135058962163659361343931309245255877860714157763586927817713951797604576738816419676906097399737962841768279305276299154489067700457650958818698603979616452649109674884671469914554767502593180781505182670816769027899435434645012787007578013701389735712661588034255248413737355968586066948718372009680233774188114511068465954285092285102289065138904165894698048696920680911887148969960141971500085909149504894950918272165135989493170667570982745795593613951959543146399038928572930373239165688049597340835699681665817600767589380431690591559980084567493212467457442195447470959823503990007187900595579239264032808023379206291759267918965494469168861821135794418522913334249511393901287688880798385478335270322073283473135954099982877522747294709450253580085792486803515136913359510358210699593874609035947706540873050804615098665054776948588412466021793685924265133201228323145810981261564319246553838371656474008380434259920771819413428191593300549436174925910260700422163883330813583661079109940770531433104559235212524638435519761459556717987539046600271176960139157700061642040214859768525121601046492565135651338470149400595405887125244452385530939737650321678389032001142685378936160306943618758607377757745621870642992364435594792012471766151267369952518731669170479459490835524325062563680124069680899457317953577106689556716026374504865976578541017027416830512823995114964556391036527887970596515220078665811126227898706195984647449876827808339877150597080031774580479966283597041397306879331213139990594646197524810089810212605535862314555589345060159692509030116427312696671638680423801211823816861747279996546228741636829284483469567403512254928861913224539085089387085639899563502715978923499550973500435608503476594182506607916433375378067298141699050450649468788236934830739197530083971849170732191689630729888894758662395627470375318653410353637033629225246208588323912301423970099331847852885322879444092486852309398774107566106206044204097248426148679640838800883323293656717106047023492005481426326668091824313377578738787798200951552605344167682149683146980683844286133140764605009377848236702250399898729220383308355448105165178848369238974837553316517282436948215733711398258726500174668114007520770422740000293814481196505180915094031094123309463043726952208459141914814940763018274170915658831814333899360633797393905914276729431525225691950338258403661825624478844295116953845981806258806337826684603746419712182243312586158489974757421709043493025962258351395838636944405774762718212898210155259661281715505834311983070156957321248036293949479072174563180456635366679470863444975099163883537702068594239080058826362640186458036192290036744424879083641087041139749698505949362456879978522735496303613096061640424062319267091894033718997039782452718536893800236528063125096722172878324340676382427670775149037748538957812890642469264122192558363267685704370728657650126097493412387627561578700296076096654182607482661307225335817177508359358921544871156853476608166227135987819781748085305630386668209404160616478409184257467211016905977436304798279440832901423950475778259724654388317542100034112922044129158492700364927721343775450427529204688383650106661094064373096443354024913809097129623101050670792296491527871971164882778260546082262753014207323614650150567379073710414414698524158838929055943162174968723008361797321152995530377181136345012333045481829883512558179161607498637754080792188115396746326590939449795056804694412730198944971566986806361590863532966771425278709132669561290676401561333365295915728581711736702290286601882581409930997162938657501983291117859845978923646141769317865673352009887745276502629948057981510132664139062883504079844080208697864458694610825344885937707645371574194161844376885177138777513411912108283025315706625934196320311990371111179705441460918530473908946079706253981951474723351248431223274340784557540800591898590496828191432025242447891963998653841076042067904573154189781154036024356472817456369629006431499804226925820236536421836010452929555567003216659583848324060449717449769890017984710428096438636419155194288285028405093151860141428255237694200444944228442282208890732957290279923566114679230837303435115056318568161857626663436005826182265355633137092047198066616852219506908220983482896541434013075610230922873998001973706878410237873212566118754224677992593906634631080801910039777260928261197510860813600025661419845789784564245831564049887306963273329454189810329643857518499541750172068713080185194776001503749508851768602378930479605650795374566615710021093700773090060996156851548539087683719429048276358434677148429959131092855834100960917650829900796633097312560486680320596389179168367696445265891836833626343268699782142302146894157207933825886165174035239214521985940599160194128495153512324429232496991710783013754618618089397228219881407338360759724085265785257587203301915981649731073052361701574329725125801519374983144758005028186748264961284084692436819841089302152098282624974353474200783114738344583019703208818467724967562648604915265453690829783130534449816508270758437276440269989025766132136476987367320495028592956183664206884848832369702823004106599477690549180917335637131473316690861672039769039756107036110460133216854556287391607089941587363090389793070033750404914155820706101888240272420059671858904363060583533914528116474567443524194822581276988669580926655798742237670825967701718975934479583333538929516937228117257586700644812978740135606718751146948854071174145884633123952389532272260750747826445360751005702963106569866982401848632086738546738259876482565768098936430697896082001496966937209136925471864210801334773031603111642414809985247979666568328704204765671713716957999220408524012065725905667248645461088646654419466130252042038432260529082546820496381418851515506833811455439957166557303714119796120156202951045818039586354517558963001390153144854538161783706980715248762931199438747852964308692141125664402489996933576853570685985242767372200083299606479303241699743222993420649423754558525167784494262869782847234727280538682460326455048504454153390784887913014004159280693508855739708980146019739341984265198001847015265421725924514661607672909323853935445181811226798219793988662330797983347498760753466099732396446049046432447164891443111828475900184518470309349056634975719561824496532437225034328114672262665389170624306373270290034228021035499832668163471585549351528748485818076375288606961474071662004285028270658528379342263613885145344914219430226817701714057794734475173233151129143959406676153389401387203618221281607384338128637512388112476816658749116579276680463675549705718176928347586539106156022994486925240648610011529202113918622199938393111224865212961885520178979748798029670334521834684408648996760523049584335064806874428509592426321999169621831112028124101181454811098690580112077353893794239754642199282366556966336314623218936762251744213813348990648025792291186734483751289693737682521593916399988183923336089697162069878382659750748280231230262821900032394025026348848526966137801863786947670072158291311907260553367998266835559965247006937187502604915187149247973323682113707652433908259718478351145816668247892984519133599595696266711480835183176170541334506360389683660050641491683777461695173125549785370356772985469572302874724787979983568860375538633432650255212446808794983610617769977215879372999974470262481925435358928970206491047095389811496510590291861686117446425104203733331839015877100158103944618989947140011750868409505213479899668982043910645227170591318368345082425382339271974386701513130196300782669859896818024189179781641591969572048527621500562992059883107082068051077450240531481544751699672786517872701769479553401769443501788312014532411583958200169256727903389525603510245666642275244897444944862842592377277485576250116315028684365475401342835280216940897963265654013548452651459277857467590619920755410746146322354249593256058879767569804349291950063414438860305256637358094451794593816713130466556774351487794520488734756442152350304768942911864377784663287411246889494480807229305409934011788706380710012584841369545571375069455362124737337231931698490316564617616874437096967551234019608998402872769815541164033956160197460329030517827159248640486796050905768860893414222900393329574963994399058636563930801422794599270755433987976072949499416374515229596250830343069029459652900343236938609629233379846153213483844118143072552145247072226404905771316951231735584460124332324920763267361041738414379067308664468485757331165086458853561059493910674000966114635904063194899128705550283137463161294514858196106202278106114585518279008755549398642403269381862461042579412066064498683099871579926175730187828379197520924248147437900530535835997450252293752549509744456715326972033348983927748173143107410175320397343354464838690593067235219694136037094691796819727075980754667500396563013097726192083916611563251682854805376689694004756955559121498035871934964025225963166350014206203496422830159655560502199016228717729692913327265560070385186246553203608873379322942695251070203049408588044965403534450843776010691616161166366907047103146956731223724374549488087510234164941663095664108666467723983330162037912609644237743121482521132024795309340094067551952889815000300317277676120101242328123258444725017551227744226382951628829720254623455095682319532166056128646664298145290690441860109105123720981432242700838974064943037877650729834162755789221121901143972824508849838361611390099756894218878380909489371656350668504036912570847404853657495614384375024054164258841330952511331356139054783470632743416944185650835677090484172542328580789860025722941481199725710437326215177149055930444674773554671296960570558393341050634126521028766682965052202858359259479653440868217578996394712941082408983557394269099346180178522776979021443958883457379420892221580891758829297827360885111270768323559465917331277690776406012092804512102157654688064559303996357868636554828046137664897898888751175032525902552211097495645728062809928768397567718346457876119594901053231004823599406190217942720922096328154947651364381190279570263716384243492791236411184250789851098155629768558841374042718587792870162471877127882213306768952963640000332412433627270803659893393906512719934863295603603354369206382070437652127588018724281043946724000636063037450256331465839822633916439894854972193882972850172403126669467552414450370917608387973617851066083656097758778918129702442129388865349834376377983611507288191837442876739924200487632496706624872629493785537603238398952772318210879059156459318934298329693008500642411649572830629279968596464287659759577336772439230956671636283424946617255540689146421711750278761396328504062557694374071892916772021616022036669056629035197925262655535597193723026942294355490986945422319121618628576395552133312702309733009901698363099649507005179843757516005470383033739151453568464745403384025480918281837162045915676031868533004566471273650955537515599210169205777201786003406735466864795087142971882823094245989265982990588500683920363810352390120022341714793481971295014424193491919552364976162132816661361018230713163098424978626565071304236807095532826167296169527827105457749891321301098881342038744331727577653416745764510273293295348591493975798279982259132207511151336265440970505161833200593494817601363109379397408633079308724380521227653112967899148970672033362986801681446346384096595091085021874698436322530537301929927261858160042090312525819524567460457598907337780969660740378482880196935065036153248595307460629455291444966598180392622414560352788617160775081096555514845304502492210698340104562412416734754063138483599462205137396229414486615191281148377343008939652050561558193496779551262596309205125005775986622073156729022009641495695949578492749662862675094581408328749831113345103749406802057760049613449745184844100082375068743769531858153107335625413714691938299596041123192816040484403469605275273597602343940243060050111678971459037794917250863439656238706836209049225994553499016317745139698688866443004813890967985079280477544667709499653263541008688268336200858336366987739267722097518160275662146403096281573513166312989636311958030763135082975480876902860523482831934442762471313035115433424523840013086931494598152392677369281489657442874836349232769738926290514398086211934967291908233476564735245172494780638895346051374856651825842112466757781197486664499759952001851026311026961704315543044734999263002546689331589230329677254620120019896847015436566208755055347160913633472166886900387484234257644289253591819102296301231297113382720124116999627777881824785468535657575454092690959306588433883374100999388926497021373572113077977503017221650224967882328787210610135364559077520530943754521581606873015566744117501448766225580775836644866559605853220125743955192349047079228708363785835007406448605359834905384650829017709950952659127898348926436995802675424397255036999876970529824841750754487838820054671637529958021001642193556848088421219159410635305475539184563117069127719938080361345843253983528008987539104843727222848938266019478284574477527337063301256900220072917988567584901360529156712021674912868889295536043266041224180834651826077731422945023149811982489281163893233688861550093263276462165672263233161988349516619745050093403143676680140676913276967771206889441571352863155862483026204498404017531779371455471587231031801396119546084276177700316198835434391599159784661798531519601715674998497714374000631351364762738480610912602799848180665499967336236679982858226138113596326142260444901062761055728972380409977102190622058759426217845065053435378069348357769553226048668368507962618048591013166627387746611411609780730736036304082407966437839588030882900189549370733932708490967180078859672056809283378860371191576361440433865157227354608666720421766388697500670430325511849419874231396403168700565341980551243901353648424094851202917675021634684105472495623547775693597983237002515546275719718906639689893985873966136918199509113164251797077561551964937862710192508162076634927574937035323208274515377630226082401002299218864634172739185573290899706903537968042605522050062674846970589182393389064568299971367460290467009975127720399092884146839509568305672323561944689840088882581242486867350890816290136778884957125630244386928298507488501348962599057578979938843108484341473433591544154032593469425209107914310851517124970912133207198441638868016482249667237432934175095173433420229192456712875650864688255465111162866306094410657179835762936117365151498308494904570286210180711517083696742205431331100117073255265819682409188668736101783659986029378378900135030109159780393245425036035774653238005000574986741621912560759385125890710447693355802105468702046223934330993237639886502604703098498069570854037980119464613350697675026030136196964867083791047583289751227682246753255439925156485818956508526361192862177750540917861364282770686960237765792396442476105199201019458466525794323604499810871509410480962628183616959942891125640646238279884685429653229081958558428167121143293599987194222099125542939227882360511326661867200008206654444761374284933121750511747463468772336966771428852858725651880125765438143294085620007582895060699840252077167713500740769982417092283369131243852780906076522998973535379694039792504311558710209356826298858201198852833571268416828007371097609776777684036349196287715036647379725772931211368969140589604854930166940841169710005797143682308103822947437061322861447305613390180076166948352194311761419045020828802126786678652617668584481330623528165646816757399160828639584118264016684741794926259373251426065593075420115712700258409069125827013320057723836364002941296439062768031322201078244924935662346867504637101719391372366032186844142598934466058770193570287949228523580035962240276561249815895669980917482101156977638749947293233665105658570066470609554189663593094823252039726341621754661144389605915133774189979200346037291001536466498198955835213513345758235200862420264492331920673302793936572665671933360089651836067799314517193650594303613362527314145355880191741590583065839306098471276224324588621252075145696054254210841344613156986708486958250367579530594750305781738633994041817595692496535797226828283553232170510141125372751070869818621256091450347925144068964455879631264267238689903010806918790131600946341457672860447866375050463103294003820791096385746189313936154646127514380845181121900513948786706032893120205088639174625607722141663814573288279135915993691626144178514947973943857298887287901805276569840428384510735298960078798919475145540686448632918260448685920746734443976523944321035871871833262592674659326200295789660147582755444824807146876146549708352402906430526235134207258704086013304207594989967456408719078545014369170731046024383532228466151020516750449972559278249764210560637090511796904606199268207840045235368212633165518400632128240543807754407706000435123524122486959104117703734726994379369633718940303507246736959209333453692922522524850497868493869833273924286521749507982752498195715739291047169935817744869335976452101265402532555898875931949697088302607941543964903758096582920721191501944887352499222668784424205686097198074244816621285254183981160299229268790694867909114253622076804469549849142200542059205419635380708732258617671701143277479235754028118200029555679641502161940358603063358642269308398732810636437870104734267378319446981162574051789992864579787409560578115642346740765173215339980461218390897970875456941456741450475690920441882144000781561127177365428622056166983318738535710289414887827946482511236330010718032114997675250636602902753837354189496261982406719799034798207707556246037168076177412509722313295948548380842039312313454704097396012800164254981489859990899548083612499021614494961844209787856677900818376654880135193345670037134350018660764851174778603750432655468188736440743628276253527658808141137859773057832210162603360191075275162446398818339768509430415711572467463955140679903292252035516576532954443151573797509701681751960269732278731204556344471090594458511296522220013147759267894330844007375989156568086874977989559698805547137646729234144260682054699439418071059472890542787891770651275406384021242403339690447428766663174861121775443607796265080892098599961746651887647192038497238246147128808988547800050261676867624386724880276046544456132102404822988295251451943410716633379684732561590941634356827204035980526543004788726943049454059179054932174663645899147800945520691512392739534053393666602517191590512316085002936482935729445258868701368476013405782037033271554060378871938308764990484178838908796924538120379026738904386730771900054779759915225882935456958781747677700155257033342319253071168527025664741906927749345073801591022286996886411531676881910529274072720432639041092723364689634395924289289803466811907645943174248118416621087485519783752121143742314957537456913923499514192354742793406175806463552675543864319611211460483766919214775548770967819607838019227897533668853894580858332933570420886530765828497035941683045204569341257633895343697335310090566847866741952422805388469080227822577564924069795787576354288160373091796863355644678104201515918377487435209405807742567327836612418630215770229528968292246214406398980894766054607503836045503290350221345249852009125579838656976996847750713997977634345276327141157125951352559148103546639080036406349456583790625866089106399582596345662442008693981338299808492993109238098463371244461606474405936639813984887656864443702604905185850948946973069788107882526350442108646390664523925550249429652108899834138031102305316035803632389755881513959173354826470533983044551960204024983321437303877733993364801273278339921617445455206121333051022208912661867670186034327643919227129303949682525053562831904662959493507021436822632837073873725646079973507527019957950364239847681436489619846495373367284254291902216051146640568649070076794273305633471704255586455860884512222935947235365794186015351361877322228550048971601045901003608818799192925661666337940884737144613912758421603910218832492754903602486302249715509467743097553423332502837513960484080785405887920146538952907820235182378547766839148718432042828427077094931565880367285171489622175554925647430147731888614909867497658112177063218051355242150328394213732350440394117735313438015717135050623553848352543321301548386944220966769088963060346350532673252440422286191112283947062641208109965551560561449648508930608064078144732293597734248274294446389252311774675409935877326375043660110020177558489711637205931432411450735594916484507238307525217955989197397401403828484431275520758241705879938952625517036637018948061251963226479777771978513685400992597774590187517683381925407120728817344274425741634887558670878258924616204366787088087326884203525491283092386833642069048432175594754151833842646311133469763620320012268832951559905549488245289425832949351662906962658229531896660000674648433529766412307122901760234384565297282864881364028610903389518047690083011703233038369063528835784992450830439347118949523978953333434582483469223576890525350612510921779402171692482605135200168924757795158313604903766945481063306493396770441977101781027389366240074361818830297579017783060678000431164590741445763231481091700273393799910078132636078380759706229900250319645584912858202768422650470548630454825569865396513531010543590736182231883314187546870879544269043454777101611507157194123412292445828883516703712214522612862862135615458481062440924067494813320156577036085377844617650788013364029457523440139033284298909420130788227070260315442930359037432862779805381618045045631077636382043414064516346707633945943646201806060868907764857416646504687146072006503347055379418795412999044200071145578676590537246631252115270534735979357112868199521913075867472958049033744308547206308630171154932446918735776459419093640359144601679399534742909512433359796689880645820166331251738090651098546660557572263339538290140730315444931823641058555926238701134510888718060210277056509886371803377275004714309755121767236449713854283736805483628091202114730228451977827834412945169892929899702580367790715483599028687524704596128660385638370992930295365325761954748916514398244944949415394560326134880536014824509907070763981280414826898236543357231102022269267382484912849916134259665896791676222337789987377036032836690676853813354577423818814532422948971261816486302854946687831627331002249040980719799538623989963683482378267283240107154383586046808292757078920406206618591462260929688757689604961837705168519770154676409333221286176944502548676300137882351896630593766297557698855648492374317499333971783593085477040081462053599916869224173178516988478050422804755101081328868358049681807264122303992674351449638280906816039698727036308208670932260466581555119801714462618922978603420216001614446447030796743261877734623302147960362986522612882219867044066066196382573960914134471321454699487453161943812448301774791157486959916019048183125496531253304158381536047061769533778429057628497690130666466465250255216399459206564124580725604319591781054740428777167183987917089559233427339665395198601449456822071317966657465001643483692625829396268870835193728330407095211829427768957431103213447099606957739310866120414148495049025811254992412085810045868150636644030114534513289072239795526808559729071712118955100185667773301877056078766663463706956012604605805698623107345324202925524556164851759304393459252652637531432185653796552967038862412148513957349717613272394210677625332455389584302940415348786603332510021433326511041459014810292727565281497054057151797072653749450625305840837592526362456750937858139906786716097312815895763179809900991435653565337550862397397229931755812917956293230897755584058226876441271433189304785490856437286001903467444271612825016922474809088374273868086336809470966446426140637060593452403212912832250612006034880475206637930225402224478704616335801105594780188888308022645669327924313279308566705861140703288956226258507903547406163266257586538109971922222311973222186519510962584055106876765747518359974981219418441821566471913096032035265213792032101954030500367261725648771899376567370188374277223447466485969016590272265539766934913608678170962897928624786723027801406473414684902631664344158912992791077085898218389015263264301707837377708892046077288961952484559300660868753623918050280975984703652103114294715560675375338441970359456962195347796394988694272472872392553013486545646393639130438510935181668462607798885306125521371232537142607380667326587426142329104465719181550283996459668067170561404221685106941800828759105540816785646622126216660299032365915113652452807538912384307066192680088986372077696265735409540218989031319208298091152953716512762261492493758834731457379742903359263954120110977332277460096678741055865906888021143801559915344815178687810290188890071923850114065482728816142069096910539496533548072244373921244564302285901862895284595358882354727410639092346831034623247347978398539694298137122256516283981074136430254820440741223546569309873117188472488140371586082755695366483650950052378392705883043800958723084961750908560837814333355721121648184932860780461700688169459899690665759257745020702739633931727091647769666528322708675143782676117531482124976289181266927977469947438191182396345996211035245897179515409094272469889162174801012145318775391173731444357872853786613316272174787063616968074638162231865057341908504368944143421427576835738852215970314695101666123205695761393956259507375456983044900897058566439031616867490207430870912564087968438477264270522958727166570499493012926343497028373846415249124775006929647616873811497346112571319290569458741416991500832697565850693899111530403344014890776842969653280724189015518964580259823934917448741808862267575436281144485626255844716489486075883993278926739639096049943145765293986997878720057839810422368409098097541066418643413505219398341553587165122509615502911316205290313557185230196954694749716714343277753221099730802554142729461339028835645930069498535219434852381814661147750582029568659057318849404031636003611002849557851669414704345261020261492156204524813538703497752987708691835864022593354008535076082521506316872391687389541897084287523562808112579485154704481952499284857845495510224527685581315741645664011849882571146642918728875370492645269815159416610189095229614069324473893396918386675322861607942309472083161884491476645530280906634420358195917666897490080309993777781473377258384905851577293341430642423714102267947158183655392469710116154564911664510447304770002648231693645871079779687987463128774385847743804540887401110276036995711408689000179141430486618672067628845424270724815043112741599530071887193959084008503352307867085466866094373040849924463733371301020157593651995053250792691340069737990486333552921704557348730031975548536918086199588633235036081745688414287470680386123163604284283776407569196572762493734958990431825439484737132363105612513417437977430530998171522854317776791323695395392558479719319669776395910100043513245918996206274767363322599023334862664256497211718562627857593906057225276677293851443728404807023603231626957567311497092423093748691999231813591564166618038617932009319152455206063493284090178236848530699637064109601722888836691008009216878666274305849888770564180333847965792728862446126610693884734813916906452013819823881179071138909241977830009934025471095622311550961929817553778554789062146547889546103198554130622978074781850020659680125409131871448646089773817265750690178442204782170053718442363214117060248112953069443541502059154397757121116980509904578575874820071708609161225585802648299144092267653549964884238798912770440374042848269190422874471156687893772905508690008654152465925109346386775362647121402534371631145554549232748026070607700740366274749667522124738290512718361952203299275320031289469829041340874268740030898791416109112967821330057009512702371246007400694674161552868582825744847442886270716886331984012740754176603350114337851737277805313650561725653974991977779848703115431271055402462328768700908009328378428725886807185009564892873202643558513352297503591748892061370986062643508669134816652880177189330424487753238694194758643854955567023081724888233122376411688265434927222480179570736826507848505090607674705455438126711211967955594734509813558829164384433165721187314576843715105264899600509701378179874041856751283550727517882373567062576232463585389815061461298534898344776988569091233735848073625603952003061736975785288779515924392154652687474797222417466973143154360480078230299879267080671306113232665627444749645881576402303684685791494935158849645092328306285074096596113623061312852779694774579471597286728641050643665126716519183153325562841434108773484283468852832481117236370155238129053295847360264527606488904813600137751741158995972235180999055747007072960758153718953195269182529561437173194439423489871684419282949597723149491057550556711359350856078621467901529659472778370797122593588787429946926228119408229829533128913007018570232803451780053977949533009048633991553415282457977626921433756849057914504361921947809445431069986185556857625382561720976097069001982464768031062940540968872938706398377742838157496132152224292482826118510775772754607590841456549672636724008171645217748836607561455513761295363757404733728369855054237116091808362535387369417239425496731411311778012536136896868568380525401277984116643897483536380532793357992291798300267155798850953700395281178247672438518698382442700833509902675971516414749475469088032618081969483208843139149575035090946679773644806933562845451023877142065525430787899728662232385928411059280818943970534462153701734768625100984283505300371583564837074582213221094372721272014134949693946380077941934099979011374400055132835472097665460568591056052416265458875317216015919980977735920569002142591655612743035680571324952454653803897050554753933152766869392273591460470962917359405125487782713382978248290033961054179832037719979333729707903107067434675544654007176494477021129860481040493884063868456539110559919124063200302887441140568544069563047106906789577701777885299146723598146753777186464245116800174566257486635292978036457459243236829860841367861718496244887488490343245155873441533717674703578695468277896479462632169356419884603857710992740585729723966873666840608283802932280582018592216605938819412824139670539567635650417042498780542990553696565354246325910428617657266820378874187987437336623260946493493298414398988583698369383336414883516388849184628917150213463708877047006120524634855717714108020230028056076279711971485564998209335251002421613834313249381829977109557203776711301336075734949271131592398615504389524928652534865461529214982625682117567615063097680416561655384706160295745803117595943657449450778885176059620618849302650551526801957241042607146021589004300146727951885770248570604153485475016213807029714750109424992702162117915047881273883706207341348431897955426016803245081156318114871411822710354636044844806366437995243041449642488627319496194494579743218851481517534738940946313493936656892371146794410591973248342314985899401798229961348572609667752266443252654663950327886599281110784955195006984469601720295871913954590344450741680000794687962051010708856429264954904431323942231077473934439264482255923476118810951642967665953179388087603648754621958975141313049149087894211440055104302752711435224293336054088866883499580651282403628532997747249748000710838472966357559905124259966870932918695546435610865282924754102949652703589218131505314303266785605617665057725282180152509552545836682344875832562750089927955216833919777093975150673644856746808599852688728555529049028111913441131565845771787652689014598434975399937987833438322574548123902170403974605012178484244378346056519848882136531112234686102316844534642360697663483108587045487591576306717445882427426064362215442927830366568552150018924008141212956548574050546710322926928479100705515068725878424114970059337629445244747501575105719891703387025896683001351804803037019258066900733177815791858349235782335570135836583292386492222829058428316569046924686683354555902750749022393756925108445586537700265647124154277771245810535838556483066206189009858390547571897017002661627708404138769693219487747485026452186996579107180114204197480222108719097188692273226449059442236421529376615645312858754091729119884003229527779222440644674403535654245047599411417386780320244859051011999486896421222718516312076889264944708718308343334104717951228060868359771862465250756805456258875679375969444794368349557262917194213321221865345643303278430998019908702867350180708754953968013675091040010294992369818797453645609154279320111366967337072294190809922368671884625074945213176051052006648970185128800475041923560464141527031314657382666147151761576813492046971549375068303503199120085994773581668975471058253376830264468678664524575220404055164989285001532801929437939651117720050563480428799999938711734997975340678899109668308661799052050278600132196433138091653527280276508582458586882703705704936987129355439218585405477402810876868219556476154628070101636892367605079644388359094245134812839640769293369080097430419580274079334703812229375226482768832428485568436757754802031470620784575430675639545197087872259461843558780289346556698363930571596958448663829049260233839629242184180325886814872486524196610374711267729943701892604069738610930302444543895735121793695240841436379629479644812496219218855227787244017224805186749056938580626644684441027779239758000689998968319038209913967400373660253124270879291008688069022826212007063659660719168057005770654409978321664043563627559470705257889895164820244182652608570556074005048987933436746316356607361392063741532596975937258186586347201325435724789803529664812051803758246782987870511487883787672467763330317498291237843655742172705909423105564330445346332735087169181785124559752739074054629256389705176140985027477988004841536381923533973729891684372583109149783011214263871421461195257585114471272024310441460368529995042929271943406332673406468537280139473723146841885205708329656616012848117708189312434372523123022210728319484974170881305042873418235795740768286900771935949520447561333698389097618962443194062290001896946715437928641814922799964526516384623485349446642781359147169752721940901571834547297381111807474419678206696467466067105617937892645556685453605735940437080048146883198370042161877414965077688786182787976183677597852263835852358238909424759359531513001537257909919651277825263549901373865809792093709350819155177481554632862400936955767520963076972129404377399217461369771336153813423407764610511551184940396894139530547871660630186674231932521524532301359459161684665594012843480690105457677331737689054126265621252265635006394918635283792296341459048558674582060777293138840002143958802331018647583580765196742672501700378271684358558398670109363580503573415821993614397910128025671243691867258535438290079832910848335390767915261748432715095646464986946415743075919983830706564082916296779539100121190704414507493733307603125655575518987264176492433416590255246728120177845162110745882077320291032159792299532130052097238586536659675050641143378262168269785708221897905580528490376181294519631903416149282629764384002494638585317511705263143370934838635389553673282552888077586945228655793070538998378099417832312680283580422055718009223057348815729230499598217672417690373697609853456890882957780078183402060618081196147118076498874322064087357159683298879982937482785569455545075135707723209388101106040033149657686209100140041087892930003339741969079923128762959749754455053606379799235959695728481077250863520288069236486605706244673745553835779116131142917008043321029760406552077879908138960916402523932609221973648304976775414149952506253428297401984963131623172629733867172971603831182148243090037236408904756416688374829781366234937057958357453908317657458054604447523912415929356057914897993264208723774768697336068833998239398058144690690915080399411985377404873992040605426699901681983443486026085926446411954312494363535418579115512269404474921873464680398140934208973031574966778059500923243337508306501835122981323411367807602041111352477325843412750386009244030301225264202302477695401856646392714171400304107909979275619694334799841904211308797580707260874535789404713281541328080435005298550024278273101954036057985127678631472325265734458394119137435473763612335584423296427255798079759097266777985982046259548636193622789735519861168704525391372526927417600329306110658990669093505284272893072959750604754915358853021217583471048287771108447827648203842638507496365882397726780583529010334787098878827536333289558196457666873588448640424312165994947342866896857100797128417921823450864235172078671659521043829480485220493563398923118649195067139172375216940643280970085222733921509403355516952357721827955866782629272827224097682858653092038196402456902527125608306117034854784112128247362952568199333322192477718328506119984683099622959945109965201108986190618941326966965444636628612707076362878640818044097740565776178025029199434433036589753255308561884768233986908481782668563662066402080979431243897616736112478538670918652586859590566022033639585456918604941870816988219878479662677034171867359456465982435212567439252854933111501993169625043491111575131316692751693705899705577963303425302214374409397484974961154407832210950895897981333003675688836833860377679700429583825510559779757477625690419494607499384132360989779222397113184273168268805007307966992455976246049874357491239493833310744288278942567209938423954986515739644423544008725372772981986331204356256543828041983351499609766526569300991829213993503548633036121379034551332326447293627949065151163627765732094807822178276905452476443448584495342346735514199478544032882698673687235394856167095254400626697160089334651408470225083644312989567883515673092700476087420687698756674215496150316293763836567232501416879878571094998892839823104032431456834104785167525070493416135579601417475677808999017688243098728027682609010611217144377352834124366941568497057060520527369451625024230023980293186541873910165003516199486161946315965609333271852891058487303659074289859337096662214505227306315064095008087402148706611352153448444486798347291449534360581514619460274406389460613370567805109562998125667395876294330105235282171858007724526174396798065062982007860500802070066488355831963468827547119211955321953500246451514120444390217182833829234436191902972682965042865227641922804359714666285063056871852904869025159140635166597597054743141113981486498130873073938995631102986989815042275413398061233846466625711884771327994873055662804746611824869546114632555532074874608077797015494195267227024446679517229714302511495989262305078570914228690246579800514454027101549889846724891058211264648980868898072947763015847122829236728737445029807645797175637588305281562200326374130874592670694034940544975066260504139792189946329801978538950812629610800831035183294516157833149077201129768869600125036310373746948841883956659097602761571627988053537680982067022758315015611501363228282441031016469314663318835222605120952310092514650477355640169571708770271453779710309074386132339995455592179494822423021194077165631995009283599167633249307644138552743056464369028113169352799207649620335184112873895950764815992518951321132551349594960995062913110484347792267432703184046867695962828127231791928295147930238218728825991775895043419213788778412818202998667155438868789391094109170160830906764989395738447472257479250019737906562889188407625742411678109989596286498997917075979070517358580919284312159547947854087357872574653148596578278144014057992470787346777117643530725370345684734372805057225405236225434617154652023508053262481782306942797420805641424033089155273137542909742659815440375089520687988434767826466172945725166016876493681543508607682214870890769392654405971132999171098772205258211805503205993195497925301603116272447704486046454176558630892007122059555288867159654336724945081080130802564862700226590421921651188527660494868461422272258719128554940734106692393033038839265048143634006199782486861155920236297587395317995661952491670407859442013720860988426334995350732891529576892889528838574860838218260325992229627160430774366250304692216022853712577939937322158381012033986747382647795642113313905027930251131506851256639371179270842795037114166866395302721374439426878489263815278331677017133041103918656324279888009785499886267300962617867813417229364656292060048473171800364689399499055109641225628924318570766916047662252324449679559916027019277441041401501896317566114058930542878597073010917342433048694783640747100652188489939981361843915326719147181327569236914381571994356178457992644573409282594673590887974737454531721174378507217107361035266603208108849019385680842456546540540070661227900039367108717192934889084423026249865179723369852940849461321804752104023546880993495997742051840096743059043787770215152891635344555934633098873957415659580493668737337322373150391031283600455278615636045559617755028666327137926295244439467702188465236034934491517390196563945869773124283678390835365903984984137404968608924431675454623501569807279428138094981721462691520983921192873325672383487631762142587832309041149097490477409290755245979065688924074485095975726417505146730482052838593172801243658881823374990232442274954463359899968187948131650523561847015745604002202274309242302889769977042710174287179728569118419981872684827269003759047964499928518531961622808482807558333074247416548616211638171763694747410203059493245580181060402092443090981917182862619769731091803777004430321631160551731533894596449027588600797526994214544162756150970495603170523465701485087240240797131283454880775359205312158468423050575504318854189763390962167804234618610646567886956205326042705570814928132396049104644650720895688381761252413345024276419641738870089498538034512093358494639290393149813320761133554552391884445067816627437999863960795285214214088810487050305076933496151505820096989474917478644045625296343061915655839995410018972210253084164785122148829118345794934737478759293715936916133005849085472209849225292886242823404740711588091532624290791068809734279493267539030314305670145990248077072901826426614024167316354894627997549184577430274779064407146795233981457854202592397702282462678126174521389915659525878646941898796010757276940940412171266138551791075569517412202784432966902087431177556309612671351472562547637882588009148516627616488932602608713919986775208505630895230092326651165767653722950028442983972087412760719413397231616240104724448219528852279903487823001554699258534507913087282828424862409206146259885193025466948401722831154577147672036959139460400510001643675719729519093384182900292890747065263748388198160191717998858205675419964430340482485337594076718353009514471723228005906618327904960126760181930795593091402373611825907582999609628345801623846100168916137104842901296000744844699943568317348070410924419533831516142446639717992198275989815800408131687907533931907634175380842608329883477941074783494307184418837770581578211530188312876036414972342335148141255016395734450150822495892749096980243950584066792711447111134443577881273817126215929388180354404610694207140528464607849637191966517798009666390407865168062776465180360736385527494788879148306688849430735565843511742972039608418361330305344321804506966367055544749310763223581935527418289726513667250228735818919433679316363955085759723965300613069056128853697312357739019688964958049402406631682208118086748388023509783966124709190145061045532311966804601811782920691868465117598989249112430109366452234969279960149880337611486879016697059031181570995638016769017628609190374200788411903096638709228403108586560220005215206664218342117633796273729332106825251733496939919956661311580565042422120391338193688850208692135124506660522017596168290161094598847048041238100501495419578861202408932839803374413932258326255803325870613016853819339361551673872934856949544331794219276207254626451803833278232507782207751314542458086125580812365124575296468392400643496992782975747025421933272774251918114228469183453349512710804231758641966525793991288411062935812703039281630472653282921906720253089166935155141406819147738407391552206392502182351960521327998299224616563631501756407148090661983073242801901786966893932623872250451480434233322238848062792910949481996670379991063291813578743981919890819115036484414732170172678290838381849308328488081744284632062249895052749046847579855225232766005436396246263085544273247737803513888303893776904798059455031263589037783034843379497522512414517997505042178942379401041807985952849022136094802213101931116079097374670512051123755982331186638916271452087677320482234337355983625475989277176561340045523713304204139285124055578579000591712609164289133336314882907273243307755364641548019519621688021539858298245522731138212182175834606576194579088618975869203631048813249791336465350869123487262932820035097874754874802536885347736475534888515997110430661911124854983529851048797961425273240371488950439312523943561910673381340125250902130130362105102014064725387695808620249511728077313745587357889429920740467050323489806915937046411321130348408197671805799383847924558626147281325559839439888154798494563268568313339106365209446474238134871849481856202411413392765117359770236007122458457031892712064605677816135124580882052453811951262654569964045199266934906766472017611022323632915901299469702066845231779972885185723861570543259980608721792938325120295186044032324102113851077287917781461553545710760819134296219493339179551456190908131877079271871767942873210960310515460531121616395151139738683499166148706074395203835812341568884396951993285853542607761131658648452982361910270228124975075972676360824587636917417583410848246066836986145708395235925716650057911107194549157462167551767188607291762972668537968951698260700142817169037755158043550417226009667907946698069653978714091973316691743188511328058195365293428637391179727139239745259426054243301278900406789959516826719941993610633870707665480989110614636058816393219910865193671385330425036842422026774486532453590074932412546671429958642130273264232380075966351358231200878123569116001790750382341953316002861617117281589304558011120629088722384678077210200517203836031452072114333953370899374898997816194259480607084399576842124546078867028637568733035554605331003864086678324268048553135977086454922710974327324254569206563736510601506163475637755479396238632270383856778678047316843473091798632235714343731230877798616120683650185356469762847072666606306305078129256228446697382786149156294189715598558968734590750653809066151548087443507200400981151290611606548396358429672750109131837898138744291567583031019763426035434125415783141022726793842596966885819538984217242633822695127072138454130682402879803278921829338362303686706329035216751829886163611739742974327446541911577404202073956681743928461495485151720196571822061752053494446115144294328545446668182735516724648592917976266533230598333250462917788539729897754936414029187722192085934532732276286868365621229059515816444105463879018698775758241887299606834658747602510239357269246569575858470089852932569195087504516384498183591041786731016104194996171963398580407811114728838802115145615345656497259163100821712914674314203767142821233826706004317455506960284052871021457484176471906037101808559051382008359875812323491149446082126057477558542839666989562564658608428641223723396877187681321340091322860329233642612271653787823666534435518323849332083177923930979329708996550622971604577915217671729830493830096740788063517135519760609848637911699933825638883507270070215437196050920754746536776439685199271716404425442362816257627983833689642210447990736940667113194614629663151920030701755157539646889978139250480199148050169520023947278811263811267716478728701135891574445255803215897085769380933290133452931726578907304364563656296953534772132940166562766773587184616888827056306155804024931404083051211815666738405084844343036150263763785450056830179779148511572665320137296521272488134510697923459199162258178669499873997725153883118727671347390388713337597602114337453122800895366474876665356671377252361432675640146834023155924280844495471626231859334165941105424712691056141540152553155488655825744282873283733567116439405700793588229443653459923059113887062672588568248985111224887130430256197404928690860296267508382470426095541028295829694211675169549688339976822594450072766870133318005665581581285173538272664217839395183471447482342333842338467738622584430581117777866993100240544541224468298144729009138477996140728799265527198096059878246096017888368981713683579892406038610695647961746524848163029268296215826907360960669061221088024595481964398893698392270269723725435635419937524059128063373747241953122139832269352532132875455310344041917271906997485990830024507520132535233289172703459530018249004503156393819512197204975530885297850762882510248349588013755343584687485361008370241488202776654677357857717200565865899301512847877602914385322311877103247365058336318557967054626164352875591851061692644370712140445365223962792400752967996844384099615028022277601883188080716759636876339644991137388267507539399914683930544887502054224067108008366481476583714915954409676015654967817926613110805922833178783328000661606775581509684424750596916140593023251086403179915904744354248770684413907945264924406362082699330582753337554990689833758500445883857197259946288877179568122174853237903476885782564540561035171134197884313988886021527662041347004508100031008233541208206720206012839025630088042288973678157416107155234790459145566902077256748467665436808882305010026373270741624807843143658323275633336591451194219150975719582157096782698156297807988505941934907931200882693213595898366778760129073773205208818733948182515723244590167924800040585428058659069474524363391345983306692272333686633050565114510141835145254185191784910904802225431225345266871754807630378628479025103986426813019023640867640289191678224892774502921216834496468964388028722894581007650288129226068181552087651853948423261589615513286177270044108790346108342295713515902847066159714545658151382930138203641498519739940850433821406561653088944645958022607656105959238840346836054886351912675554705468121231505863804008629535908578824712177948791989038493022334570597536248783829502411344580058143794200494308445493332017487593378983537645154009261877269212584513365533320212421641302099641260791342314651568630687845869502301936955537031939843344341192924277233810757978386906810721108627949572179645024077223304459639633245101625633814354258153936577375379652334597597315890188283365114157277033814297377135199654022567078213863278538608461798714799531317788664983548377089179282878957228689426435804709800941043882324465816279579163678408416692778528646593813728691246018468741192168247252858018174920080826934515619748399673835252001671413194349903697889660805013281341109766604374642986373322926720874080266387460411784678143948014145307791876909419332366122189399622760316635508472901429548085467833112568604024977875402950434864902476842227059836555546139762762557455279933374593208350995829982322282075634038744181989877913780910084117557229057841572302871881015714882822668947361886070316325164165393289683989752681050234588285108179638197283767083473844783247826160210374689404737776707078369491860420464622671471513083934456697770875219087224821504588619385601295465098967505772386959689496559141678123867819725168579628953206544694892597411504464409317293981900064835704972633759362183898243061864666325883092889718910444657869002490970050641204236107185085818621247175337741719863508714463104729116813962704432622661151563927330522534206535346333888479809424424018078383589246808413756973930905115830361746790645275907526853490231301896162485797473610280442745183077894326598642733697751863966538475669998265724256653056206549999772159354260393178876391488903785495852725247191154115126868834752102686802576847031117206673876294000641160769995446323654611479561529395719454984820991886752653367416672219670269267517596025941778705575871414519695439757275757455623851158224322500881572848258551211370592135821772337231790226782099590153185706337350861778503926775961256227419983698770469173416242196724927295047101880685435321492507177359003449669578924602416107508260492171559701966611827330675493298933881849533358766512892467724367063782000873753794784362377646329720918031131837608726671098893458704136473398079347403270355973376501497638555178391924654741283565065328852799163424394293805228608997094813755724306927187606120269111169755687411648446724230282568538038575328784400193582270677001655629399173072505222170122379082360342372105968562789831699865332163448843434246005487116132789913028197719472612372199388013019211279485100815425001655001638438894591028752899543803041387062388014892732867297576662718929330704329796796851801847780019206465466137540549856431427882954046205338571809174975970723463977533242192527369483608968237668480543283780594298161939123835264064128441240443709479152519627750971655634520913621881277748261681107911020612154938535755805121947194141685535306169444811798385896022832381421742692938434380724464330989209796517425776574751235577786359040402660537967308580681806029265066886890292973286145354662939399353956683097986281638926603942498518828113114146818714472801014812437497423514495540724296330176975520959228132787643961046158858904678765521763673200354607116850071364577549823887648450629952287874848250794020921852352675503046712630718930982294863342243446773981589030670381104031999965050218636315049769603625979261602610191057894883819587994503627509744819856004299625026174047171373808808065395159085331767391594952765744243820151523115793613172037948035085762027529989497753585868261877020403063249587156447287191706006324742454840530799182084522403053384233166656644114666563983114602408302916838203947661232497636422011320686372494413628038540265308853413238326277515404749499283672260335216909385829010254883796844888513990849205203265701176884681224385153304578585424085124204729974604410922209276429897297169800035025126841337672037055780559708885366619947803005361322932384075211581416279416046993615149977943249581284594288369549570334186726593485061655816891566318945362050766911303100757920470632098350009112302083039716628157166828814714969056728097100890210208915904170369020751805852022709439046988826193773032515015084274841982075287137092091502864192620710272566067432258447178436510111270924671017104046116246978752754708608026753063265576604111405766094127381782683793575666311378200489367440849031217831088931297912485890879145143587464615821996995251457044551073481983902659839313684596283125171911018124843468795968021565099933289630596775016994424495070705049570233232923184638089937224113715816306147623717478773223269198740102768353026606925692387150043497624708226292796436486211428743202127464081533889403449303582683985907690788177319926287187587852850759402777554566940198546205170838794169909350474749480969021217031665808592325544423301416152109166562890311094603028497929252300793529241466258529850633617329626480350545288562302267369482309759119881582984660320222065931139328023567138897216335192549233925260312148123551883305066983972773485639555645326420761211736004661805606929725173231427545731272685838521484752141233989466170190649458895552449474284481907775942693087554015838293597809018908542956658483268488602175993006659642959095507503315880785037410750596274216961933818729918987589517155239583151017547835292427387917656266042601432746774603879157440450542055719103003497941378530298210400794823648480888653592926897733817218391038305376315039674686768376172364005752338383430127521896411756970930882998203540037906915256286845207711300978325873827697858896606188983880201196105305891655777633265715391072787397356297574141961242762143514632204531481171469612826989935215406958389815477006563729635169835070999474539621494832742589599938234135955394383171336606812583839531489092867462430359551173835488000160199647943931104449404745560064625807278086775322216650951906116794744657469316257407542553417632933933879176195438718446119046474256617790223644871336957111905100984675389493799268865825925130680994229003967225474177923175928967783538625404267929172906660843021006289308973105364321137834323864038175779580642265719011884081126639672807381875416194508854139663152812033919193857249259224567260036309174277113553962819324005467047525328528237229819856939042461072034759883218170920918847701184842957817439732049801607512698327638437700943304521446282851054059024081512810893325498628894363292276795811779993622246587837553669384014591846736997668349549654073362019285458468461242427301293828703200292376431478569513443287802375054733576025439282782789592004606368660836978414041872649587671122746633309445323698175114842783460678581784348577191226907115878408720265708247817282241269344553991279961522394212427239599417350651425999371910373336695775566802212338287416274077511493382888921587394347562845791281845848908267408887089943476359538561702532987525018823526260891074324356234125987543299216932083883341130348175021890670671322529075300562640990687187774486286234742733831791362022800314667366366767181881610356672325549447941322968133526476192825707094025660600261752990392257440544942425501990818589778811120667070320710970724263069228953568261797122111105024733566215606295617269613531273576791197755136810102598425363786844925794770942689118462367721985536031525654054469173976473816395853485516200613709041703018324373855018009028664096826779806697753190388440116363265750600279158865658402543554963479991528380848873489237408387798669506581763163363387642370433822468452182006040666394870258173982520011095556042045040474641576379660034981811111821616348274031306463701655016499460657872895613871630863412261594710159662887953196892534532295991379157842186195680062848218728733519683901655316511238810830960356888594759502358963204479190487780473723330852636996930752684347334325561775423875475643712762862823806644491711169861821428032786559806175867442224724497001503757274807173517012975809223781820418029969606371584653006453258949157983383780450459255386738979785641481387339978373822105141241224908100777330085709981361388561813812951020483419428758588421607909823119388792747731463710201695284871082004958960042168583924111683306763139070950879377641849378777324582964853904713534189438661853761943157508035778720634236355519347966007942786869064178851589656875761522445682103687945780051278378380878470732980201059521702814710701112341492559417599743139231647979952319905769254330763829285299939722377844003112886062286648873042875114895152825246705676155736189709361445349251562435202172532783076044875149829399256567069412216544772613432781410561335414342634888302525589233631935433364365228738662529761525866887429170609494238385141023617340338919846130501982121327742106801195044161382374954066396642096634462078679262838319931926530418977102019347103493571722658168857419704211756380692840174072170600671747264414658180932503020705163066531036868416268056413011900819561993056508035367393136924659128958631470788126018540107543040414768348361462351838237518816163121657591328958121413547786698344946337303411721227510122490454546983777608317292211564756254065634403222116949215062355482524466859900660363651839237970718689227586905280254313216868472755476447950905370141618353434682336369860854622285195591261333504570887991686847909375302750526188044579228943970410398513711752691279650249593917080128694440579773032249674456610980330222886489129888462689870234643653739882418628411790012340274361817926612040933060123249206631556716555180889736616789523456697438458946304862907203370257914958027376173860530739153722420430851674897277492084081745285320185271032670184163702968915045701215940568037193446752766640350559614772039665253718491224478601877647053061217258550552982929639331760597745185707340181401726406305573643752254416370747224041596251626020773318570572069415447884807050049026203291947748546753162033069918656540618876551733068639038136064395241878476870025321578185321834733051645057971592068387607990891974107593770204431635002842521411627300943212593272267889176711574022089263920931241634682137092342060583875827225573599790995596604068287148223594808941004262928715448614507440826134489169819739801254901888827254251879539958096827982220006251516583661942582872081963453962711604868679440024953150567527347505639200645624462759370169973899362149190388550522069658157709062444151337544551602629613101648601550493534607010974114808776701802315122414863105219140106709067325103374038926912916354706341612271039203059071069228029401024905534170599285035902237155063875599007204443206741643388053573489844504349001221410946373430220202014095116994649912825243952487947542808772290941162580368573810137196862902508624834756502680403521154224872643258990836317283948887000384104285517841540395189875601064245203661636714693357619927027076543915148449598552994331932953346585565480144726885281723428730161799288700518068610780489494164500596646553102892364697435217796042743238202206640888374249680563199643759195835580238485700398113428701591089436489886190541775567366485777453624861913902738199121868335677838060122434941019257127925512923493330883487123998917778569347492413485156839509319400946264165296826952170975831256945644618477880121463215950521509569779438160202042692839867413419339018271811799433142501409832638045403620188509628937198557513848946149944011374785277592230859062536252109258205924156424194940978155025492442235535750568619708505635766149358539077058930280083446119372352560450827240359070524981391480380932991132791714035461034395027285718360137158530774996971227492733489849368943578477522729009076860978955388125932260879764870714486848584567563555079366310645879763048013403920571549554968403314230144073866253365020556868978149441238726179153154490674368500810465389808802581257500083291871056911845015349951161456568298342249513909053923964743657493517028149581650622734319034283551616784610808297961011139821001746821933261225468108844181642031715742790056802830774796998898435293093382784436557050003341632596905933401398975651411867492641587202316977144033881615686569216581946935700758586530857313765075665064938822978943130547586672175023205186534019716542083528869755839189027742677694594458599186044323634111862419620384046957630169279719538137592168035577929342900288102846017707972086844696667272952943615254306543485025689852299722050103986485368057892341751820118441560847182644679047535176997806018568665796994001038324284244718569249508114207394846452781525903687508272506644422021742374816360578480582843819659704822455865412738921503809058263900577867767379864285709270816208366828714014397929806212864057139910385314646812195408873339118090855359143700134529416004266003494797493902238622987170456835318134642981074745406772745886378535558854467456083578155283355731890454885009535626367901447492612885838300627771996428211581676526331047907840705611013367805431526347466426632651267748810805369009403767209697721507927103710850872784921165704166436067610838254334548263747610406842478936631516859673257740196322369398147473743924963868922168658662536322087412829220438163060339040742537968622729521409656264792693316482640300314008294882276734594318014842051072447614815933036009776208453005704790200186288837557043532057175337760287069197943064017608618181604570226237833619350536541317510905690280369757156370168251095722408232041929359504225556678933179150843759191236282147666938199791699219549502141400522753193460832594506599966733983426964298289816821484816706657316598620278990975992280863706364967453427498490656398144730942312291354208897484503015278991170167350737702915462422827129521952028545860433980364329855296673878620700647351058104658334397178446533750458411833685572643011299154298273601441390331654063304202849690195473660021693350375615438087839928935881816873045217292631487965867934133098689600743204024580366150963836506926944727885902672132079323445339655169198506373238246291081807554526218121925574198501195698552403108126709443000492675063319013503718081302527170218367228085997399542059305523336480900890610304049351892712222998245266533936668021478206045904388229291811939237504381916375084345642264467176098738655703317416451326651300577841932858003935192964072833457757545962112277666717376876865465567783282601643043852852988876353415402116218286049134072864580719189949036902213051621180701558555568517493005475660802526922509104363638310622962848937463262836262437473772666648109907948975320529647531903123765767947682929406124069965384543606722098581307658799407020759420576103404475552704081834445355514657902681430895095693353955355558409628543790245290423027869512527767562099190583856745524934229567217990725994517752624131914077703824511752208316880579881052929672661913869179909787508786868298840425895369391634034863687567061943676461979536024494659183373060686381259674253406464556676139815719233405779227598928530815873352977912430192169978861446473345191753482825066928938574467253257966529967701569679121186309301100191235555057970188291402886539692256729766898832834552440429637282021836210808136516076633181721072552963266266693755514363423306765260187905547944111782004189171403360957989120637123186582390893610496126299409283906290739641771855461262630361230601381364033863792437048049370107707906169297108851321307846094481959534947266367053142307305176350894949643076562728900155609393890334848197635667392584353592760855623413818480232013266379560034325723983369147777619015972582082293701390397915456076582837754973355191515650312779046606250007537644063443417292772325200040701484521969177831662662679487257877550773221874145562009254844610399531658056285395519248422553782229624087382845315314510243121112086876154838867611600334981940971512981146035487872185104557719475764218149127631888028263732815155364812035208066240146416462619111449945002568844383115401738829486843227464392885651372426766811067671051242344826985015353855967038954765918105538806229002724950421791956150696818477153854352003780029497043365378257315461830884625186097286592739838993000992053598710235196016015908175314558459422902510854625015421908417401891125044502785465348324781220501564414866476568896403864338970764632241989132756705184107780265943664079052362663527598217624910502349253469305848752912012973934461445187473127413487345477138551618867431100823322712913079363687796329760582235211104255668556326856308547860823396048494785482514417089561581446635044413624769008664814890240481844452024967548655402789929662186578438473174839447242269015182651152057834489334420663818317956233263658350323260784631959733790469950483484475728211673038321726112528653775990888593493755898389718306566640978845003722806996081983203448971747054770985926757484911944415784000742852094568561170943197991224177640426581558343281928052640304212697847606282869474819405450394254344013369948876149786503845647074791933242243236107985834376765139239368159221223043940152180780975449365901581960441539533642947284408868045878917740777488346136597596304737045251039591086268631183422410006108242481171106438547471616930109812347912804267751833579203686199526862716333616918528185434100895755424032265211500320385302896190638462706275981989012948660653784239506987991662690065461603677531846612354499319941797939315059625875244947434305328199541211799693526354117969319239116133067025142382825055907157042220668910057316308590468175398560360308871089326792062769169244913238354594632988276099819793179251291419169579171600866592090712346547339093824099190116515403642458806023834610965121763455207337698600334025896937550232374771345032309417548875976391692587616066745128761024858139449319602684572661962627212297906030724443525862461760151053705709824354338202776424462988699977273825842677999837640562496722554060757014750742780891732436538781396385900801476880938529039577023645437675975497232423175398963018179974952741737388255176070991524170038962999784382687576069712568206511148545147346729386131840805165538032733553989497650858332084532357044801382425796658676292076410339414253153055728141671131324442396118321664894395101348954534091430087816805078287648449415379251833295603122899922371663480606711928081127890822148852719111380157625937327079332563824697787236200720733264500776782485263275998937304095717167339885966384210290621422905198553051284294562706194967993662616572191080582907426166852666561864280192491508278444273943946552439209990839635052718622647054314976958368434171151700852955772933688994277624856356812254649240089624466498383337614616053014047414199078439468235353338042281251925170508566770835228948209933759315823137747250116624268898518729047559030573973816886740951891269276084403532954848616240412638312049793580347757654568131175106408919119172501236475122111495200686770399898517685972783312186936558935250844360628084831254404067572076061872114028588912577645030730698564306534088688029051106830910462370232232185602095401535184752760463847581390839238043231617337865013133550611727262071362015997562019862439452725290790100959251802644601436722933584592210988718599943073454965787812124331206062248110512350590990269225933696453208267597856613240818825114250046152801322762935850231552490043037642888145729168434149072751896719207436879720455847738656231324442006411817693216050707311188201376423243680921086396678801505249490568351258744780910008269341818512606409624907006681440282085361911813614096658418237367209511564901419059260636826416997335325465487565111888659157002306726533712691564318622508068501606448923402820114653650102255846746710080377806437722999559233136273355403663669430743740181170131304516434887369911046258053765269836174419522829930468706306979917095675268483350736321810511962274780219025356005059796221289326726020731781748658969626855700822902577214910995520220060634974714662722175445872355422614266338549873979573968008920483071008618052079577315877135235555660099503089370188933984747539055904278405799368049748190314727074362657466480334667023190603448812330537944336236953990113468766339464978336324755076063771012382255288491723128003315054811576758306770550318382399943905576014823912714078836436061053860517338002532083287650168911031177406999777431262944983255003246677187519941775758080798095564637357858594797494435811989019760063354959567008384683617970073089856673022582603505152424917722520197922456692093126585560339895589245940730620918602396802945944141649173034000090192730394601243512414694147276045476132199683945847358765844152431480088890202266787570772803945354818851833617971453335118446443095491374768333012208105203507746995217538025821961242374664176356231112905192665544687829177938341282889504920352538879582498729101338199159496426742521395107781415517542545943670699766730213076768635121887145863292888713686721390539875560713116297848226181302366488232427205213043175975966100459398914392914314624754342615031432460107192737856459582430965472768627185510653347193329645200887033556123667076164485078557215087396647980664379598593115960718284700331596922603597048648549128391662464229577363485913793776673376361055741201791031544389002799498747765321960017351071215467869229271595989438739762509329215448389105770013422546781650376398866351267516670703720333656698053773359326425518865532873337002352717651454572007243901715263741254479918200750988282450122519955052410431925483393516104749287998932828180731419368387005653677466279923877765353654380210159057700898277427690761187083816450271236077393886890508622676545282236673559762086506703223154929941279682776140508545792642653010224051527687844193361519823999101728017300763621359366558353029559236390008366816448924475756853121482672254948054007193132256516680329881405058416809546730434475394854665028719593292678626530045232063999666440053696670773645460151685913985006901596077269068114261917480251701080959769695691997595706860315104763208400009045265616114729650769154982958215309435069337855434910884229033421354443153488749222363023361671908799836967133299948859552256746817135905828014285278148606829523623228247458847346913639148482207939770253582894028580754999382425565832414624437270004304702438678897822835821130047494148880161337864680325355884763793987054394410736330428717513624465889245817900071839245927553982839455796490333861257238417155002615512173092358106743942377404783242392030251289517865421383188693383808398750987754933497815881974397563305971937329252126057803760096980684722853659228084133369902782558034317287690116085463248057761007504530754846646934251529989153462128610662188832928620916394959354587241532513027254221163769958909526986624271600313475442122280140091496870765074069392583412084902804960393807814938654288365941259261408767692093883180874517922431176941363894983523265087671164227352762841601637010751252413592708672053353372623979429208332451537263978067101297166151010970064598451458414302527023373625343376241264622782280501009907816150830784855873745595878548930956182924127118300949205120689032649701460457870504030371608328982029458800681774697623707151167771638444296794019862215567584063576245330406037832904964393298012720126661514835542833681611187693182922896598274670539041244128407556675902269557844458832129699375232842033400780933596782723480943723114814091989359365778175868839426290396115698100440320938489106374020096440185271087705793368842077434230731112144781032398800702212066169090210382784099701571374165793469653366339320580873160192660962993124868956442470037416284540888108002602115578194962518853384552386448051074555258113562081944483026181835604808829318475309048900964352490189331628442253662431993202752410761017289471248600826283515671274127520104092563869763111649771117300392713432672542862619573802165463852632301055795074900601639084448879872725114105657419824818240406216033421465336941923045708436477195346266637285893417791713965280091967878813477173794473174926914551203185972495208226984886469213336257527992598783422818444418283363425017392982708354806722025766239564431488912498657814141632621213210392129348720347945945971468613656568128765101100685461479609919309354780821898372411672579784807939116371081629039984243364230452105973967268763671765976084612128171903746979967962014034494657354206534265872276906491727834594480109890600685210347956066386756361724640910376607829021440891637167166448383282467087573260756155998038699797287775565211652995758131820218139778799310415410687625263495256257256763321927046993788682818663879123050515707595810062993344856908731935237809861455275650224792875654388368565956430234372818923451497394902653932417618551850082898700274603488934630077752192795873992870070608021043586516383016114216778581300797622566436306481053816995905450043313557254871755212148353884138691096339363594308287479690608808488562607303295866545616954271328243722773730392224538261690827792412283887133827030235509595342512306617038516062400046693495490481485202566758600329262927174423390846546057856857058372773586027254781546339934650860809553590191107357830418495851966689676298809616856459436810011841354972493575687532057574280881391648643292543296344135621117929129557471669641151352629955922138095715495409423822978450795009464400581604033100728093751928500070460358292213183092198879052870838343043236278054037340735460189082049532997698025896437835710956380382351557150824672448836428851145462667277833837082978683364031919387656387055048438672417830256759629961606158474359694729565670155791728806335194799861099382230468764165646506682122323020649128494228790326387160823883736091245337331060782180686229210850914210655390486836018197579735858006534682750531446161086329368974652818680515118703655593651268372820005729707776332975886132452209534200993773617454923640013641886644985715834721498845596792379830712243771883683315155608147814282715431568876385533341313190682759302271665887578369989751562902692194453704377805453947544141268290333357997548901418070892396169627618796728958308880978433209470479497016692737739627047653584711574983467025812528362392724079170539461123894076800533459152334468319883372053586627829221666215740551253491958619649563750466150302115923305591057184052627485878439053634156889218267883459700268817279897093042220311715577317673653997590423632177311714491771123287702793221915089348129132482992566902801187964601803716427390975939298591840890859016193542682421887928345026750496120943810513472110263114225320496524273867010673940975433649176742279591329464257637014178732002387488046554879342758615804758424251886939832288866766552954262384204500340577253449302905599068032343597339168758209798319801407802545545507166494361472480719012570250396742146208576236773378241564613339297801515857040763709249876043101027782246303860221717893972394647026738655624226808495046992423846827270049668546738404072270324362582385101343164139515912159531703141377406145965303840170552966290539149137069134315328845775676562352091124031233202659075838672068698464578649294834414904680037882825019620925912437991540557132287650218843257074909960931875940347602960639470170859864927021512859748399489228445525382175487261709273507997415464836861455470184239358731025047312671921345977886091031301073765653419996160984682643198443750656400966330870907550531444448317336908180251847486013232489759294586160798284629438033412242872293818157759546293721388697089823329898461960864587030878965994698688815572248511513875748903893890613417240401711452116495813160312378285553994404542138643354562665502607370019386547569352462886398409757668551313981890471999241785649023790619810628481844122411665272863325032104962674236678392122951953932524221601445596263619862450432671107162332447780831577283905460591123923032691601415114273217656999775916494209238193160083790342070905859289132607700334091003927219163093696019333999635779731413749822674793489861136557397057477839922441375709617899719143991390599026701906261423021125899799675484350746608338416713655119836157464613910196242911627034231182069545474075972945383326222103108229341641159887823208491950391828453761403084524796975517787543546382811123898034324348049850009591872798400993194616873921432809799432075374283137429580345630592100040174202904518311708386242375190056429486731113383033397779776379704850985562515274750733047154957793980610697129760769378919310819508678082580161934948885275509572883655037263266295653706931678593210322854879664241445696953282206145765298609140549232460439280564041274546959001616483074892625735379773769925345034274023737788392384048589045174172151253040906735288331054595857993429005177630778488431417854745640581210086561359905083695859470982656531188655884956045871113901659025588720439401279875231854607226221952880493942277699151535115383343348792108106815067185837088139970808374416087318157978354425049415498391282918088597173282532591417208002872862862820748507556471754687018626199513894304621429665457910629995513577010380612092697897342921148448843067504960323411535499081559681197003390207533917294844969008803442298079122003354221058888551089517002202350647588670916655564491916005702811023072418844060437359206202781571726102675809820281867349618762482574165400650477334080056579475304456051348838553990465525244787875730055688084992577956477950198116486183601235646911289935502861075536886903588620821415856033394816615457160977047128718869997374177051035409118813950691474185783248407840137931581099890630678819302515847480288391588989559720104526964293715894380227220917860443299790759537200561650049793392595784919355533356768408018635829293202809823036345862269393010625828215453507903064698546363058960040150402524089972084868867908309797816666120358394089426344498733267124128140051649298350865349926436180199730659635515596688506541801055138259003944582451148561154815260611870473545622364099942976959021405895759358073863740579626074420790692261850952086932568855689952784358662325975534869083680406835980115887320421072884549764018502561639399569983439268242025984078030289791830935595071381615774357260457736527559536268471232968680132081142409688062289771546688553881764727748570086371651681354173129711835695556556769910963561033464490738549441334234022065579526496365676484108517098593507797122898471624415771482194812315783615706415486763633665784364564138077037924474949444381421512114006809824629163386208309082802413240629827590074542926848113096834040090944282190104568781716609064413244473894068891231910118518653019199088976291954901749529419006556815759564752718913012671055449288916318330941631403392931395716576101222074836390873561493778370769174346851935748948180111025782633821620696879798459801539654271581841473781953896074184366736078349157501710537217799090025356484224651987831975081942933639759810104830560336884507034024753564138578583407165525824269005524966486366238350000553668179272871309995248761248906610903665844316995132890761347154861013229315567683270457590944430163433310125488582396078730844015961782015170107507561858038765177346077492847083156615531215364307516026949338788485468341708069218933766184763569415538628407065026536724562692885516909789700099432088373738683775041710157428193155208322384229835579274632829194717994373265567739501801027776846253003868163264619495775977503866333149757372716388002970718343653636673527145571247942818656279209176344797636697827430551289178414328284550472313003606044726506747956692681887578754667911864739567200046057692545847389947818666456778364389829460362758793524290821719016895484717251732664328877947428339117728981364565188497222736684657206999924601588585454688207294858738738737783226293798913738388419246196860193445401758771461737229433337080345509925429979121867878300211502035175066848407284877780085563073522867503803601924402679703228710425225161776282085810136925907437288254024110054111332966544519259193717594277408657687591064124134366360625526889002247959772063381562647233113223671154008659978088884519451620266563995001133633736281160790048167241338869344466848664083980276087555692060337731061074241451878804896220784323326038846264770202510947014439277515343257562015407277765803497348483715076136536677391513424935881756852324947126230342628185192841793591851989390927242666881210068407533209376300452665195908440954644092087146829249343176845174131461924510297699977182665142474899206526312966241782156583429059219251805412269418054259843540832856241314909500825332522077017654543991891264644461825431904202819007210095368758121200075627716246585049795889136427935895860425731599158115634918227809039731281618881632792900656440709249887098699657924555747285029583963219545863872341104815809317505690740244491602339195889332310932378558644596284767867622442202146662844450500401951027256983396741694749699877502412172661508779365186684132075317777955212711848569072056967742167807902496359257225128157311788427395207784335896710976597907154377792274088570700495662983606932820517508715492029017330385522703554703406794575697219364767340563575324415717602014723607531487763960564646865269621019490532476250465203975739717866998941825311705826368542234696789407731110717969022990302526548544660161697911866994869653210523681954566961623532099773254634779550155405679207020891819498201617213426297891810916411907532204298625857597918724414042859081662095348776783195302582454756591879844768528395383033390817947394842185238117631311794436591868502015648957420508039516469513819625682984000607532002808833729161640593035302774730108068296064348743174325400417398620166671249675128099408021593106099058233427608232047484549323336598404907384020600098709680807118775564887943411286594752137022629449911085138714856834523278414927525956803633205954395875857830938147199825775839603271030594449322087487891614488278611302718472190891560173402145933419398936041983372394184828841468094515808171916437671340130812884137597328596266712168496490157042786040309885916864217839342779539777080663775219167978770629966206339893903782943993191570242469597436009684006066777138136477640373899552729893727321114580706872549090567514984244125312728862261999548326877174473924768737193824281331224617870221627048860261032896773812633436879521143354995651446056966510744403585146763089639549667442509064416772704534063223021868410540199133697647047472670883325905125437096178903258045257087663658584837465218327301518094726751573357541577082964190207907286127693280919070966495171468020007267856407492984399867428917481111453016243835690398081622151866395717191452709099467905189196611337244947444497303348952024242249100463794817346396307785796234415054292909307149935265510861474586510227102372174285177643284156767509202802982489898024308246371484765023203362295493652658528080402004229597667645707645028021298617433709741555176296988459912415349019386393269504333117923408574500480328969205028048406327719635949464876946298189478023090002631922070123478810816970617085560370088642316190376708125981327542624031027838466747285105493738175087676248763613688999755438248976890037182381754941734216160477706404474694355546109395623895698911916687153293753463536687397574644470212090377700304104529139507655357087123949273370401241804245960390254901702626466027077568583625801724958068179223049733487695721635968109637710704853523882658515328862015974392133316897247016229393006482836219025777183613727336956924182474333653633616021770615776306814166560277112927303166842655159301383161898768623550253353675333558037421606102077668043380133271776355467519890721598763935624389006028544738111729058336524123630372035912373981037468328591486057986822115876066867440242192474516998044909110842260203482652071370395575190745773926762877890359229483803500664556921599836139241351533314251944616954841096370856652640046339235492291844804598787946467136996019832210719685657530502787069463492352087411034192446606631966879073083374419710419899507349821207032472706973637631674394770370624344057633664509938455079196905357231718392711796019180678634945458044987863094357703537464563465854491289605833461391987856156892155410035643678355402055883894835165005101562543665138518930847881697553247435609741699541592694771048966548776909972977731473565351966304577419547427936416385801353308313720682714156403372554405943162247750822266083019718736755981206355024019660720782995358624539330830917796252298563455706328521271186942122861080436141574759996719650927378355429462748167374691004072148542379911709163046877739191114265671682394683658104406509443222558840001982504189828860320516085980480854482237161789283146610743714877702078438314784441032567715540549645539141201240368245974399158652238355440078295346113179361874403646906780025338440211123780603182745573326832137539754958072715421545331663775721107837338417404720742204390738359402388954837148520163260321496373941262124517992121224836655812682772818374722389828861874310145702963534779477666159424997522883407607768024410544767712548402065922457299551289757761172017935069070036725861560277396621572626597392866381457218209917622146869855930410778277134384337276325460527926867240444533567276840205963566962502870233519501468457125058024943705542308587711537412754019070952211110792479684781870857894272543588841524085659993765581409938005453057742394337088257115264916917222739784664199567148992245567746438945353857571477623057276887503066880067741607300184147500408779970743303586358467512169570444187173428888199149765427042324501620122603876629232852242165129320509854141986823072926290502765574500351188148406046430137255186737293321642602337900292388004324469745267538609664730115443804790733391430828797797121636840449188113584683709074968750398088064390647681235030907778335150435789888272623902614826640184246003571266607386045137208171080645121957230050266284180338758204651183864841052150560357304273078463010634886873692607640360821102015996106433937639833992799048591368921035281959505560333431774322258703875169002380513869272276831232767083541875962877054210183197925863378552463109282908150725860029419389213063336881811382327550953225609901230643420830005256324023862072544162648397968063171696958520416009927041228596347558333413952930676922135227004863153034539265505069693362710733292364455422952900365499140760814093466101872595448961136188102413310569804646114207809522248924487568848884373875181178348398131645586596671347866427007630641575189632606313409708663803018355975927420941994025799020958849951004343777630303654769953820247598573247938860254494920720802085083205683360720929365449228298286768799397620563327751713065463592836030947230496578271002017363989996206626702457537517317499069845642921093358270691092153347630017446924323562042259053513863134214529320837540639742169175778427041968395920518396053282552858823799728010221403940763338666936271501241285613015879054920588141927451338803811418760034463019492736674536673352716083355239247292454325228875499675411325469104120558002397780531138671767035859338098523432322507324782543479834999595161707366935878694704184359440475423863397309481373260601306121976703669133787623589988245554432286664287298425644249259477317100640819133088057561262022555517750161897200746712538926835955264713887428635370311787955560535314413736195248204041895287176930214562474805199902427710760990769517170565553377170663677230893392736357237962704052560639529654552133607263158668259536737393479109678196008540173351928695982165607223256877446345481202514453798623290829310456914324828465487023847631308792074131583938696075639102702257348530699662240529642765087949687099954355895693533310139322181862675766662199326750115182373577287241172273811894958625811532995195462654001687105330334060621849270890272079288140024296951364385950278382709041021113702027559317627890300452326569367152068206558234386779321880089698845916752940721981368969673198131086804635699919998493560380407099003966168578579572281336475662567647028177504975180784104807198598116633458495696960066778885418805930742818791123461983626558083611279276989852082498290020100983951125996690340069007246635035031638476767286303791612946534786624148918598827152654365919903586508837667445953468210922551603373945190216698518971667461678960282796756942405123539808437631418244308073937526330295990950637825689215823803229717461102847209310781575009492142453522354322378726638857467302498025497824250579356366474311527774561520036163177563216136940379848375965076901274799623723572509357732868418498689965809899286146903207769993121527563160122531876327916621628507377367475280529132368496554680145141986650599195180950525067820361198998469616344856793194050251255921881009548750079828659431808620539397877317015337671698391077449979605611874053757114129181121206581817486520401840422391650578107698448744494726166784759015915586623439557434480703170267998049407597090986529659324772306828449131447601995124396036918727068202090218331932163399061295457733186933946417774306192193133936099973651437043350463833700447796135766794588432509872290091738598237647603038460206453171279011800011636085060653594175103114761459337616739404435060688532481770371168994388587988665191905136054163369567315570068512862558661803448453434499516342453008797278357012292579713843536713832729926502450996685427449157934723500764022738363397260927217470331550237176153703081799737092490281148418642126714174323645888131802692075521938737540779460069125827185134140822336235073931177896303781601953147425241784235623533553882138917111134079401123729274487135247682961321658037693207544596202186644686190620075127824520424772920867972974313564640390419659541233298262841253928132751528333575228304301586246159280413221206365551020224322730680320748934991967372798545008549814570461441458220381075642672766386648606624920268055371728530586390906615882249973111004324356170795101701493466821283992576716160693459851266470412531262191602465703626752397192447498571186977600034244779217730658104066722059638813455192763462883625127802143816476104545531462383782864166195861160287050392381267530776334992599438407253666372709211308750693624749306188519550606409146803438149711138613401726551587003639947033713289433180719309952857504668751974975637874310670169994315457037351794237870828003857159861393569730648908300543944853383607956106041234203322547435290448545162415539101129834009068144992650362922867449747639603423474426699517256692076094761417607798433899498443284838572374823682066566223147123794815342338924972081819195548765600461092935905160323796616491143896783164118493641352867885068547203396457248127150649403908498985587162271259292998265414869931178040590979861465754948657356182285347861034144850946109059654017429951267851261059401220762193991807177427342148059174120036401910606148481480271719979106150639898302675851688438676376027032204354858151967787126709588128968443330523658470624774878681380573189513166220920289421090318200418356609197832632941776321915088717252710815241153059453696158053944683302387174623829286032207292495736158319588527721177128935410913967595200221547153357118860176238085821873721491449371021675291927130330437102531251850892345662677962293207307576104381166771510344831148389879943213215376245875381884638090367603016742574322027161834076343231814879623302739072533912371546878356232652866521886087916745735286377679958787156903174687950311261389917005751544788263947282640709399902419830640537423807932076165265524052571237448769675815256879313147908862463130549336861007648508925435685084560007486972812754922706164456551353114036151579739997590547079269798613605187095058115760814847197991069731782634621934845827698093249302880991425890638034940536807474600853376924616389691014913937371569405607824826365533389573854921448406826672524936679140938628696734426182951841945251038859728785926178412145424954061359818937965071078870764276714458878934765421917333187019702559429831582293765035100474897362725687982171099823881990757668672801647100921472580792615647135696906736293673517231581329891801296721395613719006135493372459123570949530770013581354418822887300744445203502307815440548145651174759310935535011018904874634782831366473999368937062695125999430204885436430116462155181861320107641297226203035462880490123410936125852124083479110623114681079411555481915303452173542430241964529828136978883380680409651223132190420031087559454414338869758025808414442736753624567849223960656158909449510861714617657698967917964127723073640207216529488781164298813328737676352520950082068358854210248086923513835535397876180714868807457800177200333262757740262020560729258786922207115183399131300750552317225084217548053058921242822483174816054523627235080756153095375753027435447887661579565027876277946962877608897967518007414159878879942423190665654662454451603706160534223301729857747101579101491948468600492517058037857518169240334765191381518968462504248553425354365376997065613491204515667996533560088021068634982932865241171829467886476494108299351052740372184004758295189635400030337292876484177058470242417199400547342551242122089081673387430665718185387907486914227569260906425920288172677314551976889443340388100072809078747029677503295211808129597359302315205203605771076466611781510430025526716092163340491625881968953224840193139667980909850995808811531778447737908955749833586866162126575247210025901165173869910733413861293201251861769045523745557623260911272527143150861151672793133871349984597047224773011614859783301739889963718832553368710973141971932941383463439994756325417367937089037578249129741973510724462862012209336966407204591319343905046109772210639577834184691841818157679785035278758266388704407864996613801021680708338098596752774481078035518650554378247372766065908242544803322530561688684631509631127570610540044326924740447560341407508065951784721252844413285030102176890583297355311399318936124757695067656891296967979125820162974810044873612246652632925822022700174988647586285693030460771905197948418894083379706793074954127546479501801844533766519272362911191547449896913907026440479096570004927000062514485818639315512779862776415501658382875562074627539890683501679476274977076843138937942769557780172331829287027763614239943830801611536118084653441933280375193128849805192288221560307660008315501806451935379898594140105946575598782305718377320934269238558152398975586206655522353551434649851698996785559083287288213646894295587343194183237532780931639404617159531554527600334967373991248831485160921446150272903035399634429729482094533478331991470851253353688373709837771440885173900959896830741489790822590754368775633952722392366161412038098893216940610913116052663925437078603019069021107000391151458351957572824780747983381494507056888688662320097675609806226188832676470334446899611367754549274060317943116226487817262512151756291149250485243523588576258500558311349312064723146885817443796302319790357733393804185368526216512353944210847200223395090399357523982466952997822978665371468010246734095431542901299741541663330466499042878270407907863477646909722773661832788413042112111391432821391775281285327999405530618337948096451569847096123920456234230125671850428730509184334190654548466598671793049220687482235363634225662399007757643139730975460582778453922606978778327653859453940928555206963939590876720052376998385193220611286575443826503179968823838723111150033301493103525110660226707843297868254329531519607938345650520248586750009364103313448916597634387875836040863205236972226294668906624100066631514269918852356692361978820304594447205952057398985816903810963779987509962521231759871140794492486377325441768391607201403808818627923486309520182455105619345471853739951217133058870321651950058305436831192512727311402313386799587407976909540649850521277970815024577214081309412756577762131076574132287156262813520256567833622086227778115580019405092678914314233656077851018098531120658402165164977350415701578262278136516096624641006307435018359571944927853980285690411897309318275859859842911513322931421145802702657759346031346274053571133611259293293911805250811742596871282353007042430585386894229047262986960154883880184436384412009704313558147443253534693954107304771926868865989013884642603600859466477271235326700215538167166064832759784602313352829287580774582469553759134677732950756334162080085014381614551698509734953842543610388851499737734573655787993263178788396016909937992738937815304842899129572520305332256850906932333754797987364104809024409228295295218104671334316129593054564113179008568439704446847088243511939705365426273498427589434909147707845028622429799420970114451184051098453134130792628923370250048303037362716334065613230601092377616972364726103801035221321706199017656442057643575513479459287319285321879901566051361169435186281714132242183551872397018784277989743816460871886246092932938110848603754843095567931293764236519387299902629261143013372589319019494042797284816916957211353933694927051398532738459005814791579208922678332958950667181728193678646249280824777370793112875102410696186830419392241027614565586408619272668140578465581788266107612400968289147238264552236877761725255270118237986758381402513004699557540184951369796873811151679040258770513199554874514100123782639535195001302583502621325997627906155631236578012095033724258144055203381304537725332164155082922115441191846130136878731629990846240481246878142604632339023288447937752402669239484889516732471802564000074845917703446903912289996021424113564763730233011940510883758920628796536265804297825859673530618704146934616874846799036475480573189070222212082237744396909421765484239284297923566922852571344901598848553706547253143329200168764261851558578900763257718955664987352800725826142218902299750875079886548708755928923002422411068126561678328900101063542321583334820311204425767835067373064344464566412428264586061260918838965396699052943736081537536926969396481769194813546847774292651980444988494156847823441472505173852623047087197757038525651061901313094917940207540469374526446376564292541842207784187951313190368782013993939329325612300329696112439579079523508703906233173497601381109722656280217759481024333166125085804608530513527050115561045358348950805735751610532545624991709866370595221513626723431348792355513532971728172450775374001244493728717622814352877824686626631877072596652199309832689393330098127509700456090122007121321165069517660782778854212197568023501893711846197615134821956430362103086900881243311095093935710733298674192155024466278285644499270254200998188731772170780288580176998041713457908225300569339991353785237103527639412352902891851917990667291203089653200449700765643541347951833103450882771897906468863212904193309304576358112326350309378462181186340747562614306584026114842081890015629959513579541727593660424487709319815351183183599837906933884695886143667696765728182217973389345029831551701234946296931172882423006663646669824288185720469051057725261698374329937278051095473096103357987193316344397520108660783609506210826965866439246608151238396896846455213543518879772445326194492008315672303657585580019701461891655199883259268456093917547681924360486618902162067757603853076239811720497795537445943788090265228925523458899893122364513718219131554738670054889786595807235699441667262181061840676794605782741689411412294082777229360670738182062046713263339416448217886674167460157406109227805943342838038742109453319208358643530845049609962750368446512825547298643584097902510996718351564579213526759523672789136639899894104919287463814312911201300929102055044286948830518340063944624794374893350804361531541708996378809420110047916044296510660873365409787662143966036597891570366328079746887154890632701684533953802029964720543966178927248676724897314463091524637136878927422581790423143166858878651739691559660863293269858325228390090206781123473338511536093291238416405095726556537379925540931268960467085146862701400358324570467880876734035848738930033877990104960863097457650684549094201969234029235372808431229899520159681423126936538652629128673630784174932375608233179879301917930868389605974745679559061098419008639867367475488433331436650280862467227156758973206131228921481179268946026692787727944438482055315496606883336436506685098782610359136541408988255780112753910493575810700461896131183100866174681448990489025285192750254734762137529586584969685094258759259256316375943753661516473160278810483909269289703029208113704232719293984842830332102640139450357379868382346090267928138750175523788180272461370215592075471257458548971370384039670775951570902633998809230760137870515978360018863928018043371889240879647838491919343211841134883555923594634085898848914852421000278327950859226543052850524418148520515784344718499345374316295578470178242771480211596134992361957360196216474978497978087378070177721051109378161751667976091878418732306144230240755760420736072134561126171984725652462255148812593774242733188021430669839096198477417133769420981006880959654625038240617297186450551715118109801082924464599937965467519273965144949442822409030746974240227673404589268584581575792849849210244218264924963191322448905047657746640570353501799795984370373270204563941131878548547701138583118146463386377537346812399356158102295106558958727177389644064154223872052042282877627027129282314669283245833222632160758116296859410919578155244561498467987843314152796506471006343060912071595022881634983914301808985752966859556263529398611679779277520763570223950569437958517935868882082170164301868753275852683723545531928747294959660528500203251524592581812559147522115808839441878385486320082007340338079015803843224556258795694681843105692373693275005290036581295978468659553074378698466644821234005839730557859004997523031188861504761868617798158275836502401391581440659493171193124890517112993156128794618461454913792817205686158992997275852401936760322203860368165868227991098805936296822624662169367104407031289398899900857926929164748382287099290838770049331469451228626552050051280160139439329351534539941043349346147676199347097860930771517293306660605732690983394506811053152662609337887282390118989441607807512124679455677968515435221431805622433495017590090045410436220745406953870439684824377299896298860095861254075934399041122117430107519139873152337569058921404653464514376902986219408579436428745038539227427495687532937234618907605965895634216087902187084541049729521638652837149152426087364847737729046843902439418758860643773534671573287347062919979021944903215679110512073340307052283477854000065079559196007590532536066226598840383124937728105811851193553403068921152327366329775960467194684617128826541836845686433575384692114595112191223555260282448458932326096669960648147258651812791440937384924229793327552132769820979975308802463886083936551668361905072699815116059903086892270186139137046921595674556705096516687186966194454191989882579981369593959454263297243401913754909403207073156911486099419789369363800273684883028740386812860700640905128056101704667854674560909444476130429541994836007469487739392146844398403923221335588957387877545485336134039956629608065992959742367276099700921175116573916366236017500982604126795416747042259378158960213406805772856758644744786229664411673173119193776952484145148719238409721180871672237739580097042132793397310233309026477127726792922308410731565965623904753292813108462291934968611815692446229653484950298787891574641129094823314808227362128700581394255313245897640099908767363818261498719717043464595308307174957129475359492982122485353965422644960909666983970470283747365092337669871028861246470058637752182688018103468578348816779520248985308799800010411595392323893338784811024977670632692817158455789435158787127092873048877374387048539379946699533359256807669365905009827298822882778918199281148147579508547842701598994476013858871482326320625297983962832521647317490738354714975892361190324262374887502278179060437112091588120143281512986777959388353253780038936886312245286407571218185641223555796027310648331350689213381252302113428882510080106945131251262673696312178124368357377233150168346186136862363776890068032551850354027441786110202226343503782257582756075285551864817492020399471783482437988798157212871796352259310728674223484808857866207421412837226420915911005732626714321278568066279690635442424878486259435703004490481773354479594262061432991158397014585845896281745799298464170525408673777135898202581015296696261826805971486759420328206542295644304207130994212374208369401380921696158534156333245389789873187109473477420417566727565432606874576660021369490162675198238271335237313873525494498186005657645365280473073284876125430058850603814868063494467743687351963051584776921743977400984255666859401049925498511069650657640704777316012217199875136063899432001450572797773395136819031234074467516118977722318889365354516586993639284507214473029696639290341332659351396273918449466199408305036127220347873065520306994348998139005325634845638749210199589892946148866083279336644769229834723487380705045650523569783603863651025291993822582847277877434641415033819594060853547894083662612761166000735936312745772496421869959661699364292355527727598002205790625746261873325549621690295115160619695949019589982213867991404877458929817379536170609476910236958551911232517519558701966179627152062101738468803417828089404184558245618197840813227151346777699066021119058962070498398145440962493345185259269042930702595848089524298696366275187981888982946631991170039603597132835132342292310149701942018621054890860718023358505769605970629249995953464889657364773667999600905874500520757529690550188288577473786600347821604149457823241782694100913332222912182289229025153687279566688575097951734113581502720468251485000308135449408420535367843042754338249996389648766732139891740166040926572074335619220887243339741269742983754746863358218317242286732622379919131023161392790197830166699930497264813353175004832394115462033556042668932926585676598739821898330154371734946091280058681397977089833875930661316373846100285154782972311233342074974793677028771828077238451958747546532522418962167419453780796371395645255739123886733862127101756443434026857252755084128075189122689072436487621855175575224317181846017484484203174847119546686059210119231348565871499973629393848010651494965221856774818866468810752191895466638066659758788329230606438192399325361435590046838092792283376287616089459880172383567925250646236450280958971574851957661930633890139235768748354695835013117582214060879386040800848986043232186102443220886674247108788099381294461970137776294691254784817678169686048612383048065608743219281306908998853439569803658097467500810328268463881165712220271200922492677530832945674401934410432673217771006074379370161816694916029763139664395081715871802233510865734655456025355279089754679669775921244534535464849650336238059247977640675076601935437614108563519003758880734281293273390257761689114538716770428329076647751434708541624908964287969033478269195142608396694419214045846762251767064456845812372464090602647943374936601782682379513244367038961879097471531323548019984143701632654123245455381273879262965605047537518376013678085941222999393030174426059016280530713881726687406098335117326412616630092396721363962484083268861540758413040003870602848322476536416824084064247359814507379650123036579426840683966670080197996496546763357336800717687059637661704663109315994054124392872677303390868616255727698769761795753510056007073717531997856554266956635490321149263880731704275099062140601775352167643723443949929740043856706819299303676064663642627089003879951191947668101276793171415750763914036283672318660276221128183601491333177472496151028820606508803253040205787743739160614482197363747908016527705999616023975620430943913495487917175983645226887409516639259798744736308221304339873753477818787293839507585837946678860026259547071762700731884447485280342072109326436703072228105985364353498082781435257552990189156548356124541160826479430784141856604902601835058407501920227643627158794104207751446821878614117850257281259655177688806259782188242006571271079835675079345536450495370847070410992556377615964005506288969459034771685048578448014629332425128354093858143169223681286212134077927503333320401817295687222457359776128835860018447281932941980644488913504856794270110251235377684409861537299426467114710280064003786918990243299579567375167906714859261806883862472884289874104618567011724135038110832932231428685943407635081036812290726690891301991857898831767767397026073760359868232682701906854196599926564314677442024210006938445101748565125017407191124759460713541371178845602336760162981993384514672783896555509055134463750647601482508916880831736153718306934864664459331340835852904246065825178845690125432093275530143622163451083946892337496329314759461663180406784604048492616842678859082779562220589834853333755320347059002406478593376237365961693052101275669676102205094596731908747457083406663500405741056576977503958416402235442937101266912272946003192312251036594933985998815088894994753367150318874356733739142328272445250033314899398551337796756954582338540225935733253142794727710653162724950185672984189902037043780614006116089729632796791085508269876914834472814938299031113936345502852972633496290431987760036558260785232444106884726787420842273960977802298864495066086105669598285420812159152863339492524697243295596261952439461486389827198004315726890740528294851876012421240448185253383970182417200465311852680647919383304901371453945246751547461970287476741253838583728824590431510550461270676628417312618527121146192007949092189706833455447169457090210299788964626017591380100232206881943100488313979770072261376975175783903756965303812277433415579509729893565785871723122251755568051125054128359420818586703859978264749254561468052943040940404303727259088383820151403887871256322707342444773644330159008226782534437487649242622621363549376307893653938454699827148149528940252926724241127542512751218094316401926346539537027696601743420269718824405211212444823924271779488044891731508322799184945750942614931914119510944022743592927738791032400498215441933636975624819144175441142938436596155268095881764790764631199474268086639107729332610122671106391623152469862800657636706889002840625710316943743577794651106037667589147320214718562278816964509940004358300119829291329516150444653172792916247184262728386674881103949999808007949746819792999158443204576934542200218372551708464072459162099625842287132327013285582979684419169800275466765637726006828472437065606749644427445124215823687257279669992471389709733215191952796934885032289849607356675795407417953665248895920912953294864507299241428517713009239319262411405150313228481092212972953978500609666189961425367194330544114969835001325728601702756433869876819698109676434142263685312236463993707291078317079455237136242696454378348975116230927156714315489949594044319295956516432875982692548307012740435999836129119003892450574309659933347999191981159894177846990574683938236184834246242279967286358646771855899470964270115029756159052138884258358809550209875045545021642707892991499370312124390405624201459404099126817459424704407451803711663481624501025403894241147093164867277094716809884606999189500720947956387055113630901951312954723477561994862397871676763178770774531085203257017671166275037807609078549517881136939970021665170821263938010274672628873468399288128500800822728630398297869849180945862328062312799643544459925460958028505796744714771212167371761608811937096102704184150345324378466075085947788084194068993114860361071276325090645633943423595057218727944211219084693982941034886947322930656989320849291264183271025002837765979553326503591646846714901572049414696662094921984957303731656959445520276521701895327907059752790736398909594465722127637279953360910925655152101525926400336929210566278539906992552813219048098314010353448835769518565071492307278074976158972755407300960000461622004771381807858292853168725621139729639666107758663775975688052329396286423618778744401586632970176125284337389339066577035082625808972802441672110129649628754380641108643314468002234064009271429377355696566050086329136957150816796130629092772476891886493536345831430614077720842328117126802844105909188958107138068756008971762861127155192240161688119875626335668443946168758451729530602078484832251857675306004015857012125255287798585669233604895652363822134523306925790076285882114303352195534719844099604601202819651063405838636100865421415529818674692338554840347736325245712355745352858899540706637095843083152523437042320359193590065168276803015304647702791747217967408073146041113498040620850658730211654777457206651980538836666861632935814458744221464653639011720338834510727185241961219666130565454891581788205820167668301669404733980660512884105826426811422421265897217869269726340139766262897527409374243780484572066260047146590182763252142137714049338639608232221171431234601945312257529819151588614361279586456163677602323773060705652737188697701389608759103464946251089422495294448337520452988531277703147022607709496823088174454064671744800898573776928107443837900317364512809756607937220915690437446006597057356383442445912458224989210108855809223575393169530504765894274960875371484910165212422261295421310900730168474718347852655338098914447154508309337452169950066484697971173498399985932923203907610241720321089386559327353978390131432219966784170133905554923846111544807429669232255870917594289587794124796572961610241646619744994352271526550762068828319106894481629357480423260801296212852514042835386455309705689619725016372556485288688575443389062217444892369432261409188691340809605103365333342149776835766335513930051780653728507446826669958566251494850118596996243886241707768597435949050260255375005920941942412755995311352979364507641482257883124602038795057045980910619624109733923138617109645558702104066000971952042234539598867724179607927264022079397436166884852231958485728262230464750952693183636304503739918404110312470757282413777526390548538876460537826745113625135108989681204111122661433838095535547111240301921781902877202357465253584701859005452225598103046009665961976492197482494752096502311742986419026473275244715999422576294904963996482885581188545451010302681010065566245993938146573542550511884928557765543022540792223620023793811092783777703211944850453724914904165999027397671730667465012391334845998265043350609100920962130696381359558387917840604348970491182960625885223985076993846788013452376677152709515265880939710084359825124565995148604690834548860118783764976076451580947795470773648078748992636729944190537100643427625595335748174812766800468585164722498732055911486003803348041554729666159984818176718650567363492854793430138974797692168254808900785553647968537462083969767243373113635187479551706367902750966720890121887038701800704421433572308725489428095597053069429389171740636419746470722727961445646895118853248319195197863190233679201720322965770159498327815071070764505362301174517574224264307995380511861184610438417184700626312280397187581634368693880126612841671293130177535656078334619196761530233580430606418755042950304395197038073859503395582758015519156881824091296702490738604199168808946316784242801709031706140971595470981330906465944482000745581124817531414097324936539682274046330945905264822336409601315641437361780242314758653302528949827920711509485389451263969717249601113170146504685987059472475278918621588593370547293808803482377006854115450721432919758329539279795596848230772777088377126107959316813958729238377602706417133063764733477947108407999288895024081406189862601256061864022921858671503526930934005242260273218852378771438316956086123398960171248541452230170219189726783237030045139910587966846472112285640688611107002079538720502549938998668481756211583837836912452622647615085047987722607796503501072815827188124159807868783174864100088543935978431620057059461822717381004201732056579279677897027954757174442537287585679623373592178835620374721290565515536613064711215680836458626097873182242747465493780555642980540516470459851510552586316598581146376570457450377751436883880653746482002530205666837809316402810049902186397234018502865872353879381139563842623174218049051893720286988551994213344445390644904903793543012010135085681816228676947626321984137734801161317437412058986416561750838176791149529453422487152488189850766393507948537425616635830468747752054345994599798453117946831227466740458721707447695265282522597343792683553851758686914236079318485059228539320272885351877117635320332941603096251502042110226282913499514791338079364079771074237692118617737173505317326168492976434613463593058662500760271675320510399174066433440317483995547163973608492153491915432095156961511086971277909550502713729945911799088579890865824203466439457375882418355284628240562539100310960761562589007565638452671896702748915928157655350881333145580574615358440664883359301481407544896205475700757491289327059888451755265482833584195616595121018884993624172204069284914981810426364235171618670920415859879782534948593912260260614946046701004607833315651231352076723822008827639568072732850912275962129456626877796644391868134430300224686552686689569527807423607532762627932492961047480640694323103714745117850750101313367447515886959394892190222126941450217176467392040486407223720389959693419102617217647563124439482081052297404724994248669480235572971177505437397191548927228921541151363757510929384656451961256135519911400229667241192185744458588087810052913741071476263851716006441180434563049434887026796379540281195417879689870128000211337700247134328694843205688091606453774636363797936652236741395746287120821909542611327564053810913109443971264490013064437995857525322134749343755306907851281275101934256876312630440717056956414304491899765636704488593514219168114908241239961490343461814019371630466874669242901003939690449465204898326663942414765610106924969936537705640971539832359577281768595938448695683036637760520290227420121535426139063990338355416893920985747702074457784780827302123347678420523772341092941409295020198606411547187986679529891859867314518576515485116215340596408470514417522660317974819397636215865328978996281236824205976122288403562438122800732935444776069873856648087480944968496892441338845194405039843906665652176127763243766649537057116049830326754977660957775630490119545104953135030941698556493059920575596951866246925029919455456008501019257279314388806160787370332921564589386108719535004030748434581951596293171950995031883896024091940429535446253257896132345290763619320910197013385097353896073828315056465396188137885660625570962029789753630021487983314686892830622309574937767046321802926397452840832153282405695497760558013715500486715108785672294564567684905040971449226468578040845880617234393788354376615194463470219494669748741203820995232893940845313833288134298683789073605923506959286498007816490429480241263435103992557975293042887476546781714001245392949994186790474550228180747598585704136103898923148545145694869847705031168120391411757638417845272170770480939711217720393008511625146075849143919115562781639492912425428110333419467242933387853904439113233154128215593899768423360400646160516903950224877898239835403732788326046423927016895610050018926647752476028075353027800541326444437767944899789180798246332681738107973907793965494947173689036271853375598987781749431797473724085726583165128166489789379997896849040214760877447885043732269428165324300212340419799941553954486314858899262298304811648228890814689534624336904971638813272577895670978731402897268220057392204557017225028106696790934051472130933494607158484642132250635148227556037285853381315226118996108975141999211696769562083976166020564818418953935112408548530027493645502709756453327994864395881194714979324367442982414224632880826742988952773842716011284483982946230198440001690344357304789589615107244933899838215926503200341626611583027159684159789506531724093282702461348459357386457003354620774065017856103377268317511397713805092329547568296289879683520771693719849853915977025814484596156721203297633533147611855450179579015107088303330548431797810512597667242973243273866968972015961688950440717938738380337622536792208953140224343689464767723467634294561123027104041843039633640564179488457238568871103984592957653867838862477628013548289904646834097434647125035139513424861201770383379758140248788374400020067974887623872122347793175800201432211885015678141924297816145750272736818708589608252859409339610496184878477924940350329475112373309099072263916302873140528310896771081132767603598730941747000871752625553208025170828933237125365951597228879048391494004849246231050157491808644049807738170450222151018313825377383062946745623583912440016017025087534187143964068914463409941399292092524645662756246408587014237523871794339314541013430167124311727789709620567651392592279648975878486302714438539163416096523429581282037264745466553218842209936281988095737691711674566945957235926800029465261741563014608968951170946421829405723434392120292787988516967678510271961262001213971966501783674504127397179776857731468476466336238334902478567831345226375907308922026279561387181738880687966160241787000131532834891526111942136803695510864439874026374831096347169227636956529878251348531829772486399426872803932532920818915079318472252830837025127020262334049859457692797476030756157408041020266582645862041959505515648351576781313881379179994360738191326842488962676252748205075093977376038555950780690531258633464417545680515818314275691458511723280980962285975919959628927583118850874711827865739814315321353000434867838647103853357430911856159138106135346267255804823897468535173826054362337831960761107435299636961434385137123383086445237012143940299023477952064239438478148593778736488266861074913699093703059313009873165326271705472772159415934764999261983076815352581557011597809760548628584074442681584890373487392319220571948615554350772163062409801058665197333029304077525027778290301754991138557740188099327778849113374358344747216907824084116323302749458895557207436804485843086480230106831364308184176068330690768734702256783469006824341166026947584915297842992403011891995366681759234744389212137348809117788265215633911397039430373234734339918842988251401807345631557190961712064032728449832518349539411352288856042326280269527189834916976235283722381133763883899741183572696120321589704372309146966803051505283152080494703821144418076887073992571987332483269542754483304570908894276201882387531437314626924052168255058115628764221176479119519191577186758774005063518380549937365410772684338064028643658023077880267643504746566000017509546413430922198673318287871392109578960143381132395341156530210155268537856863497689114216381412927476394358939022160758735262974483754549804921040136882810641611033537100004110212677627662677047077053489018294362353995390516356738316027702671325796854260192491103096275515365735647251031302325680121426383702374855239499817586708480207160126600488088309451530189408865397475306346657581049098188245164709073112158110989350457526591069163114628489092457063556530463254584659884190881428168646545303701353138699561913169445391512054513998935555573230967105693530103749579827155011666892928574242855354515555932970147594073700086822034252414654841152945963795702388599596387866961992322787878106936626604285642390956362863206271174642202414144763925595623403203794934277650384511259358323630589130354820399118842736350481969222467951233335358680445494716525503364471061975087954975075710094424843531915467115050909052019388696458276195497643955371034176094340246028044376536943277773498871305095639711863361189587221494445502689864746230901385035205042268056487719462985461951881843847174667800026164321850007289254762314232541132862840397021694096973197636218391317026542238084368679073186733639403858695731642466035604908209367772029287896985830845966469851511026442037997578331889125966415627618123271240687344822891706918948839604640694851307555049361042971229009368131590251794344429974679970971135802430120656052168599530071673657652317717031723555835353054298796213435914249820586048622196463445105236431209015606185464204005505329893161507793620801541386490031333561187506029126295424497765157249879082248549199316340343537661600640813604067597978859430572617614208973451104678735008347778727351875956434805393305312912329715220173911846952183438906334558599544383865479961731930384989910297421409539259650971778064026362335477191834516453194327438257990521620356774614738884545705708434722968151490677116326101112320583720387509808490652120029569601775907139452783986339835546004395772598906276148982093534130681333837858891010053904245909855041100874552450851600094260746572548376016614522685826112187644933903384641242253050391281046983217546396529063021702001176683430783268546848813525799422262145863308247309133038965022511298658059787754147064550450688865981265760805299475305080967442076410973932377732319469087960798601097406652018128760707097814623595864861607183649435928829538707276406304053217441977274098321143668775700709585703991063311106814837204761021158276072176162211030857997888369825770066499549485100171222488219312401210268523418538307602056305184156435276959312322712136011948432138588098226588817504540740991457454268012167726589736631253050181169885608157867534596078899208819490759344858338289927539058137214757757771599862687226025161121779702497959711364470922062601612949958481671786546428264108680138535918914247505749555569945955518709285974794955382996123046767149878964779650298688737239366524210951769732172378147587331855894779434266155358365635138782609052604759327514662578468735641211223843546682132139647439790001934426581466281163377582922109600648418152340939218832755103653205052584965452201587241767137390033383731897889442382607653797996921064887021758976103843467818955871699053498489752804437250564842945854142361729645472552404190687701907869234637347480608816429164772888886312197162208984493130166272584609568048622433671385204621081325187740763785616469621272902560047712478094417282216890778186483515082102966572298070400959314459971522197742744127955361739472072085009353762844301076569082170233713722553922382186960224267530363145146868537273535450193269224983804977994956718453034376524881615528667657466113988038345004909449435166024777412675447321665816615786221962134958427050165519169254861034354239703372977150834843676741164741459591123495042287574845398593185947616253911577420908656482710012938568065643753046523083540668735914408621455151630776491687875849701729083487544500238617821166955642678472577462376663544260459677789994847810798695632238417594117654592266793058493271239700884409908270186436076038275849682330017811294635836888472633041522702310365964919743008309244747700286697154187663722737182917073477789311772339330530134543673607019366704005397394397396976930733798607609900072543839810108737924000466888863905833942131328497854611666293935604829782171970001554700238177507151808353683453914855154145516318016045829530843819297628842510374552224746297904957582573425251131967425052694107560454629124927908436023639031193331189390223120521453432664275707606073744466693432536801656205776405640167766810796867834479526873855687164455593648332014740721775307927406404412368329549883594422874190018628007316994197172390280113919584383192679525733281419957683141350683639866386597398890454775139105339317775695712175260467069940184893158033714320321264786778768160868216003802221708556688659982231872281415263656741570048048770831270937940010987910506044091233149604678600137130370083274599628729159522149817326186845797639069976333282075065309881460999068135136559100729410965832216366159661341646691947581946146104508458262687611365764226103977762742089806399213504763247570371855224552899335517866389402074776655641931616344456869660813976792830141231298582476800153319092951207279696769473027351862146738761177815143060170207700013822090014002608423524325861994947448105783129149940885330075827095577204067158144727509924848592894174586794272218550331381783946607380543281684441101853220281220879191443204379081160608664029028759363656036921364959991543761569858522703420125315226333128625192584839686911751233046568018566532258056085506265973056783753000545450951427827861378177457236623628751245137510933734835119383569536569815335089292793637154793518771456855975068835063662601084500145940260725550648472898568297629803343891683268914669723660653170470702864197524021468475850587423518663804476143161485880558521305394715716082589529728098690492093493885761660426874666369779211066127806403967425805437155251675222409474153269673707001995627273587945448957289533689379210427077762844832056517030695372379008925007453239608418770243931024184488062952219058242495853873478757033751886476081819534104878594241276145082699019354704541856100639081101706651483730004250122359560436614964444888543898471520443282169117460778674713349046211120850024337316696770477531685009727449286192553122815618633498559185232250215670473958524259107257844394404737480335021231740310757530799647790954679886456186097685365018408379388704051829437621303644870086800779105891963625105635331297643719769406482519532777092666508054036459124864475007990465276726255972168482602224782468350802204268374448550847186757601662955785025066364607986518685082314273594424314569760033125356799620973640278709304051012068371112037488973747076985194825153126790411689621717107639041390389495660365912789184179416769103443398424929210275035469581094576593259836805176906350617941577722528119680544100327528353743130344680215827716468517366209554077743940364993858095864463367412794991990251164609376475470385649404496728857225072136957573615859991199309017522618226619173672528759507931845391776409714099870845283130074716777343605228806480170817044266763222347239077936485944702272673397943574502872751990684295322869933932194700920732312329106754211929852530178441567361509459236353046894822268721257210098207407072122960521531221335539147134660237103383379939712674882156127269870901978112441401753752010059383985973614218029294027612188721827807239281612915496173399617592737604709653305172490574439343910429555928294207622783080109614392636033903457600625591409092221947268408483693029079546335037267366836504113706603655680831992554803396352093167627894971039161316094094301222698282055634107207933894327189115008822796509258130898693178747752447779571363229256080392768192525885596817132418369524915622187686505969459300246412609873367627643784999649243778264645070046366558820846843109015274716229032758382779251234576117129778815553843050165427761230585032195487106750751382669155570949057068146452734769608345442300778429285058283132703495835626768342742348075676008998374396422868674763276422823722773777975627935711025711547593615033644782307099501048506339575047087001492205096886745981250140668680825442844098411556481828004975524691644812196894381661284813407339866780850500222986698988875552233795799633243938338224443584638771983885714536643992374216289516973609579659856597316322200530443054417423284608076440203350368562629237913379613263781143311563569110341128093313633258117620602872510818988665533863451524008687298769508593203996733611348379101754430726091296407645876717661978152736006906671885192680993494359412501637241936680000098467931954295467313306692821150931639758106967588951631281422735261671145517720649470113953580941099137025297478590635504610539269623933233708660691069003802876440306606244004689832285822255341497355800278844471139317121305067131686952385977976367085735105373497811472937369800058077138883343469482824185971108141827777490713463055823807447478484954277952846587459196913282055041011789232514551079846787380234760325405839422378602677953506508573999995864691230389225792345569484910003675313723289193664886513549254850125504761056529411944092395962897547889989603527153149397564741402067142084745585872144106540123738891017040677024793299138255909246316200337274401369462656680786209157923070689212542555087989067186750247147944636188204925546586435022719815677789461488611007822036257742953953753843311587621308152446570651479731100008011290659706856415032995586201618927312495896021438420347479913794295035529817618814576059509703932014646131034474624721647366823482395635644544405358481312793206778636602919254661817423457645266970277070097395554096777209173883194966259620817392420625970510107528681902347374786346096985039424111302111778746410430979025209149271680580639447804924641134318367767587544685173657884838029467166349174395273203273792971046106306413809062578619169839735941855183859440301814071361850714683193475792741941897585789008395559813395868526378188851919070127786154157533792722884355740383002427542680996445946124735824174986542732281368795073243114363192292935510110313709438471953852244519839960803493123206229699918729649823996158301252955719064140034912865604039886377594600580828987709414674868831637855453490801408410999434074848891096923551120178075607820009063281542450995227055049515740115493177164347614049573947583507097650093190784823591626654850083079958707203639457774349675844129278429632121567208701308407087463703613354859937104075468156013375935428827224124971294067665942059939612900283041759749180425071897641964180848353703590082401828424129633143249153489466901737945255042997216727035627213430636842148189545527090218989433001415109559334506817620602204203964298631128867308984025414019477253619242493135139511663100281795926356540067631109482743861905693813378537082471141001904103107340720822738669882479973368906795819897849032569969040374079735013498325704377175884529126435891585452281293262566766663720824316585474432151081038061015620050416475410547970828013309748695775610088396840788721630588663114794225141019160099732682955114118283722033868760618223928568814746058614620249649831842154357842814305349016964523302795301820199865574216666169959284699571041245405513953207796202858986874024457505881671915719570549099613800319158437273320911241595216296620211564492863830320461420414392185818952343502187636881235960296039262729871528268669178397815730275334166952065604644029944928049941988220477288695907644304917473259726649681901195302913645487906345691578500635704336539029080386652291100424453887436884804733050735056387504842769025415869982486934174321869727731425524364124178329844272829969242174006579932550987389523628000498768335901159441398727563630394207912833893618287596151650558606351365131788545261260992505707649940032909873504130570812315961179229268854937854977859218274143110908295887038589502475152867149366872530319856687461995342634787221602427034288095189518977897067063250306869579312717753740601558182332779527451740821983494344230169221821558712628668060269565766748455052598150055998421877089740353139698949014941961560973410146609095495524138524278900309974011625936023931509772874446535828533657883055473164611964747151815661694704160981286768945979633591409982757390680940777486813474642147776814226958448909751250467104112061936087950897863499897145805067657694798193298717354678732751207514684619314367164256228020091870059637085469746739642415329979124557900886504919728718819249911269806909299860743876743286853104538789900735819515844906094288892442367051770070161909365327509790764138409051368066235040592786325624341150571475119223440932617694553396954812914337763168026658648123483975336803445913975001799149533581782441996061064746245247951880340944309276076194245368198863057655768392059360209425484653344195866536300846010142911178571638854794126600201961043825631274210461880944985396303216028155617101803942812509428915042848069748677736214097491720953644464216685293376778099533592187602278966453039769942083848006761054165366726886220958745818266737731768404162649946777913763649789495717825790358309779300637181156968660005017079371061572072975977063430553413309736110879794583695647188895510011844979131399737683891028775125187599290757914534790486923509559890924981520530860622120040782677890186198287263340612518740636832456192348185430543545125175284477424351162345941210487107877037151652284363221483923942206090210380572723487014992485617704567605894620698923205203376541602650377938807112986254449549606951624714324618903265081320739546753422087608426483668829504775690675032454496866235755754308148536707200480879830230612160804102061656510185118365022124672179895341819678421030236213957920228985555904913060568241537635484049495432476572420117547149513823632830296470155192439687447286187778228304027582189738011294068423269375973845069323803209732380479744931341590188015362508804098803835616495565577198467890740995491155092478294580007483401914816033007152299875844376765358766290535650190835203751667294840728331528181295876299121196414315349891383248129808431328882219107020947043811504510731859569897241755915550073537490847499712300244224901590454692045048502119545585732665697523285415095266216946631594258488670081489339633496778983660866383296417858852123685870584702654798575685857722052663053426578495996158893369287644430397546566296476988066036621991779836226685876484650811479590785194405038497224221978613432647225370163173370839087644079232593854058573818666655471034562161107380902745331731275444125272174678609961449597113523535739962975086997780437968549850432229175210946784819011408841595684959798385161220593108233642642036700737581147419446167279150424406832495949792074990031332427524016171943609693176344151739650988580307251743965617536622077868612337691720835360146033378734389629540521766826279497969664060782570442820210789334208936824622240745068281422081048831514816021797607002606503725963887456570364633042175385382640629722692554715606996283294775260211482389787016498209530498853897518110125824388996560285758161011452175786983475051683126539743218678243266068371490644435418586826920974815529999617526395431624792327026105994657705814823075789687037430639383809438051944263976670141229361818277022659529586894686846378813750401364409854469025953358182194991676793587918876402575900826021691884482692966079692687325787793384952919357705682732940266624691555683370590599526560790828014827577772891161564332372718660240625895741852043598717620519639956428430101107134784245552019853149416220096422906566000940225189517828771580114914624835905937661457315983820598663171253433234581898539974395539609310623859846487893496823456441648141452765018604324031967221271647848323630596956674215138782344843983616228413432519799816720879600582706707202333657902853081762218216136017299533806741179788824106865258225261281508133297991777448122398813101176744436533295917668805082401618358326158434477011434783154516417453149642096976117140014064604390364259289557003525532981661384593943649164526260372915672160072030846724283523747387950600911363370418318064888783799876383715298219586892080401978708980267513518836350539209810835618806915122712490014069536284631858958026930681702520269783324550671175456922600633441147475107049840041474909693501901062297464236052446075199324439327499096342210087703359415959339406220397429521140583498262540855813228419384831435017739787666195940677377007391978710725462075611640976951057656923683210222093581662321908777014392203849355104022925740033222414428125723415400484910802804933325726054403306667636567569596104818872183114436965767391294823812617064098988119285026799924144014146829971574385326935879999803279093273675262741185689674686963171607045581183861294916700677394631909860392958557865190388337294822579548574189212521965616426522492158476877133924336945513885398054924125772559673302379520715220485179021137550765164291182247693948164010143943931872672133946189450107067422020901566130719488582290469913641078255591302225794946433107105306978823662666400450085925588133606505859130155745736702445549355209581769051662425657257064126627985773346272903178527553137150581776569610194211707053943362624089229590650656351284773026032714780082577598354908765813816998181367463688383630556848630857008648036437545091815157871506659271279575554911082068448255284209534656247308797679851821704787647991739101067726391861607435084934642786160880726042259130667753751657032102479306317856154056252487157519111901616663115778064878595614677527223798893085722876433504331642007050502183376756745990333180459766048327749329000460557025606312700305679467541697089994316692496517543492943210278920181612384485303441870729262469795156399536768063113701564111618653286729584074124605352432930202683219588343960070454508758301886033685392199069930402596174485718773665361124132894886952375542196711712048344788117083652423456183598033567592766037237816994303400501176151223972778780222764129628973846967814071539094321431577031176918905632810700776357559133640039305557602003856046944998709249136601444320059702312456377067750056469176339633422795666667363218830902034180175799846369993207479093570757438404462966535313610776894357307788879334090397002511199648626403327314909805198910693724110906064478558350062093652253415844895309018380935809864215851743844046557883459742749113289335353976262944287615634075689211036179797253303656790248433495246026094895521825120571476175513892308202812044794361548948201022503643498023976584922848915075136903584267488612661000541739251270586465972670211951652941899099926680969688847719869666867867346609662565939599164363168128830100129883483796470013465900186755376644360295800275815873773316746160743238414228201004938581567906542772215932353501847579662942314057140214431891803073763199893770386963041914147024122981568107980814621754244356876509164730685130814944204311426812388015066972153363154274055841309384998992403121966625979789679716847524838213209728101698486680447726606033275360323057409872525687092579794820692684079616750827517697521633052995146041560654514525968830438651720235104943052509601215613924030333060224384079087632306330055448305625628134952447549152819627535536543933735309423582065328186393688646804456033421965782076699064123598216789632554609855311556985976506304782299705453626659790796491361146374933152863690800408407059207464461052948654357645530212668294770011638421417695065113599433358798510288110041677715111141624764872453625411677292196474191294214594695836540242362000451569156935732091827189491316732971779186062233366431443112495560458124466560158181717342508830965880844007653703804539213763461130791475416923617734702899004820101388241968770094000921533458996785215846914090278278359641134236702775178748728790230849350247710451339072590524680672453500328487832643405049597442033634411288941808105194704689238789914770519909164589051904253246107891481736932717388769438212890482227793332334792057030607499496369652175285835126121699938273065337134286437745752410955356061229940951795291351368136856115300409536323652403109392171776399707966769745773853560068499977181388102662130855644967278051100846844480492497460725306509663770689224809201897672547300003952894679317660506825112807481549567047826494031592767048943018973475220601962651486117216481250101898533549041539528311656049054162548760897579585338715461945348212311419546602376557045427905451962158853686301987595122622526921656624344888846281553617278830028728481585965722004538359806716160322090773584229574422604445812725331837208194537025557456922333130614950850595095710737468097439330520776941714698473052900116791691652198994469974453346529976354514470892462103024819366880152656592123904490690961665873198889588411294465422654049441608342974395038728999504651992830606682188219695837444671594548545400255755557002268646914239020134214630244239998161774021148138460929984208313253104751995728766996272504243968325117879006969199685424846007775978486528971558125335000346183222679727452320575101370870030986766935603174524745011654121348586104727868594987321507105883987796597875372052684075047466157966515308818307326781900177932470659576357757860631666493890837666843418545152781704201725403162974703467513728449836197955659083897333833341349224298481040943823607084994884306626456409046570884251676473673107331720753231038583007486195327072767096096878886075350560362123991972605246730906871024950743247756085167227567739682995547358766379239824352334239923455107488523565253058297805354693841054422533418628497646777642711844576051482840309530120510143438914946426122398825693974127273633010927361853680419435274174402933622704224584936688766264997235789495795098734580426637212696424825249482717226969685041222269631181354157411672682606713495598912868428035267457943324844951041603722077769439828082773745128227393080330391558273893341068319110449538567006497180174327220182445019077623481214340086445493861553431051164155678837862953325373297064031369942450789849689257395532100421076087859037327265396882002005551199691353870316064377190619856593706528557420166921960273048267296905838788943569051833530520045276946541986635493564367143644089044483116326799119114263446647361239429970729444269161617004581893712700894336655342237607614793059299924628861905748063317574841318681219960071943631149010861713327619489236021267506736980947850326140811333323606361229649895345167123515093793567082031553468433787253951073747706800403895583361592874717850986569547846646155375524984990533872715338502520696859036871004927327533286247060199860587282980110627201991835994174551008769795168791127977678017986713491540195963647916046544397230557756910136490218760720783616990767052788023382493883732222921026546733851622276437656190685869722709300626769000411870850957327982946425048182394441715884107704079923173477515166274099809305578675810607215819494307884635527950799808595552558767843473174969760148968305163880802978682451851231933194903266962422207250346480810415627419377254376479010065928263368834342206621364104957714397614146928835508181760125864241184734723327504922609033430986882849655261490809687190758437294804341494955002030396308310281899656719107512307030662734495148747483434825046078567122193110216960755643111722996865895495105431767778619673958572585580524067668894404463396965760567348703394745889088910881328366768834618675802876388779683914191045465025782452746121781744882498457534005473978753158728887693095661796200132124546277541268349509903644260149069590575838965813557225113651621597664156260073183063169767909324582257185245300340593581931469139706525004038084848603681059283472676667336230554955960045481703617968953160431680003437413003383987139324683684438118170571786361749551685717265190067913479023683527789319134115147526168929304452248154887686690822649963694987421113365420872831328632831717992410887292498443318456666072242613113901973590722933550398667624724761805865291102463739156879353971661816286039468518918221649843376432097645412855623810941106713720903769250131876801173360843652293450328479708088518983163732132990304011882088087430220185681472773434097373161934140073055586902903640947952608465921372732888552105891583923861661064889459405274458353778409457495696441420117904022302377609059501698507315852521079142219311035026283902645230426959338934623444653376107105413204347769913579672107885800421176610564388866929326436776192397083867650411753874237839823825902511896391856998629710312828783855424418427222680252343741304616523892463042752416792890942543685884069501261775885063044337233242610004680875683366569891724171174129283415703532903485218372074246627513774985443137809294293626571771118257358456446789331610354902065432979386176965137234339877143406400948185466251434587982414194468317608294907131637670939615402951075964108203116415258922904761019761056312732502971219956254726707602130132030030601575634785330670109355034281745730863836625496292083790823045286135699493371049592905546819939877166715160748524297935782681047890082402805267622903624586077425434937654402175211991491800337408549905329784882485782211795438123020004340667303320071854962798754272331456655244005398019597136684471964656509799770233787090884655262374319439566511367158885288469290870146078315975128916963957763272393433430925739085373682660810278043397228618642766004532530060881528092737297913922966013383136641633273961336858621713666709170405803248536114035655366604525382742523304435063911302369417921266717381042874697056682294531655988667355932554730769775146750326764425458673823830283800099424151732217835535610212270674407180948676299412345226100642125350551416063410111348727100985173928794711405643689377546288500761347828402092063439851555702040301651511708268004279723976957296418162526701669978797454731237640832596351648263788702324169887390339286412100485792071938072464364151711656053720686225780480948047488506968512323593036816003732803158739147630296771093164472269328239055591182009942891754185856456463400760250974646900747258354705281987789820432551539002891182310790226701830690198376214255025413682572097226379119091580334499629442024553609087886433638374189977998331263793038253932000829290538738010225248716002817022973368168359803930869333648959841561218192527432530167268492107272098018385002514278645842726215857912929784470015207400962522799325354380466645049894120884968794639190823176846260979268321381314222343717106051850752924486267357461826909999623880234819794602267756210910903357930966097965875430928515903954251418153960230901456944579747117166717800235837231399541786066173126357691651691019826621012540087181603425896979851281855248802794910050503856758040188387914043214228471256157962102907044304280150975355879666557657965924880893723873691736502084795198243586408287537124781245604982376717348447286069191710242961816500285212344696024554215211250011861533809699073077848486125081617576809762044408921907679891064824089760983747280351685425034061431682178824668439822635668028467975987704886650488548090042392277602791827204746939950413884417741037630279952975764725275369637432104472365458268919721476330707460995632171928960422956942837860473303608741112126008802949783556222788362553899923903439189518495226852923971596278452615218003578216620050088065027656164406633366570034876860921071272769601952267431143645690560871668584356326288487556931977458258034198390775674987126213559484011161204791571041175132509191353026154809623431031818553229493536930825255757067889889269874098520202958547116848433023809990817988755145061368506154950106994180322728014684855438260611581643606396250436944349930455336970838330239143860870030540008115521835959286625678967781921753047089974901261049312951377723436253249502372759364095864357590908015925731694778862545599642408160687062011582824116139655294221635264338148309191037041912563367009846333242054375319889060920984222225029392666941668037757014150300032050139452627782663787011209822418351438110006674323994113056834490105061624493810059885935153492817419783925260752720799086435625481862185640831897780157710824340774609821200182974470882121744418301136715696827794317673098797666200544177869624980237016896197166381466356822421741062954900728344668429802852349509443033900342055146360817576954400239655064047363199896986157546773769240559097745264272803107736844477220879666845325684387997716011533486886380362121201003210443060922892812739074414034673425926228364283844099756287995808540084783512834134081692173371326641615893637265192248655308394745400946624934086772025031488152004032914485144010669139612234579974777428019171659313924605512599716618664747844216800088381506692077314861832004659910866736665837673587404849630911972887851950291435647979071480804011980256549365887235989565847034041975346549686281080462615330990267081385192075481695718844812657952168276941058109644946532166209878574881381250757028715896425954606251461565893068910294109175603482945837575142331365304761426646184321367788614233075986107728706331312595137680999563730740489225683942912824851017491042707725001800272811527484401619149331029246339320529480594747224929467764399022599943382593514243670604604492873034315493765095709527544049240278446328375004519666550018471155322439236790435872888134694148107043548518892174395316504045163138081915813395076579842900876983901900713421487215475808188317845608895301754624092409325528218705403341939812681696767029543238004402365405598002726979910069160520485998757682427643931781903806819157302772870520294870877406738606625076274511260535439032323781274714395237045762043493340381920974333822732130441040382941655253127944580976786860225473227793562128808550773471506010226397584819066553362742963230364964374278016048115263274901622921625111600948737268410788754588643826753033550003531644684198773121913493196916884559879973300144930287869522280811206025253145974191697598452282897728042943438189915186939356768687396890510939032622889217390597788851752215791973353868399545575567238643620971961316216050211304688553711581994895609758396668885860113395595557216047184688929204796679804088572958440201435341773966803575278139670532094542209153442030100225607990829603378374579834666116110230381268119556533414738652416136992660767565616915198214875604762352545311146165845149114864227330431434247464594250696820969143697495984385777481762325156774301801372857733171570940262603395520761078016599109084177158762976461448166429963027753902822284588975553306803031780032997000510712672467101408478208175387544095281972157920571330513366300548123723866335142117858314718782777115397707209462916673461523718491090179753534160745547754358558202802547572868495292330779600624359025055425506953803905975038740519712306215244631093215426022121253288958765758381037626292620975456270959139393978288795896949656996954354806170439466477002109606559458168306590161924267707443267499488635930633340938550906058044258597000391576490075389279041026983021622710646594810995017937614623773170324286513931389656180868878349482192703584996115281465877125709810313053966918358715484381594172509043518015907698513068161554862942950724977524218243748976644340964843716711513612459531545119541850128847916338848849833163779109671940813572662903693633473164870518838187097848502414711829725659119765247870823217800771056766010782476241215216286555204063108473677085773320293485889590835864714528481630910340654341860586878816215733926911251615343738555054162714056490013716007521313433692613251282577870365240870067672085137928928336908738326106344167890553016440444774065238940981713070994551086432784444953435618802431434811327525663074066935334561966785419746698900508232093279283421262738988204026927021589533921732672825927683101048594025234995149693257254222799346805788713128951316955669202504732421280050197845846107858476916402779764958854746678083354270137339050000391640673688328513770777663549712244513269064491279178658197690677099830164583283647180702206662642887074088713494224314284170897908632012312355530865521122608741224064682631385748317348893612560410237355278687071425284620167650088913926000819887218266696132010206846398734304548251592618053649458017245033820041289558687619146613475403893030789059813934228511870737925730529948356703079424807378565135410282681685921360151414782474540406744136336864178207348297515788933532190519079160287642255170624633856233174387825431651897885243227394868269434998005469296552176203909604119211538987822839036816261279337882436625100912819089195629261446887899549579974186021165255929175111783659135945828062751521800490198756744268255569687700070785319732015432730231490244858894705336555312407500052358978895553761524265824113275052751222856455531272509548237001801759836794152813374618329326354493700260244520413446172723484359551154187312020138384050027597981926178865669525376611832432273394942093678258717122974964503933973014265679859825390979592249507498439347017467612173530540728867789017358252676832570441076493294243810364952083261898629857862935996512741389257967385567288816468627949918451572046573129892440701883900514986698443634579794452321824034239257781866296968253234652998348947441303618541328965325066988526572687005320443142075378147777792676836376010352255654581311917681036412731260591449574315300232810033497881047424413098451026955573701518644806054942852153625157528794799855275359426278926609345585124068976050417604708913747193719960531183773871110653064113021708938221317268861216464757973560573582720814624138461333050949878684877867908429837501711394057842630925452797842873530474609925223746904087293544679416527120830735338865622120072471281394535850139680826669832559051756082181293676540234933990361175788739898098547021406082289631708457772310497424224912486679484045978714800948708332955882025172107967780769648644268817470422584753977025822964012978589204671240823288786258016876069766239757770621781720809828612748749793208389456113367140920497428244837871186317839974773662624321567700755033138948664129740214669929262592792563084272675722083723681211454889263099594296220133694859497452446835046565181666274500559280668441941827292343650513525480567230655584902052450149634466332336925088967334102404628321798789504648744884483158943848055687054022032740652098275607494047575509939007431785019947283675675343402645663146980175622480600289018804331069964968745851269850468412589550611858055740561596480751165265638794236662576288460422849843989401742890539077588184750374915615612602999391379323201246175014796112058133923357491618230372778468523313563765242328260636445667774971548084886077565134112273536581339584558308826436859665504330592111164277274421179099885107254263000663038004577914216785143274188627053521437361734599104674237047154769890146660163751144352841822534966334365943390975318519188530837178452799123829598743794629670955857467984584386068364965298021710700613799838428443031158721674543325107937264099124649593773041951239222942211668840071897418325708070574195626051579021531502308493177312393666216638845313666900392286522653167733903964135092762395482104828849802065697631318295032881491606031372907339718637483954353369643825556141953802990865111621443537738532220961169056561660515277082215571889040197485446770185773589568528640074170278791623084589973962132048587179008602358944306811526798493822387862051708784861204375700588094336102736131058598206785646542423375443475825513882133311396152276953885619635110565672455123943002992682369143310426017736688812330261057804126433412660935683662584787764725877733746848006063969350092004939302606694424384946826240456225368774505398140261067703117408541135654160176894489317328520114681191689949919872532403746378513593518247124066018037375200846709810249544968811303539280489097316156530964919619227884047134516791431326003599355879462934051266711645096290209633809970945187237964989003410791731585041171335825760820257206529480814860968524221196414064383738414385665450754649869599366905733163731727136392165539244626078097143734179128168003293128572295180684515222792984038154828255067478971263323631916765717375104961939016501676892997850828357857779242995680940497215826534480014982875860528606764542634675035947491139519376478143072352197034025114807021191189945445538973717089734662228758977802727954767761621303432118895975854196449259256666827842907677941235495464638955949803821179207911634245853180395194736404431141485996055464350900323484760712730329749798833255612468772383386490933598597488177638493767644438692843840564113769863438888789982120582109968351092282402870354157418952745701080844153803896533227351413836294372942661637323386946321968645826251621314981575839277351143337520917993466927448872809698522466019398308012723028507032924940869334215871277824002493982998129718906499042249128833832960665260842483214190739020494074862636995322227954505088682978504892270877657993607027250104140022945504322395860428351479579679558402355049354381372923696327611979094759265975619919949494035382509532086024322633113700306639832437209269862008954008260850050125046896382953151356012986145513501699591548096119407380932678650046431301780853677447424857303004825424670649459624747461002120272566017891292841961099945793354301821969139241786514716393972137723248676061516347378118789195769421492224263828065964821772353321822452173224292337993130294477924421717098827778051413690342225537443023683507666266714529680270374165504689184819065385513839332217982024789095964436056485948403567164482713225614140154122782932483154407329469483958420043367517674930237398948321167466582809802635323099785497056722035103271474157626201872282035845498888342907851298490899164677096208957319925576099825882124982928193433157337944556639521991360991751228792852602076050675311909564486138841006629880327070213286070851811040909960836630378246391577398357748113828716379556892695149261631782977496914680337378646212083191520931426403030094366897737228394314525676336085264060973600167446156070913051883021194524768241807214447117993817772411502169155510348486241308692610377223460910730524350944669494002341031412407819579444122819387255458241895688967593339702045731451536805899104302560871298616777539819380828139886505196703843619504731955835685775436565581366937835411983338089747634786773061998992450431221198633124890998926559489368273858341833662380255751275834709437595520150458319916626804920244462280872845906184698172898883633731212791012753275547712687317896101842205314875505549704631854864118887157679482742163257833765810457722779720796486476028100189269280407033601580465400680050408514390601668408888009172603613602468785427733075455998364138424258904760292705376893770824646437078892733185080407603341178338386805698932454339484863264422207468973363666304834568732966898813037636987352512621781341872837581077450146580144977977298130549441039353745123580526737846931221910658274231239428248835577177147126794810034799521149605878927346360494958689693717362497936299846082516617670082315784121975311792257707107148985497647292325600336877052710531698930877240095050816702047885539980841579423831957091549596803663655776649612834451047112674844358020144024256421607378468335990264423263824902579979760203917092171553180268525543210647727453928008825872020057911960400195724195737316854215824022995097027862417541578716719255795527639862015980298812506497296713107166496554070201334782135296906907367148347349671149740280526005690363991234918625219532514196639805504639917854115891618063968089098288352835396227834595265283127516452562578180793244552492170906777232596387161506574257423337803020112297061716162613679195288797982664554159703616634175493633914663509417578152185962497986681762441869023613524278033766349120393186125606609579021793145142807272890402678277799345184234716021997887498261312959998961595235063541100778392904979280747769739017842153321249830441737071128482921037602859461019614849612942829513052089699590153331237451419073939486296893443625129421603577409213193582322991379918192784358960195377326480709367140699573664526367853965728021975939981465491769813306193382810570253766538013944253498089126722637904731903244186621517015482494055210831642341036592581238566439716626103010550405374283763068988697884608795561977742689834176834922144688379785666374561657147522314209027036203442374476034914606362641747073792294064899832683954388238554859877081594787702678347416667970737498758104399239991383916502212768657093352595354773436868714643819577146129788666430197903257419499925198155713855153650911926327215207415886250410999525252644159803284779873179272821653932057859790721834337493215984983830292703196846134915558992982257353710192623761247396876933290816276776083477646330165744736228322658739943677824766987190950532319593818197046489799357127501413190597947825808967512228805590259854629321719055765788312454902285751149039024871472277976124762429727316392735276423065018105950670022098002339145731260484233833384895409047835744977210808223244086582103775995868601072746861157519112870328139061814296982300960300048454279850779449360096081814736421424325677114900478571092524889086480529089660772711833836565025601188945043037946146612286169525103474067262832630939607593942200856955187584299114501168394255443204781981709231810659687915592621330203962508743166958285518242036151353458348773064652904635862915668673286481781047670516093376074968438007888595471488569021756387427901512943151776613001997609462633219450158814161305091105927330320559657818281829669686624045075801808444455581215751903330138447881776235149209345573350171965057493015227829298196944741641334334033125274124658886878794261771930941542184276473758678053498389345905194151290422127042611698874720097435715330314469162077750479879651171239733453921070680482721588044024875597465355009150978772968122530587198389312078311615120232361400667453196847372219471614493082408440992687879980833397485948838712941329672448637553773317777713768942645687363118261513436524456748413156635065292708527368455434725506448595143384877078028650986210255902882824873993492509832105163392455132155918045077808938475913411202174765762144153731200772124694916103448190563450287630964053995636231246094434891526686903044921335315886754185670069456075284712692433859289719308117261019230990401411026315901367305589299056913253348013126802514158946870652410268541490335534888367870152634441653875525093208617054356944233301685493763413689516012408112043091418083496339753244903434388055352000558934487776080741610807232528424895852370138058738002762483227179728046041986355284537522228022704391972294562768674623788259099216493009990238921075814569707731078158591766854756950595592341890652112149166778148102795528580290918291393967993440693258597552961053522243026659750812232363664006850457987991111822590624815437518161612275638880420955688946115069012304115077414846828212863046044043298011888463753450873614385640770564320382862755731813888964921083484484558788949495299829197893193730501124778615166727564732487821172940532767764101815689513988184349512867846357260371377160560423891994141272943844422015176312626246548357062596001337831424801108379607752409889902426079240874997599046869596398583946114205526987466886435395553082035033404639581098145387679016542596446770089649873686634035545049170875590875987597539429968238602663365265746175504758453434077376696079980420006348137758116082238566985394232550134305462398471040558962702327935624334536326737268376926198519187715105099356404340604284356673935905236021359508442752447994276586520353813270378117267685554587573954120152719244632906888552323590372755193541184881990917540595728250273564000509737401147868912769987878461257293016538650130268170722527212055423199830510366403979467784754154246824559899832428630356949221110186690171585298174617565243015331538717949842161151471229437659323779906082137782068189866898668267637456714183077789998462294940191230220752528899397711495033367521843479055386880011066964428849351787500836811749207672584342132392056207555848963008910505271643556945356083800289586171171354858954158297644821684845470220317928822942859951654913354035435919848069178599322435431558215181891044142231973369585685748073375876622055390483961297933670018151435250299796943876315596420215734037149794992537402385035056236766303176288156912807049066220283290289250777672002559613009117132259314212146000745675025502747771269085308734142279085709864845749826645900253333606504651543789427986180896725779731197608686401098198894300844576381582704651938847530642499781140787003450231625138185828827042585586068384658542831869991887391946137457073220065988327708941537929728996541192818003276679257062794911150419057061317882472901891383730547035054749166799355908871345898371149067994176027856466082096559976440651611442086232933779242223462583037744462033930757817774646803130627301010301497572506306126654343028718191989544319327637519507542112639285360809529998302931178323352956755477721878811647123462937919431366413548642521166978880573646338908922132344846814077798871497630784535188190715066467669372209354535107813208218881363208085761627659275304551168026155647169837990620984946635261111808264293784841503901035342788511154622621397982322772852003437931853195069348241116298271896386210509800046437749004545763592532769621195133393520189005338380417904524546416176775704214179772840292793405961275622698295059383419426876921917975266096722284869888125875421216609303233749930281566943082255399495730984769107494157934018758286330134795561724702714663452527522339835711846339266821893783514890447613441945665532695198376177963762525298861682606173938424357512704997051370809252840933789649450493083167690445954897798563727479755767579965991978498435266456959318254812551498943367762910481384471226961680017413546075376550507531658677456252635753630218925337258242253105687422693694614794320059913891435937285368811937766168593947365835086631004624096826656573189426465423510006409672812557157768026298722264352374866101185687033612338515158248490194036394232176477478744719625305325175494329566518993199507727112046810350619799627878603231540933616818249607796483891987304398793617369466288304779553181285165737011467217130671778388043086492244863436015249783447376061557129201862904679375374860205332011614665129801591514955302600024033352577971076620689001255052657540532093226000498616872998759553795822311597016973284328243121068532932574808319248315664920305544192883511995653718131780902528561416945779490690511082758573452583927570825628488608821539205275611151282026884727431155297363113744679507082231204652386622669814265563624640725224296489951921348704771636017125004178473793791162837129501825181535382766804044094305390389606451271095408557422824682967025026138239649879988451288699990201739336909673413225457167818685690078478953473391437448612324046362641632851496137849202344675842600629156975703015307182988452276571500598524411256728378344900991432372096364070031218740673267521972483239274611600188750579132411405444149601563103559815978646305916987032060648458493525924031642380061320994227353840007846813417655839131238932394748232642352658745953575995883097456960631685657885323595706539472197347215657580447046529264276727703563219205424690228576058381597926073959307174313836776994186224915308357066029497721913419520992737871558965374649297337494297081483982017354016976215746991564536609254600221239177025028354179150965864876128002178107554833006611085959431729714853611151282682677869849326024120478059556132721245301000833953351006647903025167919178348772232314099797255156809811918061292415551122781744286364802191474611321300600557327907039061762924025245716125944222281938543482919741298519682770032446441701327268221845565770129302326757859515049352114938762596660239783578088907391079675087002401664502950931688464644476593891108363436891649758704389225085394067214813606293098822516693675499154331437589209170242447487594732036673903323332923538832629141160111645829759394894748987091255329513997324150638521450464888163970406055658750413392012001081259737045493073901897648314014616394783851715597149913027802169311566896678982694186943162524381587084314645271248875336250298718846329091368716712102328896235251501330399557764082875718571632670178980584641201897978767015400088591918391508116207299133789797103407916664286580359454156151236192051813720094006174627858580042350682848588785410128023416212741664761119304908084771035959786492431827215903665996022872922402818508566696729699834118233513095405542748846480202586255262379371331421648821918584775874200708683339012859765613162356256064829717671672949467627904333452424434283585898030705686674675547451756949477149618225299870986952305694894792590456043931839153334285568850145231699781436823927260686987021859866542347023213238628243413181579270293003485256102899617168418982521980942863650934417488695479063352397308066450173715720847759367081212822511504118618919910641127662117066117397471911830497662884210281341601107674664319572506947994775476134975105782409149685782144831001503818335513754832246204685730800637378446912426361013695603254404179696580179012629808977427125997719846727417698373707279324667358341762217126894206407156746281809311093814032021314185665657432946496982764627890642592244558279548227858158302093512711667135796313169382999847101559029879258363095951358156430493346548537735741904975481348745357487928422639613261679927449265656239476489121572409465980826667873146447089548550760381535501785473528515576316267292585824379373457194260592395801572624371752152100059420301647092613441212649063470662566955343155344091728450119349285405363989434833446002539619693048405166929836964885535985651776490893089410756486588033110849934186268529998478600992879302245244034140444200760056149460629196915449477380764842763053251152360666852603407373880195537097745474972146525105397751040237707149675136624041118875792699625979299366059612393228275175345590597311326158996150001287192283014845453428448400244521927043645035094840612992010563785952393419024559946232502415833445702519011083294944681619880751584101910379872584506052274988646436939687569673097894970485687632103527780261582550602521645358871349112121300984747461972825219743050508579711056439356176883172162518315218482669690068574601877929341062895401277575950326422099667395806693612173146714475401508659968470362223891266626182969549941582390795319347081428271235773362228457089903038186243326259578387586388530976144745324182816127151703010315217159490398801805890036734291492846703630617300203762473217810650241414022684061237837863367137690433880291572178678193607350721665959932493022425794702277100198021664684734605783965333713187230776071488023013158866813594827476506377248484612964534206815046365042801799474896218010501727866651895615303503566828577723154043001912690373486763433488522040496374226799574832994068275575174530504084844177822216814710249069378039677030051902767389749278026884079690003257766248537498408829100421598062083357302384521366224305161578853591147828506954938656297790066200710623857289347705015504344678611981615832414329481316875946898847591485183306768633364632193098744912214639891654334506275582784253102498535441146001980000514643732912417001674736885352832468419406756692698659603758024629850963989121529934399393654753477753596008079122252453035665555352295213295256746351721657552058134640352495476362302087863499124718490921181437134713358604876216361524707777182580196939601042445245077307071125410874249456142840375769997235100092225642660634442402523185584857172278423782711711392187125772597615022045292659960348011410631087111549967239347047907318218948039196180278844613085196903602114746286448518102386672139118869428502676255077094707594535676274498997768642444459631050241453648119436529275097395198787818946293577328823098900798643897780814466266345819767595398969105749744418410590036048956008007948937726525633578021211313924535113798925429722792364454176135939401582253454958889111540366196634072903811663807973552220824818465748116336603216399011616772633036798616317983108045167806919646023201151449717806961277562708286667115011905096270413070972481919772835136841499780642527658851170985591524506373684967948890281197270409834017275540836575895425308471706536419608902176849414755551236566906834064952022806110281275874610743478879995090235822850156233048266629977826931108308295974512172701263786400714330972338938803120355273046013641472254511241809933112978397452741462172697306732979830791978719521618873491654643839563426711390881804548190520982361936175004557510778446160133006941588165954268520045634242887977919798309374291530351184624978090858410133959620637739975861173851233255212132869253251721560927832891024448833410642019721610096705484149230514751537735636075152873170223493159440515148765948303816497184303271511165171291069993147076689197962333101359362519254393667035245445902743583711573642149819665240999421224520414130722239035963417649458771671896717924036411064864639553469808277199821422441015502315254584513538521878704862403638735383446288269672828438067145411856095999131642074171251975582411005910259943943466708626440344359237769729414116485032201404555809389052898618037300289170445286649462079498322645324248847160597980632409330116079895040874497836751032974549857868903357937210836867548359259362279946920552501369418550755756538119902695241815117325623242588188321102549291308440837327664543588898917115363742475930780009532225549239747208807667026782769066563301164914347956647829894565741827162222583528722499219245619354373251717650661271565617363834465942254165143638509942224409981282150553181448743668212221990522050969429826939730010878839808011953514146077597037760147892855484026845417890030654900982013020244098237754637342902459258644206975008107553603575587502884562872918106731711123966960446852054488141858235373456484528402544096669252502681046645484480668276145054095541166778781861677848454879972900589401300209922207461034193410172719577281252016960097900181454916753137670231591781837504435208846083002531545332201339375597813155815310325681725026381618847540985372657070345453262744868576240123773550773527157764738010758773483077777575404389021369323160153714972423672720828278393079446265659405254708591216784050889415790549949367073451008043339765340371763949528680468316177852720334487217289158442845025053706410743003904837980606219498149755664581249949842126783599466897254616650830257564897628009181393290866870830210663926875232145899537505109719362912936244447775360928495326701208872239192687188704793131928433233243443395695904948504643013584907413479161660057615576731291217219896203536664754120695220356143218645550300657968689677181618605425347669221248308839500594534715647778947595134872644374980246358738518107461401936222863993746756711039538844619502615916024466351584833642950370730537956193949653935622095393338946538639918366286073555049350391803145113076993071105657466081069015981586142283029507968274555354592091872863810932671569523223591132209444793138405998200151961566467432828540039705915912155352090222157849280249360283523036443310041713623671573769307457093895834546587026029552766010096926174544919559716154038806887532976246314620135236836903589183172312971399555267144727512297439566232524101246579367426096394156470611739129180690640728971016848976537110715039082469873819676949053440047663663252233854898936757771234392653550678784402191921560317056105270535380910592057361003959812453258369919969334709877308326941822055622565003351313672085896174609708909033841770192545920179551454730225968215259703584178734652292660983975332233367679197069747807193500587918818417530961587512297954192753941770016202652082228818947895668711986631111959194272308702509882358381041357564961252086515523312806442199354983413289831929308003720937215882488161070263620201231939967446425115138200939921169727593469886632890535618154803076333552158733970360024141657097610264420250314027575666028863563046188674820329773119474580132333788331980064166870932384325869903860484833106625373718139082891301612038788495428335898379446479761348372251441511496035108268616219193628055912757298948863301478262860058947500340170002668115314940648659009263970321804789318986019997573102606909297437639711973036218463660016760640300052467589412702682275535780567767746825214285124796000473110276669427055213143935462329406773703970028061635190201146890840627020586750120529191772403226546518196129466908533939684110012866396776530047154038691500773610811519637632595421128112849253099870744914184897705304960028720501506880897702633668953114442386507300730260662376687935312635276511150712884766735416501757110819226006596047310807122271196317725309074437661895291427381526226044308069142433776246553531409262364793106953300052411103749307523302030270137203073792698487723159223397885272020296926331586503721276628759505021776198173704097444980580323775854290651350444431622190141857891773431155931053475368413856614979526228735131921950859963407509064521852150387001548040397573909365043667907475095154226646398251887658958938553410710190006846736139972132294015680078294607229205253620926133411373407857906455425276208057084252085794039407135801812790520810693493373083579275077688341694426361053581732365456016522869594342895265142232036439499840125492180241781923325420653731496170215786854249774426847317689002641891822513215921964562235886862440678193512239289356837813647117140776772927210579393804192731906541018499684795610133609239124627677086069346958648861576306576292422798924094037763248041464090628959178860787124070396636415186491638668623766845960215128800152559950368532983788368620022380106963130619131381629081051920324605510181275149497367090973305263515128248940691863785729782696041124787510672939242069354519025975421434825218195543911689512617282544636846127614314790705172344616396993718892317585053648877796175198767729749652179668764692454162299107773185237170891507461723786166828162726078740487139459339958505807623341100336443022439632607958666434208628711842073554747405879920719890427439777536011116374439259470690492089502989342748102314008408841079459171435216397483684406173997333654680070913543400881330880164797294221976126780840796193288020794994929248809254344561131805871025793376519617170502397235197047945068612172091195008650374180730361791201954632171258126775506856030335667944067514994696414873890647910282342818568212912818407640153957798713047764379352570555276285379382019335597704808902856657637313766672170477226094258940092713711421723122686562287651076108476121032042019978032052732438154012532612604318570984822195514605807189219059544100387595181559270251857224227474605075069619543476564389456276721675689416190158586089831292503191243412275448674728778197151228675991701453960587582240632951083080243410292295914132141669822306943169360975646042487798519995317785271702647864464751334843808241103949641915557332749412947531257857620416216081203887699903493967041224527801070920905787246709190584352719084350451342315071890491493385439458026192813449228864460176818735446985769552998574353553772504793414954891377195422907450597971335401149400558098666585750939692583318979675617144103979047257992537337638325237951127908399626312708296472733803026879436527976136864103640730022008093349995411704401190472257253484053163844132654805323896977201588318064716406629760854835148214980500883851421137448576801444515643259714638757404252483272407254103689192682890845945240141988189815185075571515495626481151334170787170475249597755979418358640243075088454632194632880193092133868385409896055530811454641699950653585075448030532727737278142516361141042038847528624074323213711010966709673423126987451789838744926291354905991327115702260285478703799771888905827927958552109395124725083475493877500909383652390334028324553147696216020003518794440753718172245108568239186053307903611582101240088300159244792236420417433139708184999358239587741883765527295059038947703168917120010070959199374290319945073936972479545669195306692494461170936859151227976839539926304647860488689996608468071857903279994706589266870244372956810873210395449364626816825245196080353784855595729073777362855985986592609613597939960454711588989138369747233938624952888261369427344281240967818357446911284891715832272807828110439908864359216504362381796952105566940835747927580942345828424275951527104220889537697595243021280680634653205274306508282255328583333560795858732997375661157502253498032522529482631001723636368638666494177608995916855279233412403087601762547318350583281112636734598459689081846456071615584209127583221570739176541135072977594958374560919081395032448205698865310007697619864394334336164300657467371282133087483921072383469451360204194258204758494487111887244346545713413696533857450120930481227818513384646717333841100685406247396550075608192222758121012141487142096908857169357031838067676124028031974076476583245588856941812265486340723119621186817575364605022762720526305256209626232049476858169905536086443861048060566685450446273160621147071485123034506779374020765917804352558517957367939694840808124851639599188333897302987128219625944249778876546122733974749929956342974648462135326780892488205524426036704975601042295232524300157818162654683094147062862596026218154534307911737267980294976467150304358160289429659861689734585502159244112865464102218472380713635005814399153066884772479123678157379195645405745102956223607803148768913396836601514977035190924171657712018470072962741028078071135873339709060026786370904044454187111271090159309694883943079473951237910746061334066596913870316052342106810917479458375026649593516004820755746166329386157624794921747020124431086189232348416537427046979779690017016648776767939235013911766227364395644059580181100070753080857777868890111358796947347040065293166509925145010183616486399597011956176257561796929500617449487898961243056077081054742991614240059859670654777225748765997346832300194692902208320690546488866093723998241902011958373980413098680726646352438113341685510667473991167555978347833575972752562512443572758661049417018415483740789035619467704454969755884406182324789616823769333834294382550967803898132242547938554125868487702991087818065693793426308117491685569266755893248151354731625333560327468126814468243705915219342261565069413112164079533214053418785512132740773778670222172069121123263060229131171982484602794102971829984738820639333684818787476647797913519461147095352616515477210349219768897569752330457265588606259526229684079355942077037649490488404282591621377829539075060513019785888331438054066206060829446688070239994298544015932224013840537678529299585443129977653084986373517018772507532023694016560612305822510932831178911990206436923220747402588860353393419248943639823741051825318835758544985931636748271424313189482679888733615563514547211347656493379625331384084163976331601521642026580047040461700944018993762264107376214517325317397748273925536404954184216263867782668861345980065827666278911590420026889642958513467599930597610354787258067762735519132154877765446973536372967135993407655267732981165520771638746287920398872805825488264584999542774934106540296046243451545968661761065332822391818188154701653751809952827088755758575040539552909290655973496926226948671199546176779676798529034555208402118510392410436875104981060884740677086210525833830241418059043240968655118135447145783739540936814297865575358557075301518518049648439209385067910330873687853031371880045254613111704019866099281099991284886819606482667571966849466594064505690209142866526531544891213789070530881897524880094477187694235677741302029934881141329089651848516986653000012202719044972555994797282826033332158822429393678553405097478735082521761151927230693576203348877671976540001416056740024581078136349023455053531827917989172166775272437465294890190201785547385448629949820594608484411435017107992899633616272437482510781182157096009419944077331498411552048466964028361533144082678701728441438112683240646166487145978706782493102431941502431521676197208919830863926529099116222495433935342133947103315727701388575096759038629861888400199738839350819121655379231882345284579831946875697186164407218957999517962207411287505596528717493673513227666008521676136602713881310495814717788297061530873013067047631197032665775350959053343049334063170898908178866969502701883766429346545801480226404704020737763278089972242265156083879886410189921300513391007102600389186389098496691883961512005466032777169094671070867644529932653162686655482909097314897377824480052827687580169389523027001686276063021404990924671897453039030722972842877162901830090217222029694071145232419196380684183237953641228151699389674060158257937433254949582386089220487774748568900114319008641977788548046528026209531662018782383604289968256868995110447955461363629837578958596840581723435646743512377930519767142728958393973216172915316136906375626792270255682819005288890191233403662773568138366828108046194354510894693717392305065549966555593145046352223444561376339146946558092543910582345268699347775660150239320225421013429492674932589573300912879875382129834488995221547583252458679846857035505728229716863268691658131303555468434906708818905906346546528789967701704370106801863622635242851196283309892955514147016909656630071564679863550523523827200075215053285002478845230373657196076303961804184614858888891856436562644003597727092105040132607580321731985922191122253497813211478866820504768173056226443171295779461065421307640823722911678924710316714002035541473296497531426548128468751687137988769941797934147031933825718637151066345769724014193687217778441086830747240917083489930248063621228510051039773861641197727795382365308744324234095581618267267537645258800338281272522523903728987248955629618205035727067360597196865110198667545644000745850686322848406232610761849423743034977271177061813849797189595275374517636096346412227731498150070643772369557707828879060140668305954660198360773068990885258145542926123955469769095965026080865631775570018754379380515851521429489592678891202085020133219946540526262639206706803484094724915966673697594925030295147519253393727158373928607481316014536428723684623751388200801601819989929974677167621355641517120169149365393010778861549380074404520372379144959833344333258113544784091504569856737919458211610208925656573916855884473795717417201569969640327447219731564006728753206045611088271457737267859669088566270270970201461624091382195368447630025314255150835042092809110692991833908021067643918619320387533410476671671249521339215501733648165314634311972892540088047158207883455601240380694957545182831107375580020814660629226850605541593894346372354761044463917951423515390130141521683954291351068219139814099914608427878064803230174248428880995795822929267839560198558199336717968106870388602728057180168299984228310870268611335961373876157300881027244074875355924534539503511771234342295651377598219336725766480303829537926282893833833116399278430857257459556535018853172699868777444839622831727328782383064300001588075808231581989433424846337822824218001782352757763347553184176782992423817192462424742552187368636744040275928235912496679918366042898686583205918904450590425905121377863980472259549464990934792290884236234079111643767827575154732285868875866988829515580551885721353450635009611995316895469697414291015243435550146226148916199865557322764848486486419678818541196397670166032955582624083743194672417963190157369201370010423614163051557278362720409557634100550665600756034726375752788158685460107553348615660078353594983682164248119192263421198518771665918968095318658509942612041973357696945894209967360969698610858740371052462290537645998260333879697474123480163109131018566766863302971147107801376526798059048203366666376944962930640227884428320295865762649488912562127161098258586652521080540115580751884725650789252514028553913549252930694817022331886152859822982234987136113989869968727718952304611217043452134678456066744868010267369650249965040975106090375032023020183884454330393473090818003751104931912277965775979113518474507991270507312166031642094858401387672634820487854637530187278895786872308608878323868535077219613918728564043634227739388051665897321721182679276524946962842156368111866412314609716002969509624122801639761156176770146548703142834143963087417030531146061787219291748695650870723032524162090806398572985814413756940299059710549841511303308813322056314222032441656951159671640789450142458418129046980837686926658567576093305892920299492987843691317760938946644958292171008091306803612901905981051655976404907033118742139544129034341229094189512884750982540722015505043929816156394335406058326562187742593524397557772263360227634426092979229130416411690688007299340722648055657805430228990896268181774307669173614983209646806425371011337119916521690780028602458743355732730903804658498806245126551140641076131015029114930212538395079927807458606060218548594871289431239608197934761461755738928234511879626257684081423433070369924051718394996093429151788819472504537912256933684471142156574798419803104496383963648497883579398934445324132456120973862094219866374728541854415630553708789876190316768658645352028933733051520680321449796741660434565660214217876907321047901865482330295801919350908018884116752711553978031870369720718145682807451497407291438384187133871633325404731714260243138855453676051190758604493259750814623828318973090139278104356734355412524078949790668224164748785779562962574625876964432139299798642598531417272196959830334766157865104520313392484152967559218870774549872022891291714652910647006976957425522352703544545295181287689441868903663542857489522213316259740068972231207620714650492593626446747596257369682282769210372411875649291611923450840470008039050776782617927850241972318441644180256189844296256064792345565297896062572499881103916654738838499790780741285273950533206770121593566086140682176400823888307870567406927853991534689485676038305299408425370543889610155866062282124165894855172356371078073248337820086898486262007736351201979245204467521296083725289323026264755750305001241495046676698237641771623453731812360643973763609274398542152884644639851713012502315472482437029412864724377449632412317943966456013334642436633729935389951960782680014136286696428991185608103046100108143057337106881897775139365493302178651711172378657064697393647770291461720503583039618793345920806450884659818594633120203876597965799612217102929904790973712305934202816134237805790685561474097075350607723549759047480197701627566454525942783292046542659781303903769397662691658154161252005328959002025514219801521757208501365893405559641893637584469812213730088641718268812737329597099348830164242272772852437848132658759008289198293564027357285653423601867081884453184927707305512835993144041344156579598509943923018738706700558173498895601652192336672472451092157954669787987531140962033048190381014300290771699387920715851392760254651204469718278072872439814429923716793746754573645711468536210285441375284862725408499657355636675699298263025527810014494894678757577095392964379292126030032633086054236062316797295123134418653444923803899582942547665780827058803692388261368720407129845730193849924947002686462365563384193286686212040612342226434783032900929473731670173349176601751480489486201591550225895733315233522239785151670431659973172304046998455789373310466816889826249174122889870538271191281231342938463224669742767496236696787365620462577611717085216387285458757201779511901822502011504240771058376064934426299006804722003154965237975441761560875270090089887285451121614325789755315356674710414294069097459731324801089833093449790974399090357728494117007489151134163421693695184811091767603959254995505662389292929812464163538731227862392016914453913873635956692377592873416604409304046220455557241554097406391948177786147973729701532160972497204706388886719159189106151286103741845710253282602735218985124429238648039432437185672929283818226618511732113753492063141395825497855984437030540301188768085471313585733931967662952135922553839492302923760262387286664432020439441440912414284744518282954610103061506209284394979672178940818903450374385207610911729224108511168900816513962459069524607906468820707625721874523200499238862501277332919939692491006780608329550953364868603359239240028778794680325540846562768997305942137839581681610901719612868498132421910855974957455254022303890749314309688915468608105867829744815036528376889028491060021028511130517250130860949481653424545173717871533919865323482005130382308644869560575748617506281073580550757948318806492522509119810365343941828935001102500776002345896694086093516667872664713814301385482195630407793263060111906890018639412098166543841948265379241811423584335611262534147401578743094794316722506145169524367923605320610527108721026601536219445167095583541205973845060399480486689551234162134491499364137933344624771110134302287134651469960767796792366693098997213912454046347082658550901010783993297754175827361314713712765495076904846599919534727624157581037228894937352335838639123194744781626510958500365523942852931705637522956442364815446564883975872842143509859200522056603657496008877401861284955583189430866085314129412561344254088345448634584186183111288641180325256101374738156619040687446469498429379549484098858076593821338686484865993595208717635614214463226819803920380457633615703485527331679069483285760854252510689567076770504775789467968098498745327533394671523874784282337683068423516317124899063594175846633095152114070267629509618239064126903362846026329098104784582809248377525935149266699667691571513458293362392238868971039651769414678104249249405847932299754885493637952015546457735492202808324032949733560137193902033713315024609444242918356928555404966710189784143512656049894558423075514017091254286641476288661891507288834410630990410718260309467652406659560422652994389608425402063222917172395545733653619882887286070123016073149062940437674500940180178562237197069612975595857935609560357437194051947461420871341546446531003652174896973388953373523845925001030176369679611281025954773820047949773871031367116520737931589372533641626462945547936071615762663805060688582209604667942279281186863662608891457240324698511993365005284636502383667974213100435283489747817048570641638439894750239664845969327809452058224696091191413456364716615594222585644967440287033706419017292936165309569144216809547064578025731021397454257710821061012158768227044708415615507135475438132807142325459691850768540671990621304450111914167476112388160276292629536114809429069016365591932794948145240056908151826153394598787862592242386933285287038718716026162809006088552129302603347569233859925270634912552309059856527181829667603792138137349510927726239426385628351073477179398553095324396434692705615789252957423902707621374017214877198551802387608251636705028945725273302418916611835557452299098598485035148891854222886293682105328867390084844687762247223415876233696171836842854441509238526353769143028958989284898563021967483617794194654237919809389045134266586929332394645896283779318701477343457738812267623063476993046258062894928297136231111263261977107487618415262703863193136038151890354521248077987039486902603562594948327678197696682583648177095869738893044646665507510376953025210847056672381175346196741226638310793491159973040522996083378953859988800559819656490108003974101595252493492540861595443692083678503438378599140296323333107102992676412796620354992777046130317682481853419093835490523406939025545494495641709230919550361662688663352472976477516405094448368787103927642381879359475345849558013787608389931139601717038210972334955457140239676773008089398132547973857869837983710256065898305373707070885533817402420192512514913277464078377777916284192780190979671927674205615974365143316604196387227681102303731712261587526886613444977768540497917716182904592252143800654172729664574909518293441967749878376786993878563119738269846302350774033238174837173313012458292491998369285177532532902373110627366641028592165922332864934332051706590320382634549325334702235538326638871029372155798187914482906865773014679560504561152696433543583003326633085511468102912618889369585845969311622146218445937571191102404596190868918644905308526722268214072659503523345453664147473029227980381033667206620362843166686087190177904182267093930936350852034456041690141296779363248670774883657429132343269979547039848496085683931667419930287989268081936651681790543776141401636323366212911392595157249075703950121719251974830090539011136457835015799191889245902415135890210298764941159415959346056381504750237494489478839232846753871225915732005015726374186141164388246168806221262708486666441901919429737350076111021100571741327693947352116857257975281871308979736584135945290406332151243423618604136925234625640786003526169797030569269014479892406757550799804322166234686678952078440311806715021699602387005456959503360202132911451038315902720724168571815461479481881961772235462826194651755214596372536408391517722000347791807666123729641037132705975993248802543018420762060944617099470707148405071497896944763226623224335910720223800296902197235027077172682081800431995929699307150651514567180608789486973881768020961774075333826495884354799175568343786716554612358257014570911508650335576182293819600018417759390401413210403169569725441546331504209789669524130014779114894380569686462465218398561452557571702415197476750705421007999150685358413139465551846596829334193623050287394558283103019026163188479264280495937988054610674608014772448797830175900252268252028427642134895386970048089654476756257454527896691306493761932784430530463127371376157775690052950774897672887276651083005365211441914403314655212075774222924815390640414833922965492441759848717109718854325202446076041231269732261028116216128285897242510029869761381166578996516348082602775913341565319389599611596389589390593891381638028563044595919627717980234753577413288513336357322524056635351873557004469744198558404219553463932799776245204290091321412140686063595773457603208283585028782198623015319650583358659372312603388874243580572475359879906105479491402508457058791229844903786693346134530550817473333671243705358113549188548250153966951530504676586158439067949067411766473788889794314256571030101440182777530990539052369997039680561045862889986405919546210837649478569212177164472389999551133769514442415011307544454122679825398787620328873208352565230922218008240302772403773710583133157384104538836119386485041618094266118514702714542636065123391622621127519570446409438643133185720213378719996293958316916776182149348637257645741880541342758890833253402572137637210948451481361768461430722281686056668880223463477637698387550940620824817705673017559467177226329401983244381332633560426448336920310124980766177444621616067915110897062271657481290915837362836895873079484934847604915607047017882868375903662009372846700105314014761041709511488269607906684555232029208679401385599251447450751202932255712163898376263066512245447905127595595398008583573872156885804682888291684751056800281502144121816487373165897842459972760004154868963513099269246601143603791643228602280055679442460639922673730476569020370885346557231553203594674304543289951262419303455722688109781645499295817226327894408745659836159223859833386854595445420414915822897224429633787874196987659347264837079446463014612841510563780963328551277748866086605640257776107341849011079644738507320481449740076251783607090734301831156888924695688616096311408343536576617729651502999807308577908652100630901075023391997309301247860077720363434401932072534295501219757478891471117343593877374675368080180700498225193773942943468836033996223492810263218635133375642951607711265323990179272164388754949363037089957270747267635997352729462701594798666009664457789663430232365271747230135677641693197496232391749647474930344279943104898884805785635973909359983856782167314441596325635906939061981453726392441954047542308854033813554131871274085839371181182727239442682294206030087402081844949888451498332775089618328523151088179315733367920796490144217314616333582539985200858363026373906337243116899063536060216811097740944944033459305023283493210820691310942132527600865867084590580435964838078608419526283489501909089262031304845886367729006960074682813924090547092270747486746826919308508272150552189517837048544583066871376806390262715683158190869235401027400837198768514070438085650128206342126719720450167341669721741945811115016548705856496187064255878294439820520998331444409989142903675890766206625989194695717152629028618353920409330046483636733377161397435359842607052265097662521791371464245513867698181851456974287610687560889407274524077820631626210290785778697071548102679796318650907866625377612021267583276107467880595400122588605531274847514913291636692971734711512788978187037295848940441115268946610867630693105923773038936904315252798349667787031031250329922809826241027613596348553652872230780792414517705561944831429232838962857379153111394428814487352151180478445589543612640801969628944466700876079042537444643647143013824292929283469280850679289344705990588800255365226418299997049783318644005336566908527505677600058280954853468195479308095081092641551947381315382055051237267326439623596948440558500296317187733807994500429260930363568398902438280804454742700162696499800936613994378306826478865878538269099281175678773119568465511812963563112770382956631417310300001339952639169091559437237898693594595589304816464222638483878130396644167221999902237858825523831390120240679247244082850106762775636537737523236975756064608110841542829170972374463117556336892804450475311315085651095018774558580786451884592745296856801750079567622156721050767437136210442315628804658347753084383865056014633834747835990134074981702345359911202772823870684675520955531535105522015979873290602912035853291963341551283906772834849685345165396410395111130600659264131917926288626725527132772235221886778111673448875266279290919911851609133264917425450063950314879547913835457437022168687566295319974612457145328145732517275317856457639637349621823466039320989189654526648575708362684882642959900428592823310363763705766785347529194844382966351261977344427036539187316963194105684439008056783512175070760671080395760363058981815242288553296248926924988242001145334786090517336567317737199253673193911468261817675759629753220145441343450668985845659589784549791519363623507916570022482966457451707678289774160575986310741499641093678045154713299966736863137419720033281309551266225191336178626455714363583819489934920222907271608065553688719300511988768839571271658467469512199967786779488552697377078556566939339509650717022082735249282683112977827013465558428529439070699288070406569783447305631339131433895373848873320589557178723985977612395635384749155470341322275173356144193339800968254884698153837961509271999482324975677726777279439605966096984846602132965068213987746165302734655633762819777315639558525273435087707320379158979542004597213182797611119050280304610738412619348745535257614797883819132251905701304389999114080043482336844572253198442987936812579053764161841329896996859890466852665386402970040800612184538202902706082049815601739376268599486190672846058273939281162065259022067601324724030235352933892661390185769076945352018247867237970137521149480064096251887174315194881751945135613219336402302525509835540335143808267467775914604393468728907969018478054765640270230315910762287219406387618331284119073266036559598224249285928457592545368866292242658297773687363836085001740078627748152310993114955065980613935914710177894065024865406101765562239162904056529922251705069283335099733755554072378253484709753394894726362075147351105288994723121390586820022190383266137333727658129370150151791458398700437941972208929107680593163922506828998732220185664304150947179548442672051687165563278155307738882280745520524164310378833846617114500992730358025768930205521049991519938411584443216301854143429169747636400077049971615994661138804476092925388133606497570956939300741321208205822971836682051453313261109388755876953740154265952178237157714313134788581171359127890394219178346821982749570937700540637986365268174067995172461463142801731986936426949005412093585210348137975271704909186951850961057697451994970767753004721972003886796980476280028052984975673626309885425722689371722910524136771437549119116731809131090882249405245101192913284074281739720603336945915580676005609560468248379704067454260386750200760435202490338993205728299618681784856737057554091980917942336993918063923423762248314377319363769412345289892200492567613335488752904416159893461985147091651277843019562534884285919942603353591206171837821491066067739750430007351637785695152953087999340123192877002329346596144521015309731105716298204205170842237898277007055120701143824415844914865603222485591922754780233096562508014505656558278090957764914847101484065092361908417344765339784160369168794275582404869183558211992896594094871357154634428220401218279445711063629678129758757902063511767841095349421347133908180587557230545166705022361135720354171671161976014446275089115748172526741374957798789253278638557914214505899563226662261599857510170532484811863471485083161895301835172940991164705059088555939246996768274440526369357364418440008163942106127901235950227517000961613801413299027393194012709444816937483824910167705110473342106482026530246093655069542294892948596932467155036577612020280880879031887116338974048162193823199940472344128681479413329994693586619774719949491930485355990325438269378989104293403390982264331039089691160670882537123304710492200506929855988711444938338960028929979770125961029844615644779333066278513371407014223009881696047675230353013815001494253219077792122800343930109005405571787023141869961111232838923814249961647283096136794449766249339007206952849005042701183787880855689204837939434561722726511114020299956394958175939914487680823737248702178722876228661161104311630958163682683439967771144204110604822430432659107258776393162713509419278754178177790805406662428446686404159413865206600976995037288558213029010400921706617454928026268860342772510674266578646679492641095461166214890830560428395703721971634907244052475286550590818566304336038930955134494386113566130778444534493024551462593039133280647324027986989417907635454179588588065080256872689873963763065165886020309244406393004735278770233776665079778072079056332003996636464224406480775062221749906558207500563910718412659153284237034689591344818448751266129123715603721425426328028756579185103601794275259928566530004603669445148903916251071657556828300845395166368597306360814945861596293938617746266492833357289753498528357081527589347150055793080939789614713482743563421071313202175083406404629574058730931851900827025929843666988593727083739002814769241896296111805262133837717684583399116459477740120027401169754407495628368968227217336884554413840543346637514918767331958594577936417109420940373878406045152120684374824723480338106689982770771848877649810696099651006909719734551195722009924864241041827341257147634806842527525968295139536710818038128173232430721279967377834839225174300869100605989041826765463607836792282693186676983694036616296107444485231786651693822084378500495218068932227592873472887873877172959138760119447109014081065541544606411491343484874666480666630123148308528418611343524200346140172789614058576990184085776295526742739784770314585814295572199005808045217242963821411443753980918122027140829172714165632293978796694583200376936897205718122968464533330080667685599019645981093884969714387345859217649537054703086454925256666705788901266028085360873552614422361225061007309810986518473939669033313419466478689419003461375604153031887452075954023612817674491923566155480703429409358188306961817802643243602486713947096639655427669237203068433893832503183252390439936089569820588344051862301196906234015051994238591529262269205743588679498824005252895465133332439734718069791976850119627501430545867984474515339071450472621970844149635518169943057569813025937200516472563648887245961727519516315719771650221443191202312578575641193993308729334008349825265157596569507954260214018382971890888668318361272835328235163062546425405145203741240430151217213361003005326619587106172289156739805853467949348189232824993518715211069014907221090214614075268472355054867986339945681941970390531151741833347801278875986106858626192783342649255846788153820995912999126625518502241202188909763475459217847137441651261486736822586747261256305018178430389687264651896379486658451137748271629001985019621060991082533341865826438712035300228503061376108366769239394763501235240071139282284742288953834031894296127767304719929296084761183202080461373667566758622429006632424392013070571148429979029149918537459264116595601917422820301050224400686336489948077785980191911894078314281636960245510150141785595346259952485863539099971914864385433405952131643079303971395251157475235634812769520682333118768277843708775063934729374379115783538488304718863781026842027410156750424165689555952707653811958057846601181077666741480834978425746896771053603025649695798134086582137012861722200017103029403688923807698632476091575438446970109624486337915618919045258222933125758106713976051331219666664576031930352595083125243188512079063781521527956634080118123778610039326044812548470946217782940819621903501024376403207810152042339136153321904576693103904345804096265403687558597039466421138636290336565524355964685984831138348691667222802072541924136966790993708960210976987776663412768744145730661816030188662402846692813879559796369962156666075655040521316314148746721765386879728006941586890223603857929340901029984701961332246011835833863356672489230881821151925796123250569756823197577952633650712021876112894551320732787472955343592190742027433253562412217926825621730134227102081306319015800435710448554081323688895426209689647954009501797014653287137706480768488422384701202742061761765674594212938160809246230676179797528929690872171877533875467650586823658783632081385924699684038061839917612590125579599221572238702292680183182483573092421226102995293650064427800155787250004735659585279382683368504438191923436576021489344667938590556606137058587726462672691600873181575712621821873894331940197073865491947400713895736398447012688122720374466844888891568809574551607511121145591553690482670278133809384393670362684237943317427223660255406822226815476585574571093938061272927264536808036598219982202297784568298284183844880835063957999284406143995688053318503593912929692960648835795890145166185014982844392791437408968421509867697728887236357206401868956789741505926551262393969125193646924592647633844770507124166754598537330936495524192343371539219177310909758575675001487320229300788635551703859183987515224051814542538220674445893380712270711333513401300776414783000620866428106947926732480955874810730051062362057530209455290873893090455477019873599030371127835561589653975064367739791641016020497179159227957288603504115497706242953255894599665281072334068034795547660313280260695417669961093672853601899100579772257092675245163361484693689146539614614441348593467468009156500216659688874452920545189865939332998892561132905295239165040548333172072253748093374806458263656372685191771284670451805700032678760059174167637238094600547076085780754543529009724634235155143208217722260417081908377268297600015989181449971951331698164721097013610879239555961927852295494265643241641008025892288234622749038691791514810921270177173600104791309525211257401793985469720082756557669713706289868132209823805466071450159934115015986130931337330944765264601988062221199163892443213828598121700706772110546656176588175672908324140520254239675282113963023204694538346462975918626522554052020467334208211014861589899338124765060183689881093711914142180132539143839931283366776837879033009878891123586575651293380457981944671469951789958208785669572988112858041741979399749204957183546453718931663290191803623073116582514804241246970549215762834192703277700447560538080628107750820126757840107961554414072622027758764196518474636844331901826984620562603068733246538930477608102876154972299152023142750463748523273161843082589714331021272688626896121099043965249378206118156764666888940009136376110146973202022449081099524761674657474771347175620101690936609687678544152292904877211180621846572362506853506387924784360571474511253196375421894984920282818026429795672177078683127086710067586961096705907064433781773633238312636800691876512216592506459371679133704733517771269997522495259376796238278931110340148267596296534107687226880888808096735554809650076692656702240089084805904622975737004513115219539110660599511938506041268193829478926226401892254181522143885021085607855515324590799521157310822497980270778011062079075168584625717706900165735626856877635630113961763015021165451693124535891245233748640023735768780113660838199030327392061670746914324615269084933635655641441201693084222714132749923280125894410827280081328271158636855897021904990293499648205921404794567946138373580928733805667123686601669491480961171689199127154108621688517478582656185828825493336801069047338747963544587457759774859818447534008596910255113352235056527356229741078864471958351987649843944865736072978355811024311029618423908707621225531420849548330202730356164553129076559849183687686922800393885728232400308949580966091547561519300034547075098660199595933280091722735465923877189538896621626275664154016886062603474787444874261281256197804655363233269041148665615492432403701276482450019310823074083205293861234634303382197038327515001527192689818807987769843429061173695054473305743011038424523729981299227833363860923429004033206477581761277379912665308299830955671954019729429636240448151703678986442141737258634231567559313495118697254560301277459548596714763949587877557563781367383790726209464101284601319716843852782736100613469367095932121697505578775210088754026503175695786359394107716490680031115625388714318222556182549903422579970669471879021128665740239771839411922788779009018033948096033459565324211736814818041946172505458907928826811914055904268694811404132024894543751141772045564238254184758987761113907583409805438331506359838723889563869420009198344852827174631295559939332280039238772501572653532704714003115734460025743260251635321446503892266056748781808960572175849968732629396696082079664787244847004885571945122060252261826957193134528103153782099923865820650063392232150771652570160339914166809453172529534266791694646491993162796223634818746209639888498019374778830357608695613837684312683291006162138621446102642684496511248573929063262644209132395620349534929822761609121035246218051689854818447471688884743856277501270588270387687726176224255055963741213788208391281093762857822084748818738481431546240761528551462446516284486144939455676424669038608069273552793316091118993970603512899349539293728075294152090112715436981264500668793901871130001605502513919387881883532393574430610994880818776735249658610418633076241292917257833622596557745090822960471282005449881654189013404081008958357547308742343574534771617995909401352938892432748945963714988586360270236710320640951100593405814979582400069306170153449309631664033850206428758935043576935189353364398423056360225270935763761153458523027606902892911829415513067023043848386428393166181449652303764761614535020151495263350086376299615514921575685737611278782844787944770453325280311804087883860317808573579906561837410760168077741359602789198465250955459960557460590910114746851604876905283384832261848638334413087444952884878455012285712691395041309968040669347364932636728173471523703684637785697530476285020055527201138344403789078895171565350865562561617706485224287228833512288857379081347255083356402368870055419528472548317822823169106041637824936550709295038619373055710183434409028781694456335847068823054934583398624694185034067949221672466401323940838084087507275656445470188037113665373722050909371256413390888375270229884469076400208851724126143360184109499487293161070508675247576440237400208490007980971016571564352826828959013955532668275974004349361566234667395561516198835465159491653820098789420848060231247954577931407333893270005592561878995881251474066684826439017769346465958064805171568273282975227218133777070192382271269553996279103570407621196621494114312201822575377974688129039119045689840297219151391680449478754191458071639282277377396039170392428449996658923072847865208898868382939097551361143059221812038608358291171455530211572599930717953802036818123074937940785438153901540659564521260447864908861468726295673717353582420398960936392891814523994878948132855969714147108562183964543050023177207829364587243872066691789101021687813654159320138586623423512334463177529335600453214243673830568872241618679738549283056156824700140712636207893865113646443774136819297423658125569710078966006011648796181416756261917711231144723761545983558867318281436977160891712805819123809602703831925148494452101078666881308451348378572845382397883365056992976994051674465011447380303871093200036945017431693283987210237554628058103992170349829341361316183809750262909261040477916359737317760270203955565100142882763065859603346249373472752213135889262604056253831052334595491024285062220268857160249823863108400402097768778532441908328028211351634096179589921747130430550519096594653463522684317093698877000378265589560043870722242996783282429835182165604903635368606828995425794822120736452119124647702332348950458031551618255885754392006139432139622716713331830072142500304778661900027334926201732917809688588202756583410149275810615126877486797315269836462781543076075717343818568273542453996450227419572207873765102117671600252699932347826920972817458335918008156330087134850997445203682801395478341492875655380897450801371235593167458083023034041636522289118142099143985144518319709391842917734326855514386555044494700706198091950490840371671855760718340561663420784867576390706176720304677739263855032930199212880030538226057867049000133162626393463469152983423411973571176532895557060476340909736054363806633089066287313939895479305621924153907299240832303050674785345219883060707392425427187553705169321126401846973308718575312609061311024962690429354905247571013524050072178108897858020637537607015541758248654276844199360840011105419112667398248122552418776562281785647820894442145948022502296692669542227792912074961674192035705236254085320043665796351783427642634604970322067193687407580399847526583310682305109219536868029323993197886801495390123289244147954778171106488670467893075426638026260171699983146922104461179216843578213099978885702794789905394249124854130199859612740300375998816591685566527644209647007653666374682717753644416527187264367333286771988486064786118335654779522468004313924003036969876855821827115637698734459930489038210312765433712997393100909305624540389252085400268148372203217009219842600232796567649546434717365142908138207094943401810493853932273902056511589924816403292302502300601893986238499442283700868741930361935438237233096552560443687028708026606513669701774774000381572545668698582578066954068309812265622202908879818448769140504778585003038364733891428247926667143350993878224714373702304933395199495798218466364994295437477465557769677070006924390156958152295857422395194811827308280377524648055591980777231944326384182119145454383027557550133530488527004835388598314947459746965767678513695043860139624082253286637841732019768622795362330671446223376574132587143731544230486243764456172132837516088655943076841261075597161141826249011470757965869390185372683562398139946423763852993638589701003317651634460607305193680658815721198971270644740818339582874552154244549170086666830466500949840493432052605776028942789789840805628231633631553765085629083564512426560103524041875109028213889465669787191169147165095315487774548757803388480237227835393131047390542463986642744902085867270748692410910651419926179623746248271173661021945562514937675234100103092788461119272858028637388273700316236323092084277679570000280267147638458466734451930766564426617375539445990808125419591367480673376860674725237938055549593669710764528139940116112333655080019671293417408229594947696817933193847690185916562758476458881339290032324265880648363388173836179847994492454864697756141586000306838915438350507226238482485281967609285249624706826027816851745456009188614361199290804671982191117901238094880840691574570172698311183795941949805925433663648665539483331367018081190669389185228826695442012257791312858384456495544910095471849129894988729860954618362103528656879685093429959496500950878435217430261785106063406775722388698852734739908401476155831249419622466767559780236182020317544661482630231645626681090864427017077574353397442535847070378694968862809040723811513017881716718685500746521658967858446264671168670731798588809025501891458572219931626640478522458237583481363529479310157294783382773881265454126467292649519263484151953382533910503239656533198419407594429827226793147416733999835378466643894609755647411172135190208214507509580260442562550086743591398303467454609170550670067262502896324554753392353130248034506028511225294808678535184017277865938955343701233892695001555714877112852031918861879307129212474346925581646523618180787004661639216905400658933057092402445176471539223072384044279847104240420306602447781054305629385821589610313116816342254366593953727185805276415320693978934873348278837884520177772655775936153488668801219072196994462968576742379899390053987320339850487240137737686972793042398829037885501060775025966571915741126473419352434662850408612031302320397370651606118274231556270878369908890372386076467839794779606836271853367787188156219524569867146945190568833406067260516531347653475384028298801885649237498425330841193213384426893026222974976740309689003393906487919422267901290495010513945202214216307143150580821446016497716048868178780883901662368197433311504376484318805080175577200369434526511831985385208025187298343793049835069158429473580159829778211188478676633867586995589485016068268172239100534242600337157696674588063817148173071844963994043528399154999206501829871110730934414892736100521719936682084820319717475509532550470708711553254240646901520214464892107340136795033511519838250206228209721284733437563978725991430032337273377106692564512629434642776435330203798615923033630831022817948402901768118838241007710191281538091578191989856887579285564303520773401081034559382380337861478978922874467211931968669207231750660825161575122906757354659656483037580257908914303556285227415196283964123908242793729857190178192664068866367881777598352821510926293666628726617614800387402152942785478320328470948456704442202555503254585285814697065551827220890775441891734714700042068241337118387476835851929554707205543446270070824353013972864319328785275436316141889915103406000732861346718121558677043570890713654038313798577903004087012998207450309722554504335800740103343875318799994211461094930949891905806862867232037793572921604814166545357590223683356051923524516257620638502805960049090542433928373661408472781597989970754982875767010618564228018602880354864747016499511647976529163791907957475311823180643952224338792413599326271951925680969962727598812651318733157400987622243417399693536045061222468377143856906874179602372238531810973121323852898732441805897464898746119776442468171737505644448466995544953889877120236676475083606627283142531253097589261715632171533303819317670398863415342328257973083649538842305279298198614265346181132653365833662393158508730749131717984767017754087948370958570632941671230146247476326731034320248411458129327953164981248779704900048072742211914989214948941813859149786532351278472750775395974760246279765420005623836322100325746354721584412963354899642892391245115787750700925384211746953946962565853038630773663044907211880162860857403695348657048387512017241415590792110513146444840506875550947518930053336126120031843843515553294835101884714609571040033212113353200582387332533690198941548594899341964020618556868462652601627796448476193342387868316114226870816050512872958789107250412056204790971715506336728724506490388439056485272629461241329796777114143340036601264293329061758535135881821411715165658154123269059963589169712716606527356727849527554188928787809619839427863534101293363010969185687348895404229362141508992620726040110723210991521297757349307452472228853581744677942700898143036905638248696656511495993720588554384011730751518812042788100169642620413347385728503849068645029568876051010862589507079299653246986346742554265285656086901419400530941105611409311266771393597930409491469680029469155987270427635575366311599372128948661441994515363265900507908737295850115093289512881662261604916499960738798771885006167529424232723929801727244744148178241917913375835973427873207312351074363348167685633152509840126190988635500923375548338832980101901729057602024103539102069255306556979900976549280720172606050162781049556964888240902308672634939427214287113417089742098882735144204000215063733779413373256949593694867394449343022169134099960789925966168296022923593016312929477730716497402269360267364398436138347545365031153606372365367945868641142518911565613924180012401608115832725085203831401843633452154800566857999787761507354809426860472520797962442591102656559451176489942206753028026053712664417131641963409835906694856858802415222799050053328439851706169436931706912952666509194720305268262761089856993964952082836961022308134871143360839677783991736220788414999073913402926284640592177022949690103151626680618323387041556420997745861115786382488392528839503838278418248559415394179170124381604860379332102598398037977101053364860465483435038439229408627074290170083654199781196094031371992601103132352168900758969598984108820686888414528388754077095064943266922768809861151476268814224443351651047813136584597070166787012029716599584401652310611985350126119399440328328459128609177001524977244526115702955476307839809850402249817348849777623363702972529767650589228815573123528791906938086985005779155302114574816982341154313532445144297385261128952183904000201984043127988981918102224926079230028610457611028160575020999806531982818352563937078801992169608868492670389219343585873372881071448152170444412632942275389166567107555614932172693334920450386794461762151553763481375509128895164699629706082196208615413290461985766175587791791562616367700509115162362331216522112830939632404197279423089231281901593320838106792205922382885746538447969813670368062204148152225157441118080715660209917634679614721022667771860263809820388921044941843280062218714891395539769762538871253006936905014246036956980022651555693006058971871512467268275181078575591861132168711391480642511314998151921943191525625430316706138088566157547277238670325366867654547104238086311575114343007528910224705582321333966566400374169987519130976780358407978117895470096543408601141746398980466057652630886005578410456463507650995282665382224085240140604267392107981098376871255224730198509187182953728410885124115227365274064177466047188054315910311495694361618114399836196759161259998877343129884440631600017595736754551272795966342738351763831164592146831224953294603510839220904098127363378491908807804599767824190979581327353635272191366952312659705360971271276958963762862726861106235934798520382711536512491282680228943220704491658625953564366219032405792450649346882789577564261068936817717739151791064423078745086799231368527528031120795252691258406657012502464104064174288683956451991545704111615972925730164282089815860414984430269537454680511759789165880360604882786920966807540010132845379759087946372889425181737213392716018834583705600416550573840039137723059691762566677019065154366002876618984609803148434732657761155616210253180883367144821289048813206266524449014273866658109760957619979791808704550483717146878828353581078362089346817734393585224950460165211141966461233867123430083338897395968444581057175457499075959475523679059537655108464168042058187250010602806752866599261061431685272416920697078014796961671641540512593571062986437093372774118236780924511142945648343211914438391046187644201626243750290982359087465294422703550738693004599571353954670579208564268914293239167291590396341272822879783873870877276430616709411288713253493043517468509582166072236414322297132892135568560962525393431352718180871333649671437151047624335627325298885583428605783912221891047143104866473950324994123521478155600134210728948118750128263837916926055163738117082568662784926746415588464478015913047645586165358373914844147023316652677666663063303549221098161747464552748628669805893993300551731513982052636613327350970774243478811414356518735787611367685760150652321522010030330013160481860780945660809651579839047438243929773860612247818787608950217161152524627774736072558528085052055650692015174462252004830058429996871056204257586462737387852101057780473907445160693476500523023632769318135167560502469094206266775801163657152574208245421707548715063662947984545790882057354939337097830433711811393331887445894458319627496592722230845824183382030936632480123380113439716222642555575705951922925731441896095138802857401483985262581375369404846942364054090617774190190534074490710220991004349155233931151479463711079454912399047567584937649024358968096282852976867489669613251908569736975724712789965063255499565004227679814943576258601774930180108177033249853972714973598563686690889484999750171852947092314115138057694681364632436246717336363978500764512963293770574181490999546930472700997778546479443265942138269312185863787971518908137939313726225101970116267257861783729014472621987160675639773415881650747550790545694857181097367415765345830919043060757349919933835005500933533342579933477004996663163734075857307308952249833197577120084174734520198019497460382124906046037299058097366453141003217364317570862919969588180399278700304039699359670488208627109199168220614657157519437558746175228243683980337779556027159552564389138855733773707073540168281103102868957277333028039598766777566178318091412040973368966557850162965508653719003775254462475797651826734977445187812995103167018540944735204515181950887544611335040930372110771785782134947355246589473053246282998797729191901679426458319006390785923269327382005905707220198820868980998863342639774357654849577690879160654052469945535566419337201819302172294146439222259637952713168163528904061454899517473492989931613884372894664165289677454627146085557027790194052554803949533440842738678536483658045063599809551803489270288129801374930635601834127871372273552010071488850629005344602468924497219313218621532283663241166752422247105424897333061614216205990419832903289977950182245503530438556794854925320765498491734091798554299374911041800049025202640731382200375204754931721087386677222180900519745530922127008027502850249083404592253516047104227017997258350380362969412077582170754296799898512894758681035925529708284285689065443289381219900851140470002078966819173271732720766775663094432040855501576001475848649046499530436895066881395917558013965012974910792037466918965888010132601052380998533684356919781203085205057308692322995359118090910424482730055425421459847319342625250397176305980071768455113581631850823594644333944402388859251246437655710306424697658031239027219727497536174594521393603522699001626108874628158782730456615829371023150962035325625594948048248834176763409147331357113249745859560108124992125669573263608883357950440507849977930536288703924067821767077179419762182262436522596809419287330434494425937429765687022791137592552746816476760330291327781339431982490054440308724414939504123704308113378346869061713382890465578137539632232345353228563267892282924242401716947537790561626322346742854523400334138988854453130187366193205388699090625280069889117732816449702230929609037128651385936096410952872051548781270645804511077899353112812073788693639085265779661810001407608168374899794378435590298398916070862892089120829605273520005473212427606195098398741556415978099284665853594595329616687809575247334926947622882033725300849569763581691949999917725702981259612586850119432943676931436451456187517614301594529036914355769778305659317237932003544707189488850445526767223461728607591504637360014689018603751274710391755233651813954870049336958309174555215291444141806054133406202559804223222850526646690325152320374060483169405335532929166829916613049873922663043881156461342938816767489124973760019605474759379806288060558594853235932187782414889152016346510127107777968338980911289056861744648298290536691324116109937886897272892951385694110049170760094674121691129303966355253791209615283930709913825434330161900038946254562637917448099912188031784365943845339940175766706866819286572675125796737517016142430779230334660584012683576736770580864115966790233474888659201919738256764807994000223564757160714956704616115607614804811642016093015366030239092688793771111337187075047512919548762746290638833210568713995325923668896290140356732920114748292661382745723418252399916631733782872997685732490878735527466403090465633633886894965694767103863683235396837602650605403053788115310912626886331701457724777453352611889239962891160767496632236295046361632676690045563388583470166144127229553852577702417949850017568195758671028360349814584182643348661955341487292194099109520441382697464963865031721442393349693812090371707338310039918940543183314998952268349266587556192495612238976495136386951196797361834427102567682602412400511605336159265187822374002808452396215504683749584577162248179975140830463881101654151583464706701775781669641369194716176848109196816155145661308112990094469543274286080928387143851529675326433722583173569209826011466922443743411923825366872755408740922004908934191718963060690849876596062937067594500314221132242676083845454714356526689395232324056071819733857435547447493466282876430214181176169137116532347222458498162031594831776729104032918009873350379199709247437211139962939642027106189494822503749144800292207832948027359208542900402803718371529565868152794424687238133387093881818562572294639547189627823163334222383096150690124777819864026434484594253024961462966424014265643705479225069420175412363188198119213532566006474790004310209635154215073118688850234425174765500128679781821370161472524743965380497743553104223222050916229963798468823544120667764514650381516526203008868545704309044956031651204582118371156923998985698831727526278142438993848257213404376075140215915565247377730645316612589316224145905362559312948365930190543684402616806878268271240604535597909078827978816584737839903186099767182726347980374991667468011022827175363686535653752327776885529065201360300896328665341728696796197255058340908638467727890150358650683100930233365187393984177162010928468015002726957163861741518123630365457128010589226491389900626384905574113991566997250761295263358169315534761557511135042360711956358161265934938834690941137368026555956538954007283449637824632829603105260365340504018415853268501766157906486705039055091296805685051596914380910507566885694016539744410241363803401876713616352904665620304733040409587830085579903295306869868729572403787853562821207751353980319109710670813907283084207519972780222087178867156617577358616422111589327816158090292794626060784200219560475660193739950621346135355666398566459095508491683952841531939580570548678629749005111583754403552649393752464105849225387289778126376453762208521988067243626406400158191599834656859804888984042198907141046156750689290491352464491749581645601629529491800341036059265427588316925415512794541781532072611842318503458468676321528208466411385903536135361441136040270299406640356162460707046452879386933731330265699505622780477272075165509693128836061996057290880532625509676133463611839171187481819315829945230589746667979138607672227493592934375940268497078925295170268648078543974999124301080839033157583423599099617021934768752045201199499961248280566714408042402326543554707207796159863101037382800456258466951375613205226708222776067531496069315003672007259874181000685505960559270952091721302378752406459245862652626794655505940383807680728851229717620449985871214856942615894446831302321411097071858270007055685036580028817558377434393665503563558574689890024856800481638073584853244591872029791094821465020740338808486416538613208464805473331462676540083663033524321905594008949965327751132204004371749329639898520750224051435554766341615928816208543048083179671515808230355640572105189569785543690714441258767534716198423041384114545887624418279158095089789765248209293022811779767574675293494347185798746885998650403993338286059151503208998708974551477837385722436069726236592858737308865889256840835577396400643686698838215211919162799509907674897602570585087181755216947071937202557391546650225980065982851201742628163084497466815156525498700825418829388519839627359424830257572107502492359340810513532402837493303542788754792378778198219340949010390829450898494268558040170561818986909326541555386294360872062837580484478806557690104235328792502113335438644081356658653107785284164782858832566161808552667195993778846709982624041637065559044037641772963496020157021233154910051687803826783625233655282239008219045104297695169610832610133593118267102021688631589927232356474658073539643776060185101587760849881428277458280975979624234828316958148562077630752072117152797805265957409236189977286798043191003667257738320379611153501101671752591676577655984046217670639005262709009828543991148776927773583571028362035481469930938148562191567386602909816322616725640302759580605408792342387734472758196530287899272311399876191891650631474335582071554194157526362058923201695655755158537101779433327858188791178058795537330273435846217425896158642467379352747622767605634701155420199659312347646070336121482110899987483744766261005001400214913291371478953949542216962351431093742805374704125207383357681429940771214966820223644754618282091229878124217901371567747033351175961818983065185421572203590634363045934304124439016422807224940487012802410180081038339081096328238378353590675879530611594431286163809888030033814558676553490409430068430422877801791061601897953883594621305008001530253467020950018660064882117559450035065555753618882285366245537071986382897200776078649473131577589390258053629395518135217057045950934718713785030004669017118086070004252443804577997777141693454810887929005933457515326932221760541954746553785045014654823246269487703988966031685324531386627131980595497991890786786459275712320619370165023129892165144034140820011323567300829825160316737077884994240866848608487764670147999496562828628348698139341433315214568296593014685009890619176330090774020152162499980658111584293090266590482099273516203549565457121399950494852203385689148369978846146786120255475436196894167887323840515964263340631829490728741467044113187363140728361193547672495671356815122797881290823597902456417352803072918832175193949448255167208819900923333635772020342105586905225570944412519742614186067786148368724223402194943368350446047630914927186539785860485093367876924314185209911908838021014104201199645362983055285019329328929531043359966832357244550764533114204020130966644678756443541163533631674157584371693873641955895321025008609533006239274998230624570345938143362452972907031988936399910752088687015719410937533291948135939097518638052971151261056036088821965777336734457508591847869657601137212037064907430929036150864739945222316397906857865913340468066437934631097862185410834943906601464083757551012118325808297753279011249117201531605486103132281738316119223876379123008306752628915802216362764591204618913120893697401364033986257497434150627367634274322956158496940704789932043305432386889038936034978608061836695249195530422453076340868408000663927348236729887060543375349169362985437472012440338677476317884605255773009061054310859721344752161303920996222750534643296581383944667373298246879611204525032855034247807128908303552842724593734119298488210285359345071379921640151611970939157731262515803805523021209096056898818167227416893998749611859782549683310364699851656045556769575418521676603751021989699574597882089114832077665091448817910787728821595837776079292626958982228024450336542037409306075280267518468288255504671176768935785185974202346390829528401942309330016164439004880097028166187365897414117458583121162289679967695514727294972953412379905885330538801421125094968457238628773371077935251170997612367524942741786647058167912307700589260310810315129974861298291311464045932297113496224389227931099474493892889635048070598117959737350393761992179952169251570203757073803526784782534217381577969897773282275343204000095478762558044007318131557506564324241915745676775543444299689140482994750907411455949785367840456806545717177856280192312376821506004056462516267108944420505285732483135766740956904678184103121644493802696912238145892318545157329383303158604268051010433785580748465568466746691740281139703628907945160283828167096501275489349844936015337680784273742716624610304129993968451683636297999029780431077112818483668747727892045864016641836181643911789472158435413306546405414714891083078729292221935208487441565732402154801961375874098028899261441040094101695889222944098656315484792218166158723512487060768905265527303194378257098405556935600144043405579228416315271582334519074013362943489193524587804929493852059112387596025567739613657365498001121977866233108849282791905837368194247264351451371135941909202443986014463897248784259188158323285875186538791337719986351078301966767587161112238829756803580821498499778360884741239209203583149274677603330907763202689728307821089702576898012500139057622333791925618400536254491157167657222933877719600183438398496687578963642536599350083777690306793021518187001315040117940947233204915569292015766220997856148753864983172094160640649150802865027583067603591824629447588708387289052448449603991638263821486900904200394024595746675658068595157700208161874808688684103993008189123951978616955436143942378905736745824574416950368628684410792194727081020260698955442694277419705240650035540285379386800973373375531754058561508152861183067490331858331140110347166545053497216044358505372938924629403352991298666633633423280727475414449197241405448589003706749928887073008820552291648379389795353102539027875842569005926405562791592444072509996134674191822080625036624059417983397950149282723798532553025695349819295241271529139648020212664766995229353450930867146631296226211421824728481713333650376587364166100374012986913556465940526409571642437595728401928083996716782234844484991160860045651828135783587465069104615540298872304385786788000133361896788628845785631107006761593234992653442048114386125941055029309341655127211963030733020216155597806321413510025194462663643015446607908199426426248480708574200347333266276678412959777335912055353798460419480962774140167871219697834391912137979200546924069973678043331481484462457508577150676572994042925498549058154918314936510876064634569738743682463857721323528983699925587931592124431831163279926769019267957445526632399037431933481326015426937174470355075335646187017611893551804595043873217229170586192114308850799826954030325055494831126192719446962280233175545964325897324932282060586264357479700238574259414012221892830335345854566883791796540407213722959551014548356482992040735176943685573673638282217407013544864572023098670458596806301405635408759690476799170627788813399117050045691841258250666311270446518375878899713053597641430134065376468223031549970784764303072118613314635629355193255968636174023108162461863901921880551630217411983433377508572712164579132419669979431324853921401085916802031206629888427033075934041997524160610491116012330574036771906958437768104748938209608331014181969588253451439911315916361754515680387248469537975189955334328722591378969832374455636877828230762179315830475568465493298056747420957206287540190286820941423515715010722752363412629248501219337170644129799595439733800791488178250068987039110276548553219165615277483196574098939190657118705767723129394925871420654426457442136161760292294601282286359155347196969158403322263762730419689603371121608689293066892948080477227273616896813402812550980878766275729707399689437128498596842590327757075159663812042952593613626211585878854728753216567827794925154433122808058778989096803838547620292787352005134943898730127083485332759258592675049938873638912873376068818325724035383136052852998536971476060517757642185088869183821200906203633319983703797555509053968082774165943356365656304063326923283767587823303546056043367488417893882879702311095887453750478395061192023286162639495196513176502851463361866189157282462563045277677761839888487277477622661340185968650323554496137602039849285497755488346547265362334301715196660570028576428915640923484954167855062104522458208664947043675078495093212912008637626475197416409644098478274243915277508287496056964423650408165992978126354298295220098192045643127237332245838616632922120658449071612970923790395180962909569373162001845727401114694894223502199078518925450803720039726697637517643995451676533167153677017890856208197078338587431123576754940220159965624558554385804641126672532147038057132335716533959797945451268966827863359392474065500691707597765951302954521771343051184225602459458231100550383323635493398286959060888514014464002875798282087559382417130724817619842304443331190004762484786530498500198124537469584720492703759843387721463925542508014819912188660166368552995065572985187284548918758058250304700119657619708098045146487796792937937459837232991808673802595055040887962876994308996329144832502682566244582772514045316978046758409598718381183378555159025024107093898218895204039603285286096076469567311388277093759897243289581090291331656043083897588392647801702041111180771035655685616316256558803095975164713454929979951310430331729090940985192423679701570734496240677254737452542260401773979212960234628914081954366404323765512651872778513619203023131097655758704849610399441305621058787144751544399833613219531379190574146434084514379140570418704808401117027462122046457712863340589558985878583816358769706523645894808955734848214960984617639294840496231482899236906360902421106991204606195845278976644082661465232180479989467352233907373171746564126030641251691235769618479120301388024216374857576533724895362970647064700544893706736408689211386526164355724245276610727680586406786368387588134137158211830209968554072461321706403545092217355046989889469313936414472658518256328993045815421079250496510241501311195957293301644261327719569842969031787809276612900000375680586818323956729732062782671522063154770401843041181331971541288892355395829045456861470689486619668250752207068832317890736613302667873401128894827268044712582197599181690022436628402478900433612491296185030316606815288505426293168383854584800107720894901424552079639367582640951383976247264337004916666582654587651367090987317057557310650115342512972015486426838032528123076008824564363037438319072619502571263679042583863278660164038904578102548641633935793931161727486352996078093322853727326948191787436097545195859513976359100294277652311102970392000811552558614375331735469858224280297563797747468936977399393196173206068171242038880067990126502435218782626477365043419024936447553517995221270059422266858029695438880207090315993516022570130651373096546728776323703300913811897500206895704592040185835638920911498271614310293711589144008993365491088593665051620758289967279759564070208978231400182198130622702833312973630660767313254668420433560204290374848976729937753729530555318701567370968479556966471480218988715930568434808453995667743997420695576419808060576606728240723265010213675538807801997335013823248722517377304940338081327057984248677082291620863541124555143668908999353438124556869424695386072871127024415569506639332724860464944851086519768897620825089258857727893123576651157156972585110821855162735356172009384878589812231773468720620876108179545817451231201313093313353119647968470080862995132805020076916540731881528800303639159798376213945066370983170743454520728903791040978675163760144814807129586534142839543820161789173661224989007225031677601452912338696095500094638759657807237921052731639475409731090279835723623931381672692386712188692603075991653172380977130518822497748453609652330133968923551976008946203493903042620008344586758801669051958860400092039208199314351480494223663692496473390508315118296875790517629193610935475441550836397378870774845360355500916184913428685176217042820922287576033075781546535265208728270031168952763194746476226128181552139425516090186719907291681697636988540922356286943817067782885069842303283371504233110354383773368452246040589555149779908110059381057636392646378147963442528355702625574377400309666372038228268493871500377282711482976440546472046811230668912888224602648690953968856950757090261752487513130180772454982760402928599285947202927429342541277340668812359026291987367079887601317475631154227364570035612740583788530743641055055135681167824346320092015027628696932474386993708477957641092646031097334500231613381727292928249140623408557067047734699683194254804700539221674643885809545962593918610776006383447959893139177586325023906340227626353224358554706481404943210872966591748436634918050808099026353966840974634550000300968382365780914927357583092684302508369137465334581486615605937487479843079962475971318923737097130175384907221818362255132243991133457957569703965860299931316114925793514269625244704030499263106649242924251043464639237893365812361920972757298919622015475114611375449156159952357777382680877078921760927511949206233057009129127936518896515524868514112571713748865504202254914387053807700428358123620495847118902582750919876149195031531028246562929244542517613371259099519578761447980949627414208749296871934238438325454977235992151151303438538888085947434821977386863279841836570288853518462651838223266392193740524735129839300184448296964608234216251938765711892434333314604007541950740052313709064320529974848029466660388140229980965397706706655115078708124033871444787086424852772078170482042562345450520792319442878845197411710746415804554555227824110379246145643190384040281530639313070200917558792336833830446249214462456649188733353009940385220112855429851196717505511054484425056929707737391273370678531944758617310466291993202037974316338095252705339863566986169350596264427643112542895485709988381220797126627331931185006511598106391449146835463615584471514075227750622284957300230783267222951180396391784583559912663752284923158687182080141597661263036514500908938295611442547069761532958781423106785552595919316852137717932206029061240901892012783863784962496307430407116167242075754912027739754021746939517330312827025493616944055784305261125909706767777076185506839576774854756694668792388487641057930989389123553574246211394897623427171475269565403413664482564368981942005185430919516799009524395147216616664129626529606069560359028840531302691444649759079939581647767834721193998122285327872346151403006891895565823200437354682951060095349013089312081431088806058099179664270963470548469216586298927885808178419230845340590100503263863541883621610507811993295361953722887343592874286327161266213167109630839282932762785789978884831010663455924286273145310248986022969329993387614908945958879795725224194956255751527785684109115698487407536140794581795366204730365819367552934344500919015912699055019516465121838305349492980429115869996822088786383790259920808692459563859259976652390874296045786524741304054406057322112135338081257343894507655470895257145958867898034244673967398992408268521860128034414728807800069034117237580965088354151390537335335128883483430820415850026799852837925921669855543185687045842729023614796508972962010153794054998178082706699683239714084239782884254978112126376714088159630190176726934071420920771466466633225712452524718406083139421089121085238153025982009971655525384852738641985632116868354573166174672245289691776286681726031495698478225909006190881938101818383622509538718687090000791116499776602120242976481589234450922918797627038233460192612511518639506536701172299276437240536321399576469570358579840836730667114471509219836844506381180377710253961843880088562550403753009447779336578142896271854719277129705881725681176005202629437155247580979309620365927718087406496871976126373149656867559546378369854402231720402593852268970217340440457902542458172978320124094284111095779880718956003958472771980736424312787494169118238269030849190888062564926533400863609704473899603739004130961408716787049983749668850316291469873278674024848336632317733951976225905863033998946950920599777402902265410290263062562027265680880750836358839118262776449353426098101731788016685924125302837935396171758053015922164101924982975995454637984258913595419611470946645155046485252762004895114040264172692547547999503955070015734991770794706459244280014060724365275200374320787925899577986848626974475586165808646201836815398771112831587888026830272871385444963178887579151808286017670933282041050109475540836227222856313035843200794996795424161288068707655448629597131648252996220727250055316016148483685401837011751807002017294962966520295022147089362667495077577514695062613270909067042768578020493715421250776890085602204769876845232454599433722235571464258752561623329904331455749947353510984475542568828706780218085155308358065442635152840270260075816335557140282654290599417297814691704974175866553376547258929620182583394645816029976120762478841884401674421636295728534023517803690185044848425187516489726340167755524589250202051931995221643626907216983644326216711349525921553446851890218662378389274940663130844520537639833384155510403390942846206118493971138018667777025483791403126399739732241360538959418636512785336532878332964601388985955911970434286143679241103018057668789069339405135909143433886380682320398726648515061939395030021116244579374793365946905027573197671419807355031522144604231331036762239588352094845020475227682025059976526840445822615476815538586662029765778996660347014178278781145464327679049280890674080604843007110268476072118004614989652181348671892485923189110308179094963287007481328791635569306420482324703485771337467473714399214888726695656277762606840902923489601271116096424240257505699111081619418230323423373867704940079192375506098934896079905581289386908102709147632949529867807356389369567851991368569988774211971768462487069511530882168593140771073503135000565175962256122338140284544919243142440031344543902102229010736676980978019085979948203977848189830322494866474268228912108644913148032806450563005410707172088094910496523089798904831107765139867977406505804723180162300124021159405118590292621571551643070871976372154110152859538719723854894160039751450016074786870759614619840845913719207072695501464489976549656042263954005170156029700160405685519023194771290598955577135678214455788075741254719965328985769989539098205509423614304155532832710434263061460854906439588131602934941733868643380091686577719333146934461347118345446719243882832564301797719396855721764202204807693685925377711449867506369573608880738720987268428512309234006475311080002206233002671115072936269687998267981492626220667310921197834574811865834810010340346619441098511806535766519009626681040038593001750752247319827700143782156993634226940961529032327266843154183564542881033999256303643514327101659650810352822648239432939246579318794817056113706234366482194033866543884899065672031616877862536509979458615539965450681018618432147710052218014881538420973783820346780438574867321849602279680782429872409903752463567098281455350367008169945064407053709784263573517324352327732497024111119626104933595088055974664705565998855078116738309449442862899622480520527435395261568572998601993110193110789793437662143003617294218667905902445946221071168681304251862619262630117973337075361299346279759187718592583580989833788565449467851045311662521473915485812751317614460327535738585370919305521013230693658123673269533389753644347026000837817380523817752381310248529845296380731309328113934160584307154849653169586614109889682150461663227719449219339346430558968431950456398841881690457510310445239605333869120761701084222390999096435427364182411135393546323762569270806238233032527339955760784264491289520035387582736041647189425392508284698192029655380479387197522412820403661695448613377516857430149771413515930812383199835260060802186808400059161618249284858766456075535101039926642200506058649376195803867049723274544959973979759869614820940270680432602795600532205202045109652031939551332632100446271812550224783794682380044843066359033485222881503345701243037456605975740448970050992390864366799801374455963455872971870108703660160350045733892669735118363757517361599075493612776080938963857694319128485127315775767741395273692313660984273992832432513395940589872657031169508654665883151945886296326453350292049690427066208063083140921662742364603916429800295179857276879728019624792298750290010467540893754296798677282280605439581430521836245289700352984475451790944542193324192854448211048494097731392110562068812973310954710438368968313385866946280926687171969693695667738768973415540508685145722816121904191369514027507228144867493459010141486294432061598766823958069262133101425527483341694403966686969326069298684753833119448407789007797989929967939822522532124019850347795259788038038114718442969928778192548287680283859416762776888468286542029279284729112634398447793545068662670686778071135426512766906107911073747715188770801567580573496470437010938573986451878539577780064148649790513860125650307961324970387264555264015061880056504730369678656878038104282801848175074506231278824615701584934496796598803990033973980125980973948663948799383879787347164064680487051934164655208992790627708104092483358928030012251269227035058733356433413646577040638776303737292543739703212331409364098714677517895913074351136777701053184217069841420895270629034685528173038798743948862201916585255315602743948748077832185686271895336905923951527012436203327986667169887632903468273236420628353997187043669500104196186509749631056634445519166851054342046479534777600417947665985071546561304674712563425893741896211565907839720462158941041663086685811645499092331420531857714865104318231989523774667593730643649875395467090003800974543244461053027600178690353773180232058582485114153196381969592849778621118826725127543913645721409431714188470822961720921335635951232789408445359038080878725056431736960053565961954136813116643783330726435711603215006488846113217800431157504364455728588226629324819725676173917669849791733961959475373805575195475211419439310264432000582464489074850922912469657572049731192753641607992725285847701851256512383408156861190551979117161315839014968845103450547423787589116750131263983906100912674045705105111912707361707219154511488820011211166981185487017916131859306129939487094568856682093066283915995565942307549089069722556637312132201960004553849782689557044038717779395123445634716972297361847892931341840865588456647317127225709117488087772898316947450041385668757160472341111293352005834410246185375619695193843665044416837892561182874568796653632324039438646928181904588649806699011791299001602438627727996641216606835918245129577959909493569802603177270239839720326963864056351797984920680488502912677562754748245505220886349139849383258914277407019498769536513079386740157903587704707455450001107649149217887890390489539439368277310648322136410397458304045144001894264862101992729931075583525737462618306897392410460633071771349665468070055492091861832450903041432748251526551554913540362526490600025127724131448301462943641047167529394655485978245893113377961016070472316896529960656234371830667275250412694278314641351333077984182261732678354142974684123275018725861966891493511303792171055832837785103201450493943153735928422100143378615839523272912656455292759043613248408769953377004617300540157702363639278902484043329988712398069182921497184223928047907994761968642118092293161167968090184818660931493814336059543032156339592209077914151697537736022046057355227860097986731644996373554967495060985449862169334100636355643884039800642822158600559386655770306130157540325757097850375130114741767396821998699997119228295893848969374167768855001158049034501325911255037691513429467876790203124978214389124091113223055267154907156311709009839642359120466953469001322749623940933154077834047982085367784130176268793813875631309293206690755161926659568724179486730765961834522024226634830252226862511414061965454703750881680549113087902724437414140843857322041421132423387048960279831994509034947726225465868422062025650099252347839683206304683236150780755454943266011732862111647290169951317467832965663158002302927413444978709321672917285586776835789101649327342381198444172866747153671419662636459392154995053106909058991905547916311793319306130226563656338779951061802036717093548061924167105469876083562506293060996139950718944794537596089148297101166170257591753714593198757453014422491397866556649138772460917277342735001486776207046227384011053162948008422383436455247867712825447621039502683773572702597350542575293248597669253741979348216986067797441754039304583824812392964714360159475451151002253310260562862990425274076006498171930292443649387536530039480942431127578896593610684722836302285843039770195230426890531058155970547013177184296842325319210777694297289980882145842485221541316080681936873300446168678832484052188276619420185056642915559772688572356403376756861082916663950692135740895146814046844757847157154148955016528253272646262092433296818881927682581731154756669732171150913222666422799407349177430172378492681142825451404678582795397083060636371959051074183035198405636640745148659811877596324488386054986805468737389486805727944195810619848936792778019405240836408567191099707322134659844811012511179905937917127413136690529598534889544029631941324496558492853867968962571266215468267505885176293085555087315720319354792575452912360352215386375550490911602181265231442524913826942327536198347609509992490355419942101696997436002399590211674967184794878785832013910699385111221205305318849338975051045620093424862834535780591346157808554554877138565754843192514282911785952461916670050747173805223953221460828957725384556309743456841407285458843383941162735796695634655060206102119990698812621799037628841865654603188601761483784721804257865604078466866390858692097736051757974724002294251672243187091233914804226112597283530861358485170096918859858463857023182908351792477180024664444630231157376495095801292754792269273607042873653819151218287363347678156993650377476200467697657960193998416292290495677389417139771707068451364657928656369209621639896340388259480212849558691893857242111485555556913770435046685509831456841973974140399349292463741539324221133623318258117937925708020422095674465141084704219963254500519863353231779626449237133677390046413833631345632180051635509174425310696852844783034041531633932105515252797597016873958633138660627865383584340953790011721531845124047907452958084655417484865178433123312334300297117281227425569589728967570029121382946135953527928479994705081014278992360621705272945452166636755546395372008430944029732839671591248202201160266459182087877091358058581918429515051215386124722863851649823824605201206795007002503681806349109852881611802545847655494046590585008980451844663120193846139763363853198413277209966889203988752535085374830713249449145293960908974644950905826876365301514650203933914089562655932873821671954733453597436163894231096531696014755655699070791149503159249348669450229679876039748603966145834570090342249653585688059681523559673985730327627018954889847270886665568689850167537469756563654427945627050300247549423924635552167665458582673101710001205206733297855913534274574785417389392357290063848014440085233357209889978418513638978117496829625247310545471091457739543522503966543226933911489385106410790873467507074045971605660117598520671087728591673228274281269108400688918939804005705653433409147123289833284713491552525560292051358469324826733535122547041307197717181820076445623358844667058964181252322920455573090622726936161933147043900642667711951359609007946360655852362089147161364112768196652507237116963555920349054759747496192775162938671375785240648004915455701241049542668580719071541768825899052712686097190778688540945015680893142471543000558956502873362020743562324696853375947302797059659365157227823228912890753155513506791090529242781443201605250141177291364296587544754931053605411374161971407637170352302624751718897855453492044435560601994923717610116025339708427986860242028634494714400514216744198979958393542194057195195238163442985098554402537938502610766602700458375555224615150652970284954814341265919383814169847020453503222064890162052684069618604440263081398754935736465916261028231401299420234553354705511214655530439928880963000351292762606220455537582233798958984798927828659966709469288802173838968219524572069053398377479843746254578662181949621352487856253710157080315290223038107663294982883947166576345275425353244699310749832179931290414939096549997461882620259003865679693711930797671695891421303982201229735469017597428190951919073105712519194659394749980557046835389560193305893413899378897755795333821975626741386492554808354089749253539147007245685765392581348414046106438847397109442807318390089047147602500181087661941513259256290781389792551895437902193986898582111844377022103835999110541721096302529696867168740783744302148581100359311261947652771334570604720470020877199941112260318932616610806904016128570225107173887900604453785512378961011398614212544790075746855577241809049773347065170591531725445414762460517960606828191348783920882527366494837653294472897037610879485540238139261080902679955831720016685371285890931420048879495654928203895632271778134548932386329774137797847324718673018420038938256034240599229287023845037813565451740151813602488307678198787239182412214339788036038693019666902202443310297082670963872373184284599057251210451659063912409654559372319500861776910183548516278618217526894015485415175416040446729535392045795737801255619265630614992665035406347529234062694555336926300353084575371764484409713648601187226541180479924021466122158097194910348938919010630350001697880545437209353662376039227643710812637423962980955593032633991028217854892159754592040769009974020784153028961011478153116334297131642758014310682521889653906910368977483137213725696023076126734262239723479780068128388215954943865912538957055403183795531269600456069399022458581326564197476419523462032139092116273991618673713390782469887256576585204497097152608014767144501593212895558270587796371873277239884662763560603631384439836921621349303117977946031677242129987414124993459225430887584368331392838945012141004092975840338553161527787503454003028597390339223199340476129338545582163911781788602530711380255632589535973402159352898607624524074905294064926522588602686724840924401541787221924614989005747770449216975928550095962437516891341624103912143541596666333725999495416673694849804281539710290243901942325637962434284068566585153063636377643783869822365281314389996673846376016377493327534636991187791656057011385447839495133032795534298189874794324065664111588206873016296298367916131348518648670222706519499475353328434257990059028786026570831867266434175843894528291096136961728016075760021887557588371552922226567135617873280203159144668914672166482871380641038889409509251623693108366219849397186425070230525811420242803495630379235430171676114084764094618324377948868762981460332380600119779934505491266722838112477000232088007055760846306367892935193833245386900767165110407716577311058970605482214204408126817431574672148999696530014410188114342540189298121838105220786859008826584156857827594849371111347827454503299757605107856848198368124802646101988201925438054679164676566041034580935239627661446353541540381096532357620646131936567215328964012099367439908186365170443622656410340902794857530872157234155974256639252955036095901356318358826393062172898185594522483707509153854556782029574005260333418789004376836202048660496206477965377464541233875913642591834109602088844507886499008922275914928743268299912505439761314494487951150780050311069065361767618479051475336754629051889569766667935223625288567052340293212154060950666361090522089943082033298233020887172557271775636963438955360035200105171681737545971785846632124321963683794636054071538918979092272069629689757039787791301575360072556061099059239514039872514001997845597579626466604462704217150572470002149918373392201945989559089494514056221140854498646904336595619431797939973643965516505320012896923908339873884109390401636716969916217205290799092828705404333397787568925451311952069970290686732923784944540493570178504967795894066949935956404653410105115848338446656597626661527728210700232558689709573503320482177817097678762372204499445563556832123441995676681632739103255832806690586588622526749319355563127947239041231148707650728649425950227557588057627459214615841239638083099168919482517747714630878864129136247256415160469342648953451953488639321618925869111789516919440168862252262846201276774783941673610192342065528972242627287801445317414208237486806235266419578172068688792076492485831098740947191395497925877582781378991553262591073753352945587991159899329540886621410604544170518038686843052998366984745773799690962396752100697788126781417007758931189830312249147097537543831222553906847694607974205387058129414728054061157039257367046805354371750128272019075196916965090739553162934724959209720829933113717591469124765193126567761133729355107989791319557260553328600497367040838288217188590019371463645511333186869648676080216773964983130524726211476930774319043403994751541866545083361534017787407674350062104027418365487777645018902903748858179148781134606333572103043136731786772720670331496512328024576513325116995426987015999624444790834724684201306685200236401167935114775867356125512505854360398819625711432235695642823837418571720129033699838556091114752827250162409793699453833012083965507159091021050068619806438595713100121680401725284097526395973051379250788790409830804817370709215542595220694896005494022172439617743357034212220587072568529741814933305708435344576236356522896263055189528186383993819466437454305006494352041235444499302246733060157989445014923062267406470185585380106274851890363894318737107751433914613494099280578200385231118666553085461070670960368620109479457485176841518465777008184824833552776964485043552428025365869773078105452385131091652798528037055447561669572255199503496087192091153306680207078113540247014937693790537978475797764073327646930156466944818194309856312937024198310069873189543841666155223343569516830449474411513515055146856139011534209751369168463235210228876669695173937520526427003511527233952003653201839286658014528961049677984452002547110209455274338817863157314140725609245287472183496951115533719689671849788416451316641656054252367946994897231122107824012020241036775256134583527967591260250624651943357452132283290228626568038895657087780427432484316727908130946491377427228740698093472179166262442776821513536552911821392168710359728034809709849911903398545342263993166595604795408326818118775599628391947223397660326621671330127033238125977281907608747210244859071022554462282282674390689705537756143372475027577858187678809163666944642843830133016291027974656037114631107753895666021108622088154707965951221210565089567676326949430330987739193582811889085945725056002844864864646404759043602068036176971081429090816927901179136023467592507372715210276491768475293148158650875864630361443373926026074466643900347076817849235483052722342352251990547593829009503732685325342561446693102161717204666839890696513114367377321254283449467760176339557464149168575830146008454217973110666944771843254998368236217620396674073044494467434014734199709593302787764653850473550870939854397945839449246892837279322113980350856568681660061684437004243049135361308964330778633100162744452763348509760046251819106388907727307272877994872092301438532473348689772587218755295255517051843058773959441099972997836940581182753735650600064537302723050247690268948638186513808584347295585503299123848022183348533581223549915793701501134105837046428702077698329756607083339626601042350405719488378418399202787275437066841467346448769663622019668097552407214025443210966698384436129984314103611184845381310054415793951882403927381614632909552592594563730305452602089299294378879949152542586852644642232764610919824028517458906757044262196122381314458142410853040335435404990923335918396450128432913399199320898617599630131262045330141905952471417069479122718719049602259954062820847975938943322190282116325197021456715224028673313336540909731071227850284326985053452920857797875278567249117446178037221468691030789691845368334698078892303154239992136688562305224261305411918297271479518412929087285408049550824658219636592757943580729577962117536171265649017279279003003635452988948996825108549573712991523093779122091656533943585151809879756293643949563389623466058488599795937178433799060838234886637276890505582796614506383300344262160941539751932400640454366248923538638939875849887415448446481938210326038460388965923900625176703150409138074284986792885043803715775755774537684709497192214729769283550976227095963815598362319896956898019612114797342110686914864844553064380139233088159635246971422617528941337923664670081483609399438462216554623630078173088377864842885542857279770447867558495984864276269872313823998936536700167511867647612821807981148835484326430533811731914832751666037335733611535110843569752044919062638305719263236538251464504956637947516909757253644778364181817067203533761801506308221677648549403819825378462658601407913370852683348368952114329522695644776060921187603060718817627283390894338249827388303322143312099721010978754962938949074793763679547973925290655030136188682926980851188283746494756930134562515213200942873489824362028206656269385232456167844260245898279679044166717607412887705840494242700293363875040407878216567858532342846899696104107272021187597063526648515107789483897531078387486458284954958789738267659595480396810424581065786759131316863800098115647003623328178096660801897664876009516139382482799166422503090091788263714742945285747175744739758170141824289704330326926525985260355177472318399189756097270257945929399655660638386588908609047958999278351285310408411741402158336133931356220528081214320869204364558134238110386018228113509952196527827229812295156566727292057934560759334963488277771464220721486727445134799775807466822484649591444176665723968269817998903445769984191661640908134861314995216254612557981624347553975693909855322580835983035449038768288736789123903016158063601406863095063511220722882811139483485545187424534051064496785176612817474627281209243753659920868680360751778082737963328623639203092976065175335235358128704603760231102640449219842337633484664991585437061014107530344655400941556864972009261307066635049748326692824865602474597126247715575930355931150673065875161742954373701493321424748155279407796009106697458196778270427412913398352999227910466262672590763401011996165619293421795102116527229052007351761411271897473615656433061843636910610785035516025557627875107385193941285246407847297042114801459393029133894431306904854616896659986066098988318432681062427986389464349784402374137806849253525477488228618958628430704615257381419923639571753173925037328197826131943362212704001007468822085977905378815442609695642273111121480426805687813651333751932449473157952334593219238296080125998680309093333365877182031016989374169392566987742308453331238114325292237034414686582166188471957153660049730802128179405391920388511587198137681936977200242714757845273602289641522405302244759025516668364016745012664530078539556423958070239984627254287360716303654791522090053948332985877371925808410079186437382009517911298070405830798757001050831661138947548376338183083425423843086500918801357035768721773204003987062097570211769000446608968597827817493251448004023543497041274216554769924946713948608893835306820217343563832457919888610283746418871372952731826102122023893931538544840259892640678156495089552818820825735216709762364146955920757949725537166231021793322946426959466100862176094694413621271130503264504686960698373049129230039313757820975194839826191220541625209704846598365290686673798574037071542974654281668049058593766575041848726843509671115883720551033929504895183396469440231817831568960702622148500188057793615402120513003092120416887280529655891744597799042365263629383536058484803686233907106342417963806103316155238189793656502258432812248875241459616869999842294273521050761259690336754524735885564411276420691332968726828035598226112261160246874568288078449069504517220922328189349786789738619609148956346107698340273530133067028823398612941742380105832681709860792184865044658295852700961586520702028597788440764792484302827718544047966769791347553893373285860694741909518327194938227312834442685350540731856155170354451645643192473070124458537283253203050768302460723897383041561987871506037969483058000986212861973857386464520684780597359591731300401246349297125770959080977767289577344371326204891876751315692430035778560109152923168983735066583078559315500160358825931546196475387202285550721245239856134737644167163926417601826206319883354491648309649315274249504411034334700778407203762826804281444383381312698616098839955593003267041208148935049854134150915008913047167592897070956731555428344030485165979672277040350560234821373545190149717011213086782324338834322354668420758414122922727279363043351781444508723177970831320931357294336522079172386260304535088610139367444596952982578320789417668764367813752077574693830012805622995289943754716882076825811119504758634816665626702702837239054658637031355250608998354238581675943065046426195496520536153178850284658891850479246421767112546428566787385969955809625783397392270723803792485759477145575697618280138574065166488437605121444876745703671574409258315650112751708941654105755655384813066578350183133594904729968331803311877134729165112168554738138174264638328161102216834885661103776761489333353797865289521169470180231071901822551305928883398517459663596203635476977039849894724040701897507964142250972637682192725493873820665106585361864169764077965306473650815829982384915838150175256679730620544272651251100931296271652764980270795401488024385451689851339932156294213900649010433195116682106520737207481970152803162900467120524133824201005800633946517153030010699348795990555475946906867982184684679878713144096387499533055293895891851971892762517897928487549280881356208294951141234153195641228038653373800403180779342676282638328493014422471477485226017609602158124443346072567927492171616265271111522925679135906844754500830550966920539581840300311480996839977880455495883162241258547512749639678436590273162933408249993486521910349132549345877422735538023024900180829222426277626002925661867886479806308806310987683951348995112709058428703907079133219527327951075633965472404926249094271993878802926956424687350318178265322828717597562066804081250295346063574900073186052501915178389843821944730843117913427249925513279227570157658960982534143515624908998319351526993060456360447016771993964386182067801082421789055543154464602353094258783964757262635007206469254064001989260415925974800080391981846910374841137053561872967188888637139345119899739617761565733884445671300074867564190752712002200432219214102863770608453157453384841591136164048588379711378373238905742529711133543779895236584024653088303481296746447106038762683954590926537521066339699705505986948314383861603840965857104982159687571639563494649446218232863179575494719458887321250765610762971549464958544933568418839628265323632541922186504705206070667311094176692021774622235232983635033539388971730381971305658407003368956015316718124559203542836116588021907423778022764706608758861887478271332581699396789405130764622231251236856570563007648769743902039710345980716605688974631857880683799625221954489150532485335037043656853228554276750738141273257002318546886368624809387235100169061330673550530124144510640544678382179141928949661858360354554134074313391083112131971595346019065672658753327629890832428762288012368155858247423211382356867567904219181507645741091831996104756210581350881213478667741910702174984494621058711373052848203022227252132684530971759423538172484466113472927765727594024708480954030523810295453064604565228731494726532049576934544760780874821086262147510712600112480009885882626143318641349835165377723565733625755317805235039796315529625682740952391324464085217247457234375966218568090077500036944351807638920992631671291459401569938584609885798453397670156846492590902236652467668415708655920799118065713753447141202019533027413581317459020672083615787148394308709933323750152484941385093463243045942406691059431616877634257127069919529497890187335896930023927176807990865078368127030295146736965251645071329641417920098410390567424577665626239987960978172507183606097476924366830886085164666129604651386669299473276605024661563579384959321059349958269827863822119971045269969827962575235754468531588229237956148657745698204657096760644904678342863105714112082239729174764092996852032182875881417334290461125298890629254032141174188495791515616084240605162411494314476178620734547047942863004455149456839820920232997061296580842164712324725328832193272931723874311556103410947240351008094973746078553885482021495977847302139254522032718495694470141048720440778276716571622278145296963360373567769835395957320358093300003624240478950139400311010144925592745576465064422540252916901815334137650470812236777305104277708649647548573572651968045802728050916561590523100294467661846017527572901910310605768261066621789216078086122527763868896410918342986590264067196856748832514367434624952422937804944876779921075408973564991849925804234134069740914398118255856050205953858520044483898648083600699477006274513507417806636581383205521412391744755149378881975573879821966713178794580883806006098754390540023883895400424532443433056964024578464054504556906815411896625186902620834648002190331003315126107898197245472531214735170458234162380870682817250292052700411600097405728159624795437358696474516655298101622209404174434553765925084506523574957994776911555217845174673622672316844271578790103290381257222589659952676811674926575914900951020050664814475914543161205128253870186733569660727989575136283353782628650993652842664129598542419546098111442595052024122787121230538136812830574671351281547429855920797892015082040010808703560688876824705888458860542761886985399628093899653659314555485686373970537933777740575183418496179736419397076535863344653875601317776071035784186771866816817373403162469331523296816196307269043978454347538449207830569470602251462656036978356298396060469263044906544954020442096430786465398194680760588239068544488580405707767681034206697209563573308692298066272812655426746050185921005243461575335569351323539759293411592529512974608054085258936622247850834609128774159671097881458998928367670579210323736817177870263864356335899715064818966089443076411617279074682609640073651269561378405889149366860904966298039880545934911536296756768233053491947968406411508049842807736961781598719809280835748154713330116595621352764044983486271079412741756156166496008030345991895355607226284518240942748678999227204138791074523560766514848220768301820695755184707741573449078417757498239438569731689110601690127571740107305796210280848418862788629834366106909221204082636259547942397607642155966536040590495243244809306603596820269687941488860255373608423923766623095318673401065319932400257159399443067708833692334703754535878121208468547032446724243628114931293876816576672225859850292230829527527995879926763185707780408910083531031658129232376540878747925317547878815426953322147556120867046974298592657568845208102689677186297962480917319095579112234119473939041382586614561958992368274443254432941827780949015445556190125147965076623209999103834906668947187469749238732255783428519321289651029765169502689178541819131054948018494100877255366806031992303659505376475738477409772565260776139619482997670409293823156986947671391541023908497729012683147496908328917083705030313183847278929265727039680017751116324293030006538259363072730074623320456341628271822139483857624852357962668564611807144272578871579812699953047934725614274063911044479354259010787775022863962894428497507382524380456087406857731996804697069912095396224790597908657351301355500588509908769325749808392787943669423957122542290777621065041702722189197078664186590224629701162411808832505182887803652406104198164063673319195724613671616391887131629049448701847780516218567049243608857342042274037199879903209548156486750982091148100860992392483284313555184353606339976124549383707175352103739514397229141721082410578286779237189878055335009917654317481201350263590908570673301731587163755257446571728778711121789610019200644026743606279925863512344531575606663781768755298269387271395929620344671187025167376950508357934507365530072286012238641009128184412561464138658373284428838786039440798369850257858929658920293937147206570990027953002576956194984021608910237513742552882556335606335049157602934972109950504827784987968072149680263520252865764876974232826744497955232692257078106997957002824557870054899208601700581782383655559735146600892395170782626293107979338632217415865441277803254793325169269887994645046423380250163667359947852848158941076321745662264918841583862801917552601159364412462984626760625464225198545493030747465130834786329778621402188276185399021423061186605450463402051030373907599344340081676088825025778689573939603240163804203749228183442481818460485685394838438784427497547041569817633338612863696305819536896887759911413361012070996767138896155485148792237267099431611742002093134563189500016019529994423657505407858098491275440292747453159714798800205092010295535556046797825816783988598160421249029330522574184607388643191745590403369546748522129340805650453757487159956673587402984366717125101074602222548868354242762488214909952165470812372193400518566733074111067745919324870616724473010870243277322052628016421943125108462160990804458191875880699715977752483219102449575750941189365455241214690968892699609246526957620866493921280135603655622980400717783309570971760378815755953903899294333518743717009778052364548006559387664377583859116865708310667035788606123671784884929643925396444064668849286988954812257916066572210324994033209841185285107657743722538267010804729342733164668110927796347539819665195525439588513655883672922162153540637758116930091209557208065193932459662088135944797701352414041261453720146461485851890156485891976851600330402850526124865892486641632310774727767388497432787205015200023121616054559343921818183985542129213450884841775612614442704807698615650892514653755282226470673913337524127477978181294942056911973022607129774254689365085772996733301428635268062664159187796564847045442515092078174953849547143203202988766380530401242557878183158151090584552702189509304410997515373074891751542907378205479616620764741627192573893996011544707949676399882916132630506119312848306990269344060026755259755484500137088916442053118838039522248758545779727393295031820395253563069000208728861164861643903934641482480344468048217480065281853099775063008210633021327647788622683046584930281077056532976719219066671967489536849292423906360849027750333118104859087772309013834778660659433846297271242615942375567286395139301639970273214883777508886856886271272566467087564886161205455602870371720112774424628176212693087585569915273959854939974774867417031107629086090575090763474246259564463005553553722932915513906818112513595015464533153558238458424541228627342519660317359286000803937616306533127975098966879695175769687507070537344417664837529177939497505227302061166122892696169044003569557285662463115696335088474150878938029487586903337559472805196140880763798975203579377388065476626005057505072187131227213057850183655368502542474131566592726423131343927234768104766400878941992775974411926695347039255572146403040058072949735246543673217776235663181504689521078884970309625693139362682486294895913536388517567485254665652459416428719583068024701773794237967303481554963152091030714969398221636394111363655832818717079865418994987598219002706334458810296657429940932491981014167361117301922218775565209802181639731785090067756270599936778853073461087823875643888845499983264126737441903887790645571624406164814213989043721140643746063431577692806604973989123057954508699926626411158630241205092835734550478358708510332527572012971669297521465500880435457879879846937052337547119410071816486844181215145494410250888902738122611018995167455496098097958188882667057814262044185872909067870782482333350157844388329983006744016958297379067902370691213969935797617257439154395047522254780490444124817063969306292204789002338646909547323544490278540638603386609283695499405550465999109778162053533791961894372214526523753789492276457852872896411871742296890921416678392846423326927526711569376317649927971747803571971850863161853177225334771949665077119389634803552904246768455286631809556987010063829898041172521023076570138478619160599848518662317922277527882011617247732873216911538632485538399205462687498376886462591576789533320592410451779585064702181252381472532284928568312018143859143034998727712214691528872396552768284292260713202498183361935589011685388826267243542805295583843583277406584466678939454558410855547654965386559696842774614259627833164359672596861292383265587722136044625879078885983725062689238089718621346337169492775376793786928663193037235644367539491530463360755608759104931125153720020406245698322298134679028173157044773850587059659835801065285274800223836030238980877201770139459523003676226750739794132367324461043479414450848635448520131873828179569557976508215077410793581044191391730484989294924494029543414700366631420400130573625042211856894625770435571406849092337623585884494796582947772767801480006461252189501227589692341898255745535903464020992716811581506447168774777111808249010168453808251897361052196589401906052171116740643235426780949575650403889075350600514230101412969330313823594594183938988797844283071293136918075898674403559191152373667429547906603890977797736176612641547072251478346107093506366689839566034434668276597665713725044163222317995235086018875576586679547261845179942567921258338476602097735413954742067751327616758752637381713612258246431673508583730249001031303809426904058586671126510522670605548947869492880482035871925027329117541792197200076819771457583905412658948491562321349907765435399882718587944925929229636568795093019898395544409411277105801413165344123292466694377762165744296151389399091382702408568896208248965718091852922825430465689178922650068894542659973245041986454258903049317299108935565533337239848978890329311069222276742489092841193516410183066322571052547082815761999383317389498377197506911057789305463290105788473838024030518680168025532249617311396965695063380726669032887851482616128722489379256203698057863784874326180543256850125464759617566088827589816273965658959299520236969653472100375970521774335895699251622067307833143305710340808289183048346078673401396474641010912609203736375284845831363592897777053871409018098282483226466177725764327388576795578836361989825535452595734417081834103082248064050343215686451010829733615549389266981577293403058109169603837574713008401885153557555969204122123924353887232542991340992790580892227062647580157661251430675911833844890787524996954654083030721778112656175994695502691108877581244869649238817798146853195235919962506710505889721532427231388528245175410883674080079934667109802893686927600076186882813560137951732211680714302665083111318632639801759118265653972240810164561257325896731787653122890785516400969618498066736334301803764326891197366858213976778806827859919038299973173325209244244068610719004546186710124079988527872707625951058821372831313375983906946593263092795057054786954021200463544807266244242949184094972658552851300471916693244414727872183998467051711599068752803377202749849213789929708810450094553846058631455914636157842536771790054625109640269862113087061490268845244292274845293387332218052977670325833220748092852931753403171969375244472585960976258256286854477408025481277488779291732012676650522009843020996847764549126674308436908754189096234024415941593677633865504604034029216668484903036928706233697555397165576087627301880372597665355315032663193801049069914109398842707504221328002690783715266476915786242932887822886883100422890737339676811919439801425626495831898791962598363009364571723565370309039792181761789672827403478996742080027647993816876504674277301046012087870654915483194798624437937579380021658055546558214618861914259839021472655169103031365291746852205520001873945842562969707346258679353084768791368180101271065157620621333943599117417787711194924538642115360732265245587967218538439314289284794688952208181895307441837906812500417652349193127393496272490379058398663821105151640956145414412469749306406454880894225847329821564988826495079311180561493600937206200864894555339487645499261413044103586071877831424081237325724669704280079866307995343919978838962594823798263913436299339397058588026375907373568456303465347250397738294934712526240274809406991370014870189061907591490729579108158900123058899254968314818828058135137609514814513101108063305349541682196370610240613097524465848015047922617535953369894627205214239506763996142111819319987820117380361630360227818194473029363567278773514542305432688344659146917323962187235289409511339583180030938508961891822438981792190363718285929849733298835743966051274801730159333126754571400134966133282699900345254846933023871466230060664014141731667433048495622365316777571136227218241278901356113212039873682012209537324379044643607007662892724612462830569865833771060103143139198066436563427094242384292996641514726776048015941511103732470842713120120178174888109782195179209306823758270867392223829384639528987394478011367035816766119329586819349913262162371401082020336399186149014399460559310073558253635004805295497021765637931411705949234290184168203524232698690471410253952650819398778064063360723575100756402934717318193792080624163408441998494550967019403220679730456037336893861002736572910169739697377006502843941311572871485287499060081748496207145944100035306958694583599290327941998709490137578877577823197300876094609323924492506776576191530094980519460455707593260531566497684050343905614524253929991422482421878686322415547669452594132803430388529026527607696118745198741850942194676780230790038028913026966904625261221198151679244479487086411446689331475263426460391072965953682866613133839893711316017783330469675369588669648035946064095144507697668953831460980681405055172574377209569278719853944050123114834162145900516676007311241317518252113361801820307096082858171659438172456566357000877988294530502890785926563077463910437091857688900480791691235191682792414515600488076093111076543833315290383082966212160178611462282464298528518950018850623001932721944030537617367652251775891290118918506829558038878886318410006921294839314047676130609847516513791617198615633468826542519542044697170470062143494871936335845372508035651640976215830387854717773856551463607226660138899671960017883558310034853311097575582962542216234793865487007736265963906592736551100024574751900311333883550304922166203912690509656783106265369754824555532346577653400640494720068182523595024098843964294502666387818848334754559471704206243106867588506091683014158501877500491298764718026764532731385606181563818659639410349970234243868713491485796568104421813261747381899840653495320432097402941434982554213037855321823537887558114220092026256365075625950929617198171671864244096224751586537248233750994187284657712192601794887699322874808557006726690746768296731003079650380136437370803693058626188698771948924414249169662816506697086237426685588840162881630133819437630745980838730264989817986481656706673970657100316391461016018362213804945141548743164425678576261442022391463411602141131541329947122163142988548868033860807837939203672460644074877114786828468354004097576833089247689906188436852532643423432468322881340985323066146426172345641809866364470829019146527050750367805011925565043083696361295036374763970016506692270479845011028280728210648756832587905008605168975345305954009900514797206452646985078084457619523654885219619858840310394619319248379393862584500119672400780205815270322620760352987791804095170390156939931970355725102346921741712007658710450355918942173089166631860489707923222781476841646268453503768320774325558982791874762648188536023190584748272049410842060392239324781290673010452681678904637478727218624308538597394206474829978785629917432447827944289875881792942445191335883923206297019447203776155363075457884341722686653659328604610259704829169922774263675691350273853863118885845375181312484600167518708296063825282857020088559768517738893760814166447331787728746680018750926314189540724881560735278206644954707974390816512599892459027828026421193971771429130516330439474775370162310523152488483104497477031900218414292401732476354934292522809217541643089616414855791527182841720357674186493041130247258365843829065042539776623702640646290661041148235411289104342010294631195395395405023585748412263221589948031210962082674519458931292417963362917277066556491915451470578787269170834562885271850353578116269795376721524079432406639565649728046811103589969290789980281926808971399685658435706701174283764655596845448831721825960903084990527166736926628701688064063638084343618493739458689143501383772953468907760364917097213190647716104137024579229440016313824151361428807340497523485462521253688425566299429054225865236616000219487412315971980073244122865049653751257419435535959976240187944062005361516102715333771411968488339371471026427107823951892339705170126487444765838757105631422468756699514280800612094437579608533200833137685368679234199969521269367127644724929356056459426712385874340945136913995242149713611653181746538057258788562964052669909643772285800685385836148531692524345920776409923827227843014319402759949697216925933306843100987292262011476966022799474524406091932958428357637960636464882881470828044935011593274708136143530106886626830683808148089207590011591157557005014440633730889788327579449871133784530519943702406643469214624686927847938542248503609297433610230184192996568931132212221918379402908308617484482738952815945650827967003317063434202582398316594026346118857173653427397727847161689548948588253655442692287938857442034095767576652537786669020355212388866454153933820599340595466167665566874965741380308330400971371011210430516327019198863673501043364494177202040446173294678463515705662415172123756303822593448876228547730315811103452754623445808130604430209734873218579561511920868377135547576112276239232974304985356718002452727321096248759583851976289682028846714922502848528459345365944062306107575939277988636124924612060674078179675520207456026677609302529569424290382327846049200725082203670941193682927032928363248895946663260964351096068186481526139125661611413614089341755074834759070838677441329459478702185826571264234758755020240738402221003308017999866876565782665866127135200834781281935279949858246968785039378389488734247370242843288344919614503219811233916824678764240567273396108069377166590737367486657700654682931674660795018367938093153632421745522771522835115972855216340633412491384804460111972363293696393559394897140158629975344770762754599444265324666252406604448318360547136281902707046185462296894285435515532499243689460018006935425542504249300810592513272192654149694147952391515407524322016854677014951401842749048275197680333292056241039679705682895419993018273990927762718914852824161200014748064678024136622053064398158556408150809552893092678140326392734670474594922358532043804440718877904353577666118513906920365980937512244022748250783598288902689844880757283401049114569583619934754389651832924392320425183051345416179697384731241317964247648589174342729892520706799947896601980690699134036334713665123889884968677860110512575230655533888371622183343814392417671765482051623273645948369175276491895810403822181624837430222305721731274344221381766181610052502123668032359940771588277949311795310544095842594670064071723567517148802743749716010240648496739722695585166175915621273895327366721389712918182456492308350905576887503211644540595719510641173479996542213070912295803567102246207491623768790220981090897090007099849866974804419491389859245350360988090770355364714042282546486218758607113027008871149835234971913027477566334178288292416347506320506331325803080923217219444328743489981295538454674036406555524081732395570011221961872087694819301282492551955617626550880369986680474459785695913999289969585069728814533922673646264798752560043976558354302089427426518302510494239524432718001225694316225091551472070245572956669514632970631557486648046235429123585941933795808842473346642150766923189689832759859465278626480016085506800919761986179263108106017690799307919527290820251258722187735908159951249797333186067518743290827595033570640058492201575514177867669034010437401095709030455373859612889822317692644563689899881788092980137479992232828048328841978342940992405103565448184464640595945251596634746907127541279680718272756460166184294334366771534479676723606022253827645496107114379364031871762463920465473570089254730005551915708449537851995977661424458640486596298970843589602789635766924703082143368022399565795059776364400636672511061678996261407215952920189039605625581373670480660035094701180017385947884072460070764415880919239114936262402337008661588606845629805674832472664609945131497192698760619675616498591059650252525302471666925479279157748586919075698051414442451560342665624554493276774304769343799219493940435376938841036493095227234769083057771051999746774038778162584442417151515782930506523564836666326184571001664886213630563649657405031264651326467569203662964739180855850888149244296404924810214757599676972338530424484880600759517799565029528815926467979722946980119231154146980575851559250254146687404282431983946738867542021094006029577056738091136196592739910113231578902813542069923041074549971978075045339961750917478454955434210657026953191297516744070388143970606488985597387498553203549681817378858910100746522689317294487097337035802053986293787476593013368470325388997563990097987690532306119519707614899453109639620368618289108243728639079347083310660104597181030192894487399273297128666331250275759351763342909187837301743918562046266114406222295596730875806643792016724081604611183407256427185893675789775187529314048807514960831197798520355110655374357259449899701656092880020490439680133980948268018292547592780169850719284222869520388853710362188037777149002724690439851265212402872485072868652709871475502237376092917726898478985556883583514667967958326071630071834008458091332089684332558408522888541830085383177757794485429067462218763234518819378022268933288269452078225921133270394270519121512927377897778541079988656008171581333336025021188819659712767635147493277249492254869871156961331100040429237046267893652076033470648195650077719192360454414657511708276582067703554064244611594618271136948283007658850319639489536097331108306845883495540571903038193877525652133590444015292280928191574029658857152053202203904611518753686391068993857428776314295535520132487450007015333276702393651040637670207323809361847168099693134807336041973908330241516887736303971536938889041419596329821806829091625309188017509477609649416643561015511657882989204494006535042981647994307616308530194419470240353283789740499921355480520304055211168623057030163650149758073322140643466580273798129207893044356213318686408893136094915597147723088796893063989864534377020150002896712086777096567110950015507338108955056909597970183964232332788157728487240234501984521124835434502077489329973825117037643465514376296524521594771217893172180043664231923466507771313556123721718647236441304090908340741744204060264827853050735753729252378041021812838290134677025404166805727833861408939137910450820534997766984159646162100272952320324243649774655259648515566840677962567770486960250956480741369111047750912824220794481856593616803695437240175564196364006529264722020158694173209006249954465542781118977485987486104231944800620879450229711571250691069292182484142424409391363311558797237538838927489464291216311995013868623782822262284672915858088298285320078485848650300358275981223755402416375133462186204188025670165814494310673584709105425084939715172215621547088468324226688551207499951637340549915582461610202511063111656391365249100111026280942751699837759715295220021227339945844991992646505203231869443613383508051822081140851100343298388560964562876993780823144850553853789561527115214541593211088241634779478124395294410373024798038860452722954652183494417902563627436169066530990193002474936786730292784118895418468879607820802323392167122639760033048123543352580450889528123265262363709292652493936648841738077382864440327198481174054291021074061788051298648501211158254299083153428760616910929780580101616003097956488824789600356981243571496970537010989889382085339247722015783569878722240404554485678705414019085113177254066063054982765863164496836080658408541601428793653435651387535362554312098728558371737291116827470138644537002014587625426602874136527967665199092069693034871067372947523530221888643694942346607719760311342945912306299537181271428691743630714950273587407266081405394043715932766757526618074408651821005359802194558791975835608725042859631135915683602367790471737693153219679172670733790627798649185417999733003869931578400212424039345795824446684710828727788001497552741959129424493329922891197947711756798165144414656489265231259087934237636276454452176857571942102402719339192751325768760011875127335067396992161082262297986964297614243855129338670106187264560439906784552274208772939035669653608081972931879294809860236591567766627000958717041161378967449116131121083249794737631910498620218939464965355552587771237092782486393550744922853089377726265119745667146693896158074274309378483831066977084664749834373358026382108046914281295411864546482077932707118107094645072128715617500486743833530713163710079608745641138348314335916682484188033719959662413851085261036994263848512272985658950146029765019609379242540610755888588965827445508715380266967119724203160165795282794088172217987604274218044139847133196389056588748982184958202484409346632510115076251981632187017314032041141031892018675011145885476565541338136217120207968037503334323304358899027584050427683291933805135728362893291506474817802342060392119031917731485624362581176684944742729434999220929390002706481485675616112818144944097214597635504760217891571038485297334319091493513139217359693267687503286229092222485195214095419265662310294242651528631038427277330155687955319314286913512306520800084002651014908349110242954062130910278135442936898686608543278435170189342212477285269472427356546238158135033542226225475917564293939845781245751543485749813085535869009665622862152445350523299999839181446615220061065679878292138949851133466672586131613937372312938064713651734356663138900176885849586350031871567109047453470878169720225242149967343335781043054586300310978937501021732911314081030911105496291333670817315589588425407972073554383595320055334531775631127606874001823070288297945941910700813529250273352453756795184741935948219994113535253277802781531186226333361203110565077224019239109828934882659086421430803601922344937182502252110988417178143996000543611285949768598584783842478125875177706038215188633331984149535581348310767576779921416504309204890588408607432063597917373819282756969507198890165418048223245393211678176950131598634814591782201469829002280304107112007242475067537388849205315805622549833448604862235792979356634481138614863616506213705550681400455062552553308621337639930248357835460014249404643146929362840733559197407074737185380262031502953417757024959847448591725874946885364497692282463337350926030574221816179079708166549734317354878440367069031117566259720658598722450026390891452495611490878940063965347289129488169330362351593212078926676403969707477652591356575448428625823441320382990630972230961411994185648932349264480774291253017129372599892739611561900831280134723543708770117391713753945483160424526232743324998038601780766177614724775105261534980486906874053786530070533923481881633018444841468622924868680631450375343026752726543985524636539468869322341646125937638957948882209043547568449823089448089083846339626197566068997359544501557472203792837629644107799033133642699900361614150751742252683064844306119119700340566572042983109979342868632847401646332223801809058468073399489877534817790173187953883065248732207639604692695701966992035304019707882281661589911913142879057929971779178185982824067120092533634439289775948389090920821070272548865976624685339282253093099745614882586408382190927670357668819216836738943442744117725661301041769291381338273936179377020250257750223903338673742250282630939000602861159263499543440818337075076772048815985337752878952956896238720153631844534867504144785281388010550528642944999959712582583299420277855782278903633090745543482224429080291948627460127033325582156649211561588294771051690015232895981695240558556721064492355515790884917439958555237494155453737262302110029110645651325856761942447276552632593541020561008031995182655178227892361241697131028157021322987612268592128882851356101504730941717165493931332990474596258032365005171710245930465303243981636728386065632396233194464510242372958362996250371304256208328785928935084757136919778826331905520523974409194669628064192310465798657769013934073894514684074850975456741498734785092778965463984092449051422853673460502618396911739257019142965750466818375543615195377442345282278443499460715510324824771490134354675747630205800847699412730883547369828082201320424728311459980257991228635125057811860801846317811605834019480407014006867272699214476185468720234673616350077173541835092638112537140031742562621592170210922353224693551559406421709590377568335230353452663925599981693672244004109467196089897870052752373444341102703656959604503251936732246545104124201202801138541941600358702337206504274815865240456089195607403203720091893785019004687087297794886112509621315347845181322398173899232094182191068050624071338833707283505515820683574574027135317725669534611287701321809721974179282033131801466008685609842742326246261925993768968710491919543820397872526950547650121716141160150628615635147629947705657515503515458153258565518526311130110987560137470519830677057092869979352107747069692523969258283780303599618798420466268389438932950429702476906464619639081654843593556263487705382109513680090687727160812258262679913585023962843744450179847434456132662502563412784597812697051554304546325896381676269642668356278132455491194922226094249235496513674509645354849658180670085467121039387659790352465690124890374173570502384456608810063376496751919442458006840131916221300088466731177497955130929617961522303101012028022504009407036608878971425126944933841163924031015491638093238673557525009154133387429126023377766165578120778819881485070359216595117626169938493252995349871511074892485490836189644443045041388490044521956392843436919796682556428120185992389902340217307853665145010664520154306497000264545301788803197772642060002441572245526036008400597590015577962681839113934948188401626140935261530600208475794752162483327335203121576399748800208892202917554439006816162289148072198828436807577499037917307073884107327228009919130028579999479004301072091572875981839977699624768577594372466134214565487217467131909011490620816203419819885524177715558953622911336199443123868275266116366137071375313995428989361577990867747453233466529832832237045044692263024066992273035454125403741554851148576704587966197328841254366509534236213002310892697033599379256463143201546263888836870911595585516568254494454687520474546642219881380498702505944513556253301072385913464223481630570763176652846876676914565799804132087719283718391307696839746760048719995914205464317421532005908411649763263807480415018378763494376929135970717542339998125466286209673581517206966014150997480622221542962723532721274883972665400824184746503258000486467560474119592764474630182393571879673193054086759949170809793293807331590536735670252418875928129607430492513217940560623551219893562415964047005116717695566590970270724086770179676339594684730414287967752765880533244242616578331184677154233354235134313490923316508499546068293848766586800757200518598052925777519092654763434793974237986741910131353229632248302148201791583880529964460681271170864070132774254954409856175089529922399585078626252123230250058046620271315726523993229831117357122364738393273227514084320635787042888649412283785445681649732033974204284517083761561764354334243034582522105068606856194236686142264369188679713816995402018808828999926682856141381989713851869731073751949591157541638688368305997676193652877790537530501774968172788243224019899748815187124681778719438124517582562209364352622689901606693858289134322593775813859934029358366505613502472831124192341954887273576195871781147941959827920006130071514122662768680495005834875262153795231741542433434858498445249609976321737024477421012552717161465484100726292004962094297788817838793423463771547750558221097477020862711854149860808854695964695374416190607226508593668014330076966757892105714182309461285504334688442298316899946460126805372394962512581998737360814372895952986369865347252290006652608606079617083455139232224336148233519027559869409578814654570375492635552689574961461244482409267911340030890022716740544085323626108138168596519137137531215915561333223373082985808769921342321234956704329148217639460850959696065652049105287967237366095247670992582813654372547620569217363437064734612744951616821793897004923782944302102444797082134352371970724791893526062391684222171885211225421653498460213978911800916747535601342122967623390696400353040359963800561212093832741356611530314725017153069224653327028247478918365768436554980887245440261088924803859220251421772053057113427982248859607954093282020788367799961779560503936983339091968246318586206578058861816446134421010731502931548323824499516482941739185131387702760298465972985285607699029527609516519382760559390183008955638448304983577558572740144146474994901422674096235479076627605661800745513913646190345801251772516022887208401541405724411323877144347793532650990431244197493628830689897616343828173467185399474115547651605783510947547829562823302649293474087830416707360901053310373272422098220107813377496365394436062368947697675066519502663486416977556689050928648796108015196037889494446649149605014535250334629061359091881319721301463199776161169902479253324076015508029788227266949765650822046769551299171838200352943746424955167249593468003716982537008525665490763053226673623151979820891276770180421309459734681866550969173914288635690398172686178833725669188040347339612654448530048896599030077982139402097712195200800561657184215192319834270976027883236171111062205474357055996878179723810131572464404381470642797276976636652081155350788568839335380769043921669639571807263045293897084195506490383013506618312987787613375977931870946688641981767634656475406851698736968793612950649914456984692066721529005213540228828772447822735213001933460163167457411786454499651237592843297614262102166797489941905485479900939316522749127367816347024865275754606834180865306575399924629499453609938751186301106466315905033084889264939850771348117762259641114655579217010168454292867625945533174055831679544456988012969712030330344415543201056450151557678182570183233086064781051719487203731742671889407921083923975020341077815181809605252935974141934884261424189706621459322820629036748194799183333854468788002846265411206807522235944978932266689815386221205345357585866632443094965334030621804806740191356741449518654962252916699215359489576576516417228070895619753907760670642805613349170487822832191053140170932169742625321260350440282975154041304709693669089639327160320897430538908050986301020667071218811921812345031989597101295647602673646929516731455318971307161437577945574280087291550418952243903664812440522230471991756102186529047587429616510384368298646942123005652824969913462018745024730754551273674614446483688810145369377725943812864077058799528787898106544796607550089316409716921721768733458159612796277061639786283361413867752596812048006113686648376656151602485018901781662155739273151892811275363156621610433049296827414119651305117637959103434723624749210723090165890706001620566793409136892741806164085775389167583799707874379951564157785699018703639330318343447701780725172243827103771080499529334663439036347378697209207464245050808771860588112322003226288315547218624976471004783886420606510782241690875723783559652229643095483687998360354136964485554987582085398273496454554283011087172075603238397111187993494545917527992759190982539070358609654846186338681664534562454469816188867289036169484625775209671335243335707077638998295410553625365443674407466831297300478227483568720868374700069196608495263221107295528167541134843679182729912824411322558361243125536006911204695400897153812138252494581926230711068972219824412087612376337674799256267913219019252622615220429838285223617743419663135199950526529387750450694453515899609397456512179483228434792449670816704670131346558445676048936044879393274306766610742157732632697262340336102584058132771295245117407084958848951516939829883106823478270743912070356336251298974364151809225295592662873087891032626208883750844450326699574810154821202764133687267688902831895564502785578453890325953584188350632352218070749635781666746704980883898740631808010599095654999297522378350889789734568501978923536066697029250743562896598920694912195752225249235431474398096346054669795512094124668781597167949679594689339348595923008604228749375908273404953485933489663970240188220541327110125634123157608525272245675637504886804830131157495152449573818832801162051820417607899518733046414687996870229776407269792981016004741451201935192268659176742197436703436649523699337793985339175326354950652334397860924047608868358730303464175858033132783836294808324047900646011737093396620238167864388663708739716066799848938815014478313522843231089349447026611311371331825542352957294637637609628358442296987974758521276473516160933866971132604155746743516514206536470176086554422804106638764601489936007202923657966011097636123048990664096178487800737676776918214902149479901773545236780379952197462130544307449298303997965350139570591686407796203303828980288391382692746070169648160876516482083655797596411147613531827287230554672487856906043889266782502160928858220140907304306204370306100175949616329963706453225840128082796015678395559091066638745103186033861974895862384294165880899776760967046346146573154874898699939865214445815952946407499683462253357670351118067387328464090750748145834780482229825611366522330104692422816354137482584382839638261241948450876151157937595014452720539120854799676664622529507931405923306350960324189912181139756512598401580765296260275978526323753916124074366762140465908203466474217186917060562784636488641868825198281911876231567459022302978883283399058755421412475650219511871084523986464959177231849878090892080663323687471063934562350251000585782479869001576843698237121366622354945893011105208849548912582228882970624313798560893498463734433874288215023127010915092720189282069935252651887222147079558973700985783535608238661539286848734622359524110104913278731381718138505032082252501232452660208439479305539865710066949535081529763072529310246052879612110493377255714711373061963750962242927693919469511260128133780147378610953195864687556331843228308329381710238422651983228229895567150292611455435650832980819095755461707132467429163361049814109518644160777178041835514977228182014398515283497998364069395100982907028349161761193241993019880312560082050824040452238667085809126699892378954194946416523845647414235241398948677722496123416946308480449309617042126859564359953733067251869763182213589328110179838624004105085238878104050345387054568740614778575639258853274454326268308333919407407306143371293683386964434070899062731689972268735857125319881508543323296174086059859513804089561346029927644325073268239715606625678867152676512264748805695913341371291348551517646643715431241414123009139554380557210055860106940909449529351257487223346387593714193166588906783072921815319471896930847017239282305045585257134578162314531928113787362964045803560455551372390792972209668026228410247169889433459713993502106879130571528334019628375591962864056092883909199114402679126051728801305475338701525242270052592654156489265839278253341438665391702684096335054556823221676182088849838081286819285717335058604409902179296476425625129463819777009326965862261294475897389150023609191056932135825023180082298235694071037828110606346035650470266466750907684575710168700342600955873338107315846339423176850898264230594864097304650556182387651956012380726897887067331255202050957496774540280194270789778475383042635029622905215353357689934073946280285089949325032876780215819539293949236849177968790748014036758571988493695993715256868071248403791034381070822558005326821998421306886343161168356461289507093798479782227117673174989226643470054194891808174216335837009199233372934779305876009079507739193414626634666850234286011098007226984651339191270280348780953455901599952880287073824613237293060453542738211895228533312084200109983889919264133576710860641825572825863193821719639823546360483037729237278401942152439546914343143441784718895958921264137933663476659394290421596754745859530935593847804679852264213702552606611014251035527299125130662232717360929681371235740370369298467766658251722485993485522875028239305168632232394005127203696640199990846359666030346106932614860348040053543516308504342965878955503565517499585368917681746177408947848960276561550906745501437939927652083308358478408099279396473038098375571567445839844164477502942694796643516485249603232172076208104272515445452098479211365342124647960706990571764864461282116031641008032443404634218752139905797979035355899388879421868073619009554848532609123751279834360760350555001090558147944230402879424001945409787764649045947640993098406534323495527992494783134433969821445173270673097184357653088389131333270655292585815713866146545562488838497656529868021569457532216536226664799390814490005839213839756908736253002291927165116855304758415693186812414211344857110626212363231121085292919636246505509067127863892602573941461814886765590925566955464103539334951919231489677061974219587072154593615247326313490450058893055846162421211693758906071638531321755397283986252226304145410234000862138288859119121279332574384232675417230949370289433282298554932815090567129193973858148804476572966100389428938749036233044399221387176510220358169262396271276420506183514470813220962947765230370772050612369330248547194190184782367906851025716280157399681333680578328739070637087007969615518015676125627408714311454315290683158561321899107970395861317551877831073043971361712858929873082540483357656741086773591707739261115199511606267324745148816759856816787039777353023182749927637489388595973348327993141619056572176336288670500094399658530212182544291455889468156047043851989165679946324159331552585357080016225925816467222740034302297242306656048907008209497317301798981525986371308549969924118650154735977003506371493138548601622489312672829124865775692251280404495604087876166445624438520910787389807217015288819076226963929801497639068055420742674644420655048981024162622423095777944139875406621949276791721337858757585990561258191426007256176170260799151853581522994066137511718349732030425801818882466936999956752937366237119596195746246174978239373762956026971288625382379089728059875516974057928675123828487516527082263703609716480199559513516859675800412412187849954283740870752557046453152936006718331404758664783759508372617403244224659336999478578829638055108338539662927573574202584837566995282841059189065959144570411477783584015682630037964373948773534563713950396285354563413875944698712205050050443875302142895196978672606238976963504476128670344763060887675301657912087502154254892273616914324136545101645784676741003639945674796098797835704550556813431424456147993418165326403264610589945755375284429538437241054657983898456772615052634118490305843745796738136298939720423627830047069206577695296840419081685587776035033378305558835630003809309818318166463030830711703071959840523858222867404997247705964865273781960062273045011019453453470030608267619906283987232932221974959366998731473176343265751045629947805768864419268351742926097691744128026197446374833842173520273113405515561507569838456956922272468442960259233178642482779887972564125184973125164624816965245012279795292372555982265090472279129508658736066639886557451498841184038542620446283680917137683053333119247580365586107052126506660635862679762920586693598255186952864431183301827464900854277893198987708481213690955129209322731377633188713856655120698902163289549754925783484979290414118553710826219959568520747831154995057311089551373724328011839759454854767345835768730212229758938963914249533808888806405666532562820657671422908920798319281310665382463538524611819379998572845668317402270666566595048255387755598048211458794278210281249952010158596504890890160921411320981147078041186143326068532212790062819391501939312937823935133839189326074420969586113626119590018555790012531255740546623804825807039747802996587942632195948614107628213120367332829322093101369250271603394120159147950060868124178816317249118390942603400145883510129043890269195166366413072901120648769085608740516625539417604388244196800205490238539376642780768918926116823852479505867686203795648096599695609884449238509608518338813766346931909372353228732998915063754748552526340601369923772095202012470378373965310741426743777319546569596399045708820815742445669588620458265251879061581761616400132257598394164707163485720867631891449819862163733951357774007266753869286772988186629812932211036847496972305872307436583706112927214858391633623057882882956291969981864156636619255352393659568908275257967196350874039559488357039961452060360635034054906419146497934016060849572656415265229416153778271268209851504931470016048135478133379115134883237931470100000625386756885390207467840297872190365514081199149499356858723920609123716584852695915709048327941290690632309946552896664412604269793318762945802433227382578054939796333954368932669382069945868011215418825008586115254448371151500235519130775071107012082194560108217878506766941205313267501616700834457156379508658057452606768795543754496184432240950971862063171160787781355542156715151859830029654616525768257708802887134569767603958073361643523006883013906447153129536093023383516670242040579322839226667610678077488014001096340868172492623710108144434366457496465365683085584703250484364728417133167497765772346669512438814585057461802934376980098124123140714742668195215495407242229863292431226036558735221932951732694801698277510403799692831268290670747926811498555506341509277769125887588348279911481694744436245240503838537883686528922884615826580920492832358048371192458837537321361828715719916653298897429543588831578704715949984479794934539148376827428362180773708968275668963705286255182601664266048862449036742581432092396632825699841328644085451631132600181298822356485838237283349714984963731379967290662771031803765848353676036568960397141471419714500532024790814980934700022619012199638374395214260792809614891236668234012180420654197661523404991559638226123513777393941433744055227002393888035521150608664082959464042805162292318860580504646307242115619390903790004088786267469849460066392510296270754519549666047300347276979569193115227449353246300534823269026636054452610083558320666315779841525610712449025080591529737845492671247112071820134072949275677296321171543632346933340533320334606342248696644384561946451502739519457251021372732811254748930193004854296062153469345619285777864808100915902868259705984084635250027827714129709943973701867974012007510640166023020820542913688445862928960447786607227582351239446508390760681007211756587490999083178876590077672207351908987774047478336488545985385349212542632883462014703279220575766389456402139472497507527755498047163169776094388097016525502592229339843106787548941090700092351761243677894704151180463871368075006147954372283254849174192199094533689945575029541700165847856953166005504460739077844000791424775555226051946618185229270286306082435718524307402519095124654649944802482423853057968293076002327809001006411882999532857130136137122692723630954548077841561587744240291974577550115038359514888289593645075647997056404062739289762946367290770739959913139792071925310187516286213345920481375433224671992223094971769956140281723124644825749381696010834765097842718526464918338592689111190492079618737247172501098341500849599108320244423217937508325124654624645538204162633858094299865745806525199196510700279745984050379954076018107457985729518731742373046295914407976879817848582573848992551874940763084927798700961571246718905307861123851988788101219389572480927712750921000959411809856631338851773008574407925563182720124369737295051890039008333149990683585180988238003401741762703855021984340987223171796664582166401207361084727200431676724327664550502797562116825626303874564676394335541896841403395265704053386494019182072742411861119653811010448405413377814632046836074760018477300644335599607754745086394705164489832197700195818257937983802270427336305637947120142497461787481728491395329639143962848287706236872290961713568897194510381231377747962392138975230546300132482889792784089863324175055937738335900726626623106863021460353545943440703256480457435366478684700235744783113905522734471555484900274761480364560911490828001054625981854835921133480620830956700561584165363217270574387553798423482161410472685301390782193897138737213610054241545383912179430398780503346093325550192227423472082832969983739735315395203423613389513550451639425996643848741879137478901488909893935869701986312142723777212802475152570407685835140658413806783230459983025367446174165522129177491382376598296050309900869813252788545542263490008316155822574719889378431752901713801227926047814677269724556638936210060678214306950402298986764722644442942100909277725262479776795143919940590438986326933003127950336319097698115953663912806531791347265614456384425355717310900657852916434355003170228213127042027120930570851693706184767938380415228087357386830841413330586315055660360311472742777284720665556865503251049627733687160847292857836816207890341204188335255563157507797013755795423307795570699301595099409603998962408902553082158309900709212322967622710036136354807301660738068047594777796485399865545283938995833504519391054516523943496746565600731604142126410725728831911597315642558297056731465712983911720219728305498995522655701714984407661184023608196015556417669589696106786629595600348575349911222821530275481934262031134842560067355682864487575679954967219609353900774369855828409714089515422322310712822217637434363439727938488594453354133848601142631855252161373476919624301066775607226390559854053871450693958141201966929692050121060564235744365277546226281003305278425736394730937127144165188068224732076829694622397095915271069262728042620338929211362813880280203456113705668705759687523269437707369175532079325452191967819295692238251870620327753451422023416836001540022579817439847537035286019780541608638657416194554491397143535122395239820418234876492791324145513953618227048171623498358294336885260289889198630349364896472953154270022667243177573136432569217678326303613029815856823223698028983128299961695879691873554153795686921002443859684247663985076586924737077928039955771280701262454156134615870204959927315024375149183879670194990163043610176173748919639598407335636004457497220421775522847371773942045947285251819253639851646572598441686332119227566966752097392925520849056271358714546257411816226702453336268616985973926029591442535033560361447004854836971065217690660663139262114547803431431935289107133888820210942572308717624059286129443652870583293056048492365460997180434935494017135549437733881795106701717013515132317971147861797791265450671597044492642386711809219859911830071011486885100018582878763526759084875349427432801920841458543235301067822451595595165897345361941743860081383677089502726528227110527311985059960695915352580006686493686753782255699379443032427848316662576033906618562414486132750215953690414936446946480326140040059148826751098853479992975057820979520337983132134438626604239181115324219027070084012864698727580510390858436590173978389547590918833193429747023455981856532343560745834048575499955957114857630890622865224494203257779835257171128494043768581873585100297276367382716011866436698916634080329590785735035592486985246855405103843579869737759759905818428627404554753749050390215906804115115380265431773294566283175240267233403175977103810796325416254193239215206026615660833052017864801718177062467826535796507153121035660028673261856471348993962478937222420509106381979038710455411741888751268507425812643806847470027943189862761797062882137603521651760216206684997703885677835900331210876500482429648924821134292983951154621088048814119649635132603956587431244638369535631629888598879965764790605473154846481712489511915959322093946597865432692350322457327621363740924723281169741399270908644679043867994547081651950008436138487953702300849853699030456023489832270047681240917981605306775009974225950120056356272803756406100087158769634582343740532436174922477319079944936713918209184278564941221709767727748461594987626847791146384144061060618065218423069052543930216709767463004607666680786929399683999000822984575458578320992383134347510355733112451066679384844275050053907795756442136772381554998591650027065069062884778671633144628426895557283731910015375492484889119631350913862924118360706876980318393410488533513520980612646229667607922082398903809849417592936192942435342271722898250930291432772870871870209955446847809448356827887635793843481736837943509059026967453742940850149057956413736732423834543788079339759191229889409931534659843558557157926383101160635434567118725175243875800993281714505397185682399044822529093183848333659694373870870083095723893947630618965185614395067786127015168609264555172412416857964485835194444327479410208867232625303994600882128407930815822245589735854979539333742867473911284437450035131828417372616436434697412842990058365211406319992158985911283066459579381481050706983615836431278476117045394041342571395850599418351141945848047063089257040562278051810781334065136878729324145022020305535717672168445698386822525848384705065008484862820371151016399810595876725894617506265038160681826951720049567766528823237395812794206718665645224800445276382756841118659842852169928953735924518229686239121908422316348829666746986336981639081895751822439610463670220536823109039588417577017175668079958342337459038050460041608255560308078965110055662359031770077654588668844019984601569032032626294792536013565367839584399118726107714141144892070578473002712079729153752724221032042466008019761950185447419646666562433643046191593829559757462117091892786952803321882593466503470363738703058484631740013820644413186984585450696583410922731094874329263387567788029905086098437333073216177374478356428470201077485496683484919296922146407730872888867870202932108301360822812014630611013169572800880573832882296083564507744341406234527222587463601190386729923772555582000842980226206008930184029164505380908810699456984167901925793705769328375371989535160525510154484089628885475797751668985230516092085810248654810544686175779486703335852910858356592522182874010324019661050522395573544648096449959048118772313858104023124684873637844432608283788854165222982441039622163672808972505310219729666470599274999247750097315726146706974840782145244849877742514770488395466165738649901741259560056847283474040484022510443008451076877428057699937317313579300008164409306407688806730410470065386269425586043516424841155135720460260385578326277822430297720717145172444796693466105994810660235745393909144970437050452571491991749844919982450896899721648580691858040832646198039523438437123466368424038290567645623375907327934420984682053172014693724604612095520689365133885657580191250583835495911258946329431763337247811092568304560079108091121048513447926290422701161716988908800844133318928353514555790866223840029537007753845740701870687858461002953600121490644332559573243870956060019699626083505345137338454776102362435319327973181068429097193957436744317198925072047358202389023995142828144837521007165852198967767258108772283795971590750405465123257270585664576792042053425527870873885661143216918435523620651249606919796405406951320795052187255963173420345560763853650483711067186828861178554073211636275379994828842476392907943007386273156069508258548814695864359203124536161346776762849530967316629390488153475468824355211404920400805110895318271178377291944874383787530236184984369490420492140728887197918606550520747128964789951086699611089093570985897568554331296074834733422368555511387463981656422760293527685176828435356135537697774280153192964222070127333532929217697681488709729034092090821283732940912016010122437911804092043345869475247531990165625434873519522001066876652895798677598129362598389251582758640191918153018507119232666586242250183189131970225904672662379204352653997798618923244732005235563113428855069735215361262029941317319876782797507059864693841103768923005089041920962546767403047456394864923909470829925141424910245751965294849035956812072654928539684400786397615631123129267952354904379363351260707088424138197231311101945372906818205836503700101934083406720392651564892653817376460626408148494787570781454175343147439568988445225972401489090009422548255857102770749295402435642732343801450503876078323231617351096981470851695044767301804627160690526227826862956686884192537015601383585660099078933083520098278330602068274548001087764038532639632645162396754000301105970320067866811061551010350596557728263928423031055185941962488675200828051798380213889198336116436617372263853000034273297758394333951774441354434405269184493853064550995290575779536924072649399340496994895121898279081253906519209910546358371099001219283539566675439198552752459719869701650352250367667472295319064428464820426319593129634409994095464758626299731806978354093414957999750085335788290083822337273711401776997061545218073893149114284862181007797143427657410213999721188932930159614634143542707594849496558268022239261972075962691466292041830368322472358831485013377144836293007357320672228257474489833596355633742793569884767736739291708264657007981430532665882920863882865365531188910422346210762029482053270847891877661430300146268204690324391740310119131393419895718918944468785567031073109635936220610467553705086091705413042137404981260817719466897388888835405121825563256554308419218761117069304530395748112803983226918886948327792565877888140671021851683888995813209794395637422409942456633429878291677418188513686686749822821831310618947751715622236022831203896151589139989478431570807767918467693871152940283258251800802887748272426915359236091884283225515444993384396837146862425929242519439394423732425300512968893567211647207700865423053099643500038145383646314768199500792734995756513888057958846427977316721244314642353484711677042895036038779073321471360700965920035570202634739184598307863810895890310137793416231285249093505319340633380949622683138095261401270418899224866853665976998164632067318632675978717225920115966744348173051175314264024577789771191195249888456074350376552406587313316149742488244895020243725864980367694430173290814527864029831146235536110138211245092856094765758642603653570497936751473649443746282831266700535614029398591179847803670740504018934560881812413563451293261933635480905513760212454134772482969557765269979880155181367870964432346546794158690884942328979221574238463304921176906360521405713626404064734066312617415799093343760905228497724714870831376161886434272110591244795851181860479033583692677058631372757927042084256200984281476943988074696774750010415217689947496613611311732312131299440503592553295525347271194526300508269328364746814256857626522268362776285554670722405331328129273475663796399465461069996913577535635053377509000348759306586449219690395712915307470009172761294635107570990246651383614278601231692226776165999174250893712656199409547374384086796774903476780716819244917649756210508231804336009368217410726917158911970161408020627679447247391074746495617074554348648530392507843168339012747461687910193128492075458167950234033511876785626734398638130880505570012035075364722580340304645493056386342700849409601797460157629347917245185402044893640025904841458704683200965673916887795061014097972960554788650955314083243800485273647922722134741949051318345170099450616960265069987024637081872289753738543150253165157870265079948725031904857003685960244307238242273826283369437735021372723969584027077214308570087499248102813165789983435005919270617994081902484964640206368010875189562478601790009967053506714116764790525103040746018675162874206436377906305817094938903052943542184009588645206757159011426157594493080089399022452993153771265770697856710241697136125769311483985769563453049970842168370712017392951370697824365434026425415855905586010765792253549019919341890305579908325251277377679115576723344861811784849357218095937029049647888250637867035005737644680017709273920920029449044293294055442607694304713472360307299915662816946194187498552661574265389822666095117539929114999217046019686041232685005005549021748096234757584085640766917948000466299705739626340140142225513424825835081076705735765252803714285874956187380821756066470382400689051904985054648144671368042842507881304359046211587813097070799518217196348313693689779541752535239170647237856632027427269885964013919076367730462990892706588070716981364555794783931845387742830227522190793745970915505820328170317072725126375844822697173843256041212023494221989600396787940635120372422118585562823116131202629013200997295525940301631677468145831830031688732360250393918269429635120724150817628315608753191426813555459509012369609544809638638032603275764645560890437400702365555851343734028892663717889885836832594336959856735508219725573620110588047836806003140151386210852005899160724956836282377490467957640916566911462062079699025317601419656314453512937158926608482130179896066071894827199022950988189242144163425409622462080825610689338426070634709830492738755928956994778581075650698216261079861586439041007022492054259339961812834939776231615821786696667031033823835127288520766087630556742709192334985742310785035977779628564276698988582734689580811195203081890990202051398267948856943798552075087068912310992317887307676757926924850227448174273388891641026450582320429193490550920763520815270560148868787602201367453407801572484826151691416163447655585598253055019406757964082132064436785975737539867428627271983280990500589434794079075361529735867122122547168777138653266525722112469867360017812786928919124006389461821039388125750833791710979732863090281778404883426688816235565459709132925918557337325964232772337077381540278336827487732184187561406008577257317250074447505008157453875019483109518413221725966771398421757665492904298578928773591404025351990842447580495697968828663900318233889370731675385582131887510602093577413046802125744573214788651679702321576186522242375198879213259890678973030182040429867010181411716517549033506655892003601096756837086714475499508039764038228909969190547703197080273613306375686629158861625688896414312776577791804528175243191217999222854954359653435483893579583106357646394998776256223292245852287266108009385591938471789863065413347912131843997365470955866910560415574536923489172816127354815429100725821731943871199899431874388110938851205808464820264915446367780806178667030635549103391538949898015982023370843085090469024705317211047484846223052594677552634147467904010392676225851267770837674912828042735988856546487963706894677755878559579596657139504587523417951244899645270726391761285117192636261195545796227402550810533125316105213184280853103310949304943944759868687739148562803220066804491586157280682057365993546068955259972719972457428774425739705341015430819059017480203547379011767548579061786493058918097935484693718006824070203291790416421674012877216290369377425119576625645183572842251604809059680185354683229347239606636032648522743045080247151075591730666284730118078639394924706811742784104384435048022981030378136704943996746413246292045152416126774868732112055472333390022021152533436580925646170862679237029639876866431503417801440890805647141316928014249142498191768355241374317419719349594980761673633436027875337377918096884574136077551407742411438724058097014561345288212817562094567927403132671752048902719737125915177755084550268337997523241168727465881625799704739161853391605102997862858269054831287600556772414569189679461117610592281825303876634855487535346179247149628257281725776410809256427635831077848780723011270619203521466247589061361872005278651793207328328768949229383507232551391408889831357637886372159217617204536795927618090969397035941596038656485155576544991602448444877256489702496616329159643324835913369745879362369707982087963133705267373147313220975633148596555584121054598098507388645332312117581881042749052623309574562576326664279064172146018621202354634139663170088379466054848593100521476986343816955677689938764061445132387198564528212119447478957868261181210996106847221200983751605681885930848573706879487608155137787576498899440015806934870504002672892344181132078984477149347993234514179370159664301906179982133547546790811710911200091599365979120441328124362685199214111769995863552325400869175811839464249750325622006118238419369710204546453056914581957792531954035052240525154071813391777635173639773424183027538963115945707368463984079935714499487275327760819517755771255145885967020069545655013180420673189130924973718137714818257237289432448264938994970673700199522579456251128259572533354264994706100047671688867817628168701607135488888226161379149469124592804644624717322083209152671679400372673754489031649931294548485886060554446886672141254097508516422232651086513034997001754452640547427097535319852486124792335627222039572155273781856546579838312336803410488624247123107753627407346929023896871606294862923105141372167924379309202088170293092812143130206540333845472273310074888799225527683211841842757982354279128362886964617517537239408083474937559935792131952260238664629128024644474859928440709335832648792966303060386720845237190055609466670861526323772648789354636561120325102240014427712294476831633081299321012925378098732752168715244727516081337280438318993743342776327554955838870876171172860358584660017216550848780042430380565444534155330660671426018088988177158689283099684987832517308337682551347086934913671435498100544276600502776219527834805818441218832361439605561812652884933298695009515088391278895270909558886109151395471270875144368446717924772727150366159828090813055002149350727667492354001628346450471754557251540868893760317471520085605068482416843082864913541714774239088939965264018755951369668326166289869136506253118531465279633810180261108308981162483860180061882710865354908218152920344412227001847334482564426910198495514886255407102639437930936686682282171458608258616304754128702861193482175075695359632439057654453029668160735432362147651339161765648113537365226084826272697424506506936765156021523926382888575838273603887138769286472420723308997692084771839479780374388887602884937339134373195989332311500514694187010931750441526676994615699180834984832007643938616092276121738156790895095206402088764385112617034040178900337870925170210899151649036060986309052135595387060105575426782394340262506709420655285597868222540885833251201016332486680023088349692882844236451075197112775368058010456786673944429518555688734991891453742059340457242485849115828600110981774024499203261953788159547996296668240814629462156794297281573659564218431163142587215859639169316513832342820672646501264247681973737766164592985461060551208234219338537419514553217811299528020278297639995780317322083719984739478418563687009362951440931598576251819267364567456592385609563511775007760995828661313635584949515288204001452473794160513005336581508803624361675917681018072778503496135769159700507064420688237964922610030484042521802086280942431184648672578887147062833429352464630016534950262428811413277056610448587100640291712651693072015038704291645657116507287018712739904876763863041401212520714721245753842583629264453559033047556796079387175792377384165273313427923209818835747523346101971769812804156884242025646683925669223871669412246520659635848235248429838730879245199743940158344071699984600468963830818263975214930392665318154321913065381990564033382652579804006857031536139413977334515060796034592156038246222804072818958015063084615693740080100088554632718997655714992972062032981591347889943310595103981887703229828684141308267273423235190529911070875508034807033105209430824761949108320549822025622987522950297740228705178905985128926120661145471372192239470995254050307590175443597265571792719718231334295746671715044333516475004357213290602065199397457813454413518139615853092730732166247974166294716655162557443066963129748732411520712685337469832478823157211527969654757024819427663836238431382918840737691746023634663711983618233305742429277770426064814344123009959607220061397598976355994617954681404806361555972485853904527722702110395001539162769728163396088396531824290676853038871698614100311901701701675185002171266990955538230460556491699847674406178098290721886095608053992832915988179385744414257670777158119064175876322459263867229582931085268842338678816563119906572967447435908723175765728976958566270811801603490372663565604135074297218624067948672051328511871728204908470900197221470886575577381434299169980141908336666808330205033066905059654135465600615492058991664836904930749529293968862132494539593515105011565457633179147273900103627325714897207836526987653489643804086556376447093000106571090645467215120083858886902808906329004147540370602962621484623536381271117364130506434867918106329090615378039723809534503414862859609892891328031385095464888492769234467123183189256394987484842210398726125435063320123165109388374093141847070272403119748354259639946184452095937536088359085735389206825443557188753287224487883951171615313535060597231725660540239566352450415263417701003446597781120887820529238406737477683484065243760566536904814699701359073294044880137107370535054088991904780739955066642583203865396624976821748382081615885184680605011046144184269214593688997579525839122951560359859059131755881568753142444264788088919529459896385377106788759848618442377951878868048343600900208472002866596383035827483995886137001811349020461521688330814453102311288031042678507912887032036335255594860358744571166339012057625083743367597846075785003445376774478923473985117398734489325853291035388452227892477047510889255355738624772929535038690410019966141383293528256170106812494821100615035268471421259539506701102043610552024813148095169893177306382820993146491454102290139514307959905807181080555777566029634865957985596059747957968684754361867149507999586138272243284371332523165090718672305290010753868077527586970818256305700141263684296703390007048663824291888196282501993477265041100326849123489524139580605090806787090778087877289262386964361811233018333099403604220225173780919181407223153692171999401886869543362853891930719754596773241800143022539343152813323857513173029696650858109626516558151373188543326612021084652100670897208510808981094257854985857513486919194227227798310583800397425980825374211635473515437386879772286516973659555219688749647449712873439923616300664984364990224584064013461155707218906001809211911389893264342449998141332680491589549340928509521916757944958997295214145964268974966178326231352658796597194318058767695501392222386150232627998929686232431168335721772113278908206571321281577783406279933049530197734003604191800057209297258420798311289984761394364347195226284134815071853789807574784167640280233043754581313316841463831207119735061541481174713131326062606105270828745853315104165299793293033595247834169529774027898304576752744139981729371335914894259558316065971413346087059410276907436744028138298134214352389805188956263080774354015969962003995506843249808382626419785053645868907396840655777973130686257556403486122213406326713051475375797657286202772992327966453495730393589294635106895827759075648020959745102393352331358539368397755722160190186195664562716889718419614398516747815582440995916465994452771508478359345889257864888567701694668439493537344214998892849555875279117539158338918560358567973314059773328314965178400268567354818173369491471498974353902522916473509980481100120028795740442323053707271678242006457030496808722162373572248751957143280824315391687489537509423780418728472678413721034293548617998013628661686851206350221808728272864846253311788004149716673027568568435926647491391413965167569279933621241988598929509233801629546827611496645100194995783282638365328578139991313521112377474460576166577435355236282591508161402760065993750583366122821548048229375099145944618842910118033004211689898095445159532135187948912631555665014964046080299392054879813705277687001663921277812780954686740711342977780340110361396997777469313687011720889929786833548167805226433609596721706739999463382815400979053234666208110996920601199076900522589861993176441877632983802838499733014663522794337026857967477140918627820950068073637900660298351720766533717801332827170184132370961181932360504265402322593931583752710106777272582518522890590450034980791338792433234287696171302577852055156605982417877204965673790711166902856540226613677564167021794305005626036344766158469734932438119407895117225507650321933740701183313617336700775255801448370168406624807065487936744811289742682337211041399031207196985749019345550308748806075572591149891836781925777159445292352372522073191828230032349868184110953470271851489574916575102711170438579794242251010491683449906683203087890636521467151317280914353682660859710337192087805942950823064446160523014002984202529537331933985403735981820042902384058564708503855637994409424715857622561365054700615736140353588519724902302629962333249704759839095713450176743795256099937124414198992758491812423692744186508813339284521109835540333690470097849868533196707447486136615965986781766805095993227219981737096906797413565492388312774814582435833459354999279539580997267294792310068267594336469809178120950998518982384774369085553847629682316280904406589729004422324152266325757049397858382197144485427086741743888201605249432868002494402896459307766824109036397988291264333640315626127424842283176486662130304938204305202976172794643615412785721278942713787670000401714945717511457199204786907407351445077441243946256631080576290308662678325306095833996019202146709828958369233014841791647805872375050583070175119939216613451101584886522097356981977034185319620758183610509720294637206637821370692330540824207084435203241986154882598921604426773722340703984156973992886937145629822366543543885776618485926513341824576405810842422856412348970270367146620028543501813427399980418034343752626392652312398209745231291701849602292695680332778447908717200183074118326098051322330744782359402179327370832414860032788102349713631599759107633137321147850400608249152939275136147539999296160562501770965035461822155753433718442966495551796623796150878733695815305982752738470393269291749913246420754777146269542239259176643793647927927619110130481234402682444737079581053308453502802964818927895293839092250831576587101687841940940093891367650208600866237652007581804995381725153433976540491923318470695247329355883751246760117025358993197771071537844126290282375829871557492030088092378714752088878655808869393565406453688122359232754397628552727717221844513773650482147442019934576173085463491836887408631503383683173281828258731486694886186150212798731121739938490269733224840945864755196668969150190611285721531150976824123615902270764413902201469237741228371527400692605405787119741835996914211316228384408230783229014734478428371430861685640130810787362849928123206403193029050931756634845577485530493738374970786390796721050270183722826175614947480024842765985611909133939208668979371287326638508595633506517058489886166334539675579561025681888339903436676501850933652024154172472062655334729362185954927284417358784196626098303723738457092220362652209303597011684521576223875170626797022325435955192128129141645836957217839967485634116552095830095287828920158186491625130560919507361719727633910610428923959300600674332421575372876346797490786032130824558469629201878093566006695136448200860979136734022310360545725675773418365370972858756436985847840914355344219788336892052818624211737560770618136774312306118674065920523768276002967631104513383661396998407597096729901640413731869004482504741207635143172503014933168805491186544415027908389205658024524914617790112130999939460702054025055856188713868360610958369352645232782388852376740772860129015424030111340027590191000961515237822447665606429287701253961104214745557971645190935705458386759277669381433393095697889322271116577808085533236439665568392085285275269747312953164678521727973661949224913558337181173892410221666944332331618593245289564576176538659913910713596948475490830201000611450621198988372340762344474835083749706749095839442736713878066886338596507434076254600995121378003716812350792718488431714939341793351937212016484641543976853813322544041975248805352548197773124028138281899310548957315055144225109508937443896164787226694723785127650470115950442542477565948804265521972952768562545323976868086026282295324441658897013071338720991251842360193711653564527206134102302145376484362610796226236870319490920494962954558636471862401087973423599108939736857168393853196633004107285059762165515506805736234795936185317829235428664215543172985490800970966334553251075910850963446494546897092529188938196319660811344233044320976464792601464267790034898616398115938286896936160415071382673459193827628136428823322388311939706560505097612039378762609294581252024837649871331897836973971410596609973821456157614335366931240809182503756728828662240132886957303064864970614747038918660068307846269197211404952238295005048379378341839657380157418537344105598593535368437274448829169425340761122408554720881524243111101714006102570512528874955726991456196420653133092994799424656822120792981465634794273341454620534083063316297452433228863549852027240075465932681775541107502126744165722308092492097857992425291082977620407940682697592442093679432914342730085575660524897495456602018423452789860542302971512885622058499192673838343217754486592910704118747857331679741384399874518983821971872666535336792112408204403814710462554211458263043750143398413725378835117562682011630233054019817645188037591664646100851835393458140671084046114706325339352557637103364100491021465561808122928218006229520689391834542011006752470793096551599623070842042027682461756671048247423803579777084214590048040731251648088196080664047318977291197587013318479155082374217663670646770561831746737261034432936874694839592696928010879367104737069173617818142916436982069714703955852352992646399360353284665924650631084963944598886814681737007063373083415918161613010818315107889468167527764362650326994861601247624672066227630776846520097389488820236371538655234919575351301918926983119015015743104495141899991225298114858470327091891702028661416973089435220825274015848146949213288230135809490569571357045118676550784105620366689385637133653850931668363156674080617013114496982188233431624007191882906174026853062830236758709410009052300573358289980474238453893469408293285254144731731565689797726222339577457263643812351692735429767998849710802949091393812104135185427115862406867521783975160199632579949222865102520031603400889823157649133680102087407000677721783693002129819931882944326862854467607925883083715614935276102332792472417009211306325157305469545828656424849874906828660819181830557219136469371408643942907597530772182148819316908847015008291241182467038250113862654119365003421753953369304114896897875742152311758580555731356079142420417398221465302642011857560361318647415745152738563042780618661653083680122707765016998262850908516240347534464673952771701351844566769005227641610244542580493501794146521523946498482878533404154634877663311515051272987766317373398372681968787703926543789322857712473931711103554502095665946613516183280475392358190611657727220785962079142838513146592245133829856936673355525883317540950556887180651875495316765439348305146139151213630435484766899207351203579559211100181161646771979733250269844964334967462472499242557462432206394867823410446420502365319251866670284513295470301873740729795149539813937711902674724188787199894102838632446090713417652014334762766756046239379237486204110009646535611464551389366638448352110193484633316709153349589347389391626035423507580803702452029237281108945143239302513876731023077705551136362699682410990221518108797346311234938837459202975883235921993021778946153770800546353157137638343333877634039096812702846980903094846883793537131928544222367484031332580439879948645708140748873680510964348876769338120176251027366157073420135286335726439753275622332097841936678604576166428449873499925618783875295330012176379000648099772142113815810508483489745334301937709761021238011081887648212736390023643046452150902817484141917966005590098618256586328012327032625359750530322538078493299300262686833428249048368059482629887550789283932369016884210838281255486291656323882407858198876495444832469328477855532475205365690975747993899780861258766216080266457948109951377389813793987166578548258604458450110832486384061951765587661180591681832915643257961750338037495548574242639816960060086899287296139665632547828187634858233707299613803822498847136304160616926944786845508300385329445336840977303539925506091267180463417500054465734654723841513533677533551124264501762795583364012720879125054746503251557823965314059017220453911575114321191404863694283359110579769382797796640193557021257975260684790982213276719257227440154977385809458483586898603144296909967100272127079981536900954364423304277841011987482692675669468883290465485653504580792351572813738549892061463436177671342538563860555749071920541947155442775031388688319309490818237649519524714608215274644540344407764298786322681763647921671888646138243882350383961626072876900248824677944823412623412546415914965726207863810910156112605524585593370913002684492209011151804004030378479427340635570159364753642225023729845685390338418623161276123695452594483161906206476734195465575860981665970726591260836831843087817741690411321366741245416590550235962998547232702121328949985798269391420105181359442042736485081923013382806953730031667785667144367775442509259380685597278898207735932762519733727696964440663584831570876023570455819755642478437999122713532000711799361154161502690242417909741211902222104717302550736281176130824621943342374993191715188633961226873455636891591624728319753320126446818045857042404494901990660846696922063707618080622639413948839342549439391327012374099099592151923563149162166594737727048982661198910658500394403319732183464694607355921420933162522609532208098647934726765121404606114183555428524759627173762343362256658659849152914021654000570257709102956984246346921037809872280984022859924843629848455077936406782055257476888390862618156487068354853175573838189395885024515317810876569998969718337483545694818077207092504830688545785334664240253500496986095786988545262548707599597175517991916159621352701486960995601889770422068012864095183860796681512791757013418379524371172686350630479370646191256211216322898620729776425096793464750180879642063340379968560831110269492656008745365574860585165209516063373076387657829426739506236841565894436944009329499853101084921200661260530114465765514121372507401828549799639636868922177776878087699043562645179730962076234447005231077539702274189564367179230310765226593774895534629236115423089204067073918520797768816988981913034059742092018813354677062787262003365801266096739095664784213020370207222241054738814841893577364890917183112557144752334649686571085179279443356788352530380392119014598653602432091134798327324469956500048877630536569058248038055072454037008415963789040344746370878008475094673498142322486698402725234506751497264464110520022167288856222338498979964373990501461047821893807309699697324309204964526455897414731191945083005852558229957573443675107469301690722878605559862846488552664303321435233702103530140801886628359793007979074411422177143711163073166094073931979332421573645582504699248313841929690455194131329938019479904055352179830882425044874271258811785946325302362720588400177916380083646622579511849888933171102162490027319350228933214198568803566882916586903789882204132328800370501441088022645432393011430045783131364685029304439542594290532396838581139597322592479419626905530311540799070740543329230008563787255537948364254082063255509926232413882370415473964404205282297966513274168254692878031530507880046965544031545005432447548664184995833030209688293366478709011243518325027357514440531820408016796683631833512402967843880315590054019797867651934227906001884608568189476336409335359197486163983963956182424631390109010571182476081993274263500566681631743003268027625653228692665266593642630394002926399926406911078660625604760385898322163793053826779620088690660785024692459850058970387322022155244032032910246848070273403578979225972528292470671482425675994918288155638113633738883816490875108473507406224671324909499313376141330418946256095901151264296430635704807146628759959895166546382920598552232951238983899693675186240993958269776924395382849112428679472228796479433206624704525256541171582467251778133614984386544036508602838511626256350967802177198617911182373067391653178888607977409809877813001552142560504687812086438845174912747410525538648388363891482271632934020707679202271946266897533065824938618471618454508205723221062539353556690231821888444232400298681742936239173921490116410315551911321258363043594782246261367517028145653335414423603658535963749538717557385663988564003506715652255711670090908067604137744678754251949692855650337064983575749864180161460152289210415625862124850282750922436079783644282279373236190377764239624224867212008248378033310393030544704069758619345183406556178873263214901699508123751376970115595464265290703556555201067730806197651923238257422066950032806645369360081042560768170380386453140606585147074879193768250005605763595574938326698980683945667901902814242417653381507318758269493805974970897791617930590341282343897617988349833186058162454737487177702704877044699437521204721348707750560158368236223506685462174471884601940920696505367549839831899783021759469427148219547544817162320870881945420173748510587706199105534536134088401909575781615539669972179231036933276508816574585217499990727047438365764307561424020302774145930159473733523310127057962804953259670629138809642676124664248385481370961919474718400089043103127903023585256279156962166876971332611530132076218588129709888975791417037564845508203174492648811162869090994741587886297283706773979577794099750385398126713677759780544371086564405801565396724922488130203558219665675256601140303160781806793283945647733478312189114651908653298025479380406392597509575021463201303478392592683821704413648412919843811838537042790332693024522141020679639903883159721389861049752832613746180224942500613250276971068644236603146030075747246884428225523429380973052996490096900525406626399724548228120018047792062033353075256892002978298594500395371025860013774455329634725514666842050760608878603906449702082962859499132289350268797287842570514181668318124996960605860524211480545031477065946661147653949749872400265116984828794561948931806735287454741921625424879266859737736085800924439718159564454512090309094892545434056122254053134670786029478460367959971517078573718732161733804967775812183949085130115143857540242657197879370100918449389509811353413803624622682495716328971364031974050203988083707735479723499632983206634443358397044785985783136955032561039330317085410435581412030890937430674450769861723794599682833076852306667127890567453726212404635945556092840780823355987647219930320991610652904435777192508240321825748459975306698624902870137244649979842675898992187468963570922734897614280282949123137143118897350797940703325201523331381602430146627403655834196242544770779606940947791573015741574549680264947126486164598229388965859445091315794231766934228734632996631644885802991748354413928745869894606201111303742657569021010806697300747659223818373434698441847328700774166540514791416766182330807280185696860151793519825425391985533802170549640199236965534383212032228833509155853170034602869234884074868958390324921630784206232643156102188337895242926416720678883712534593316702447926629154329586054668296873613772417290492558137391367887320583953588565103052402113085421250380287097272739134616528551814561448075788607917985067177558846005289043400942764189134883766234362302859036942194503442611805033616371972981560957202820625581011025942899768604245433919783878295457553146275539139930926779709090931760601690508508622844519404184718384802007043518796574297327333894810069400820957330908388692907197062723191994188657381046712355116516776272536719401294077032065739755942058402956942467539436247561146273151547996203515176264884487379183115293430959271265403876296577606354709265131505852065796218652503827589276416339053017448818142213837860313160177545519473518414256626768786049350957691364916063451349054288921021041568260306842547527911133124975988294461245694362409208065874895838066684397471720759700155128717579742174650015731365765809533586839848880977144920942687259223513467803058415500377487003178226310061854077495315213709546163322808769930458042358683010891896602077512812149493493305969376296270461947452811204231418563127420069175920646400210835471392868873262077866947695882810934756276697131138713536820109776277800493644719382466573015381878019350827015413360616767862244892208376237490571385797457721532635244661911658427582355479615937999843810437321148786377653143144196538642645227867392759293659764385031327515676991802354892499945309292731850611899378983062514802032998814478124516548727919616296812248822093722619345268873285411307537943016916223794131813123456592902275480420284451824911789524969630422172110391887911040751520803213105184131164789089990911866697582887235128598984438565979096850650431984754111013766561594623743918293516605405672005879591512943220327340824657740355399682801542168907836469618785270263099340425945868709589229263394134692375214016754818605090662563674537860641894601830183611976524112362121235152050773613491454456584778946366330176423059686154519028756762668554993283008142900089891731391610767232459123528518196740432235068484228392541773638667976582183789297185869918196932910325069509750316316663441918397172977791631132454813882685863749315438065708873741761062319213601142489422631316532529656594785205658266723053323860918661009672146804693403904532906949111172464007177099881586190947739127563624972235821511318641649474303654273733847330719775603784366117047530226539753590242641655100916157839783765726464534718212965718903943771160746098136199584447531699757126366506492537393745453233020603961726546769618804805718393796598441239084998932753466864174119394596787875509295415270944238836977770339188049174923489709387302085593608689935858805333019812664002255909031178684481517153102856237463940160428372070673059306296480329672765992516048672992469934266695650700597039644402719464350300789904914580354362455032073632253765210557803479074262386171329154138008405059623982628998102062899138870424594503231240380439116849258577046039296046507829769453130667184433903725674311047788659655776554722998216153143322430723367351047532882982794460151245764293115484101002880171131694484611766073579297454277075120635881729737546821363278375730153240301440503141218710396542868746154531995589312553910932735185289678235853851571850876457866139749728957949627663439915426513471408322533130960521493608535448621588958691815069900051171210953452481740282793579246614838832241565833305015304447450004010593993348087038918821634915678942314556319765726790880315852998429725996984218863454476508655426201389632353102497728393579251605810176322999334153859641792207391288120506167942165617738942472326236790505667969815180084581531297233704567178290292143993504626726420167222963104494684638823293811825050313172788019090563061969898736448918811180526628655506033014350373341510160307436514592173309551001949782539034303740474455517770249239303516052883851274898380051543701358285465846421749123447901221748634307299425257478777523400725091022198225567922601033178107116845362896233471661000673754489749580386025610396450968744976296170953065457137458287563168679706592613741806565804823366528368403385096671199576587555655703425597867785599221318025431153654394513925123850784344104084193761015379178617826377266850670140204698420720988933719933270021155735385678108750842026286016852967251495369113916533475378230363531112201551305464345360568685671359989760733496592678163612137719258659841638004456306872303129871787749439117478946082774021993572025089291127215347665958109295039933873059877882240582285172446153940311144708604647105598602076561197854745837933207492655475044404488658719494584374904521259196946999932605643678820125067816641755744558404720232581442189414382615676490917246836083201506033069868677451024066300791932549323075460347657415601984132051927542567600337425407791475481787437260124553190150813265129446169400633092737999565443285909939105951754774950093530030446973924571645870201119819764585752333802974971921877303927691609578729649922329874545050715993236881794336398161544553107333113577864485953752046772774872152458901778709218557049930151527235908874618060837792329193870074689448033788111109255808697068070531420172324343136792609105292199664386205498024265031942807623507854773496038301918508812584105264106789023526713501004733080673480007236154673289334260396620965898570118193445566582705341562719206803177719008624171566156253562531563667481124163681998515092254340199602135915786607531058531859069780430870569037028025883411787029153090618394457944242781485166225312969684628668029366998638835453612596572174801308820642964062418190034390648194556223286385565044672119061656688915342368764814189555989953679951710846356708638920131325909340649307490422817276982558086809044585052395700384031641818383955430996203088429333179776894256706437719138444606428237548237209841073236369781714418548507399872380788792892249504194677643115759995200447670877742227072283761729703792316868668406049452228993966241728712985084414088647692400536641659898043210150275431417571467497635554965019441368911237425509866389772458055274370436838437834607263820991361340068053797995954711086157831005050461977330433468671195440305194129120391559847993275546258076195213267461276295246501892484782536910152035887283530053327650308309158859872413571304278869836225797430341841796067346854170897252315636262414382835372394714726173388043381128294023646435323144700404790504894645525515385077522651104794114111257591451021566004656218686208807388197912016416395516059950824331518025599756032357245396132256222927669794150777207064713257253196623574474029627191908237812907164657994293207921209151949272506685668967479183272182898946863274782642945469674068622900265174201205130752779224371025882531411235685520099673445575106089779407135169699083052478064252426906119061309950097317633527124917219212875946103672500362320579060684374589710746126923461965654246011900453010349612366970373831965621675343716949483973837598433638537726240226308389931283001235192995695918180739188187907860834034161157671442395631954364098208273438957357835152325235755328630077654472148303550615138526304584509799831431031740295941059150844748343200246648371885135764784953106060282550370100490860500764931077209958247762091295150135607168334628708010253562477539301238055863217414923242987085212220775589861525567697031884232562487370531306924552956795656843047071220343175364260723023852369496874854659146242561176151216266185092600241223727328957757906209078779707593905901618482204379387727167198556488967690217893104530022243272392818174967947200584771038387436825342213498172303721088829037860405353316348551926130248034253013636532109383933478431776070300801382444910676278094909697829032223325364614088586026515684822524797593765429138104042468171054689417763066326270114329172772038598983090606286602508967702534841881156977708719377481746295257096844255524963746588687053435580079501259188028571404644579872161557357955295039277001396526869989909542658392668708798389584679589658018015055301328691315121177664926180626028922185881777116403761294694178450595719546690961201263641630524231827321917589481122703458246063532654986329026668257755128316153946188840269951464690972256584257118271072145666408590524369655918628749156794482469452336613987113187850427782140806147884737864825850099780041461727096183479467371678383626455899817130330325135380627909459262087723558735900629575198251974821433363297082207545353670385489228606393295062431506607194232032253126348439962160113979803991872505927264419404084645438761916415734762647779115596758698980951437778559697149070848944440228444705816232477498166436667576749705192911207848336897791092907388024189390773229649279759008281049796411874601495774887688457975713911553760848968003903644422360401698370819563476363098784522611596372871646484149763234989128003946868932005421990245478394121972643440154032447818097019330534658856377889725068880785551551552611039256736112534320166229282478098470196089778653717470683919771766303113948987612091336018071469873936804161821830670061735039823748961708159288198541677579146281319698570133730807151595065194277891046298373162866128670112979038122979340046235339276461450705174820527519061910325877680211550439799407743148765338225250596410235292559698006646454013831830116489019243726925041169502952706971160392132607780175181564008641235717016525753111201782109446346646678505028027914861665335742732987775409794592172759728144001159436073650761934756873844705719093545611903817717887924963968322416400602355259491889946037445553003257586975629059848341286025152551980859480742935754794310184834532568197768453167899398843439357054375146925052333519871049058735724037007593971929259540688629066789775498962882257517262485988749139703333557396011968836977521662902162948319356466539569824846777024118103344749777819889920406242942208467631791493087091789665237464339108965934151872371361562204334078523849780847676564206557373272111508224436041185047222530826874144579392212454204555639285065546898747934995558018572953172908153924509641829895938508860009774441401062848194842585224638496492023894278588653021268909193418219300263726684798777293877902097074195697701062534745263847946080678012984238361072959450401899283181399356317091250005894543537093754882647242367675354436565860467706002467597546382901477543185714839096971080158516765058610985427368841401084506962781919368320576619816945159170322138356712925872636856796998927464715279417540522909803038912361801954801146277537277541211542573415421311216401379537103382499877590654645712770428509597100812527798371365925518627699635405891425533299094906570993040507298691498901483742847813328953676666104176144605482678221252902797593834668238728428667271802300381254884193536142561823979246111001884738570954118256848813482564763649308559533509564700860923464069205077726120602299011167001570198939484276446576143669132717797263796853740893650191536839855344719835696388121791319141333444240351819587046559388868331640485805164848624841327848938648285804297602580396103886287209953673859196232936533638314207171043237088755748574131349039339272744235032384781264915380998389226845029643268854349318681918666567199123068529931984760148500115469573521777456723634938126952002228037932710226330040363095017913518314703868228611472795323208483309263368361227539623607960337080140949171546090805936275499509907313917054992066828980024390494769168989503221649165223050376266512591615370368568377141680792358070555331749448415669468121057860744003614433300270765026266079480709873467754602364927706031790333790710673635724161183822306488559878725670281511239082135824086633811751642383193274785598618387315191001117820931600359541697259546102693621592974624925691726123379722291817299057585096717539232416993578774946864818902103077520782487169984653784630699254275001649711415973522914543490262394894999716949131354920006890491742256117891078876443958134170281079956348802048131852187409518136074295844363760565540508845143070105346603519714432792309429402813183377164689207177799212225454706124032535489852841942305664948399179635308428739321372443376129506467783453819622100927108968345436684121732128886032115676212955854142289492559182163921635794800072166981650245397231723646968485894619164642110480335294020777951292949578800135442839606174272935559892164672755333901724343779370049408072180376907349741721427112123392036950578427201104270649771251950669205206404550781798871702429013724016044485447613902090761851539522911171800750732263679258756724498587723136056314641303935315964791630191933254769619591785495078805782911237405645993587886605213447837509090344601306359165423594666068878160901351049809248905671515765778554134285654737515351862021991484669756280772547059573458071542541777019910717625997958225851727601756948082836332386132002681848293474665728745091904644807469521687495745996092108429798337796141750098624562591319277693598167812877819790290167220409114675277202779923701224016934378248514177713126423446295717949338385332031274123892509795604191017714593345380059918053405744331159880641809824459456008070401637664854472842711071066339253319330411989802338060713494459895819163997052593214137005782962814928827417614266067123723735009480970023364250154578602270290393285078479964591027630797425146352565996700398657586444099400519577873715325802472798893661352931941265943950266735994708446702800892756189612504014011185303068729247323061012847648407984460644459203126067569198190219626768146708262976599288215167390643382321145731210249057924392261897684207027370292264648566624805368991660603991669701474197802121171224290023144663578098300198303086418172526062923711990657335573333722096474923320468675754410642174463488958084290661644494094587716367397640726637845369622664947283382253158227586155923484271426658429208833491797871340233755367943602225768622714093203716147434628003302060540711961063298041907958007018153912649960728090301249560286543860779683315225457256370930645815987274496255339255600791381896901540733070817053454577384605126286447779123987351407533204110432279582432096712835463841065412273612297632090169370084862375066216008844390276034625014736993643354814554481889401204225121051406224442766016615496657337230191110072339959276291853351395885711701561609998290487335319768414888715700824608245052037729696348414364972415824304842128581844245481707865092511742190084800892585512555509310496735233331551989060274830246228434904954098661853827397797404514088144027020723216356094403727801100906154886883620748003296206363103178807760233015655840435273225210325485653088793337416715956399201669456106159250161797828975798438859874613979170398503418247250001458255707803425706843192019033662694182965095588989831717316060428313356416895623385374413926100215167371840411476758872853090757832796629744862314987563775077277002078603777138950153642265592773230503076923726202881771550126093012264858129170466632813137847566632036751535600149322861662364986998285011955821261678551115451758547827653864021956644225185672486404214630066104093370090137954472566438419174011748169508936439892584980156476074437762460312520727405395281700671203113748398321425906721608161265499890387123697509036900718492944305086618696222554228221793564924727179156408331956375614498482647798432167555136128605347054333524506415423533829357953031101877956113587895756171870008637228218277750405816642238579685273808794181721634551937038637763746487092525358711808234824539884295320501529312513676461312911460965378253390321022386852566640741775668459030200528720456337279269359422267510621166392567410021338109835177930734831406138564706466145290291137849171684514669509048349320230616374951158651653838218633541912154987113770092868697450231203610003039234517592683616747668972729383528320392688481463424981952238431935540069718855256921846918522957968212015896446657195902179086660324385177723120477694707204187897100382694286707862668467077397673727952543161132532921396623694572667876047661124521656922612640031170792388188378624350187212654767284898332012576443433515866474405913902768096058413425107009338141751127819723032115035910746054384293002047084757036510705392525159414622087094811878607289875131527375718581017860637764626558890714651874048408564784188716783314138649930246429452431017118375043982027044138396658827825704314883329380277194156857254054397239374390743986129690181434129172557545255303183161568243754268381630516756664906057691388100472783786153128237201712325209603180917370613435565177659164729623040411372285359264426164483836964967502919836429430202636529383846627103718508048447117007158765144265085116287013580306414324229789221470296446281396834915004348977001961274966584139157865222783512405487728805650787097825718596894828969599222476197505686337331199799985634497184426516253763622780668240415020630084935604391471905870937389325982100670394532929674153355986583473949899683130141979640719968105387016209205776352741005841865311414721904700982256286600673108697859897912168808821538371012699866755825255365942076705510701159103450483754031524919895701219473020087234401853737207965826663846735794695702766268473786919931974066599683046638911506569735013563524863948059921411875482853017284684657195168510192661679438456689510868905520498789439927490314471858298947219988942170223908770455952413265193731197866074522670960440983977837396106527187849440345026780142474827324368293345000978016982153939170188437709971465390406181342634123204961075663429890037720258564608580217278509403143869553789675415301054076030665363834611351169785572028003814021544364663122739260584879243648269079105469159386421092217457987144744455525226312892735098820586981684318305624191667335723552256138092795460186987417592816423748812578117816103755381951938123611825763302024178487392307646922340219256157574384910688863944072474235829142228314393217806277042455029953454115250318798822222971057679228558268516921403274623990009675458279112822833953312344404243371345520553048767817275945831781421013998160699227674363735683513762501630677400773103059895477456212287206132177800373885688022715327260336585878261157029557379628477954551679653822113456940422564004997493375987653875473580993323727806219012514859881085829418757936650278249325425672095607495731537680391145587258821313264059548252545475904511265981774234901401627785938606953723420680839882041079409070880991369126103844559172286457002975553709503353815708551907450379012027579221828460095528294666341058415560955195309517942637756679861493938317374030335685146104398103269490730734496005902985911061040809995279756382418939918326804238952326126188902158694331222414459905649348436609756690174271377203927538534720184613932165917454593952334911636348839898101039718301751570185374158821167152954149653299365838414845769758104071190810480682116375090850328218738681420697146119786898566669370468577606563279248588070080902103545134699910753664739012265481104128304688941461201005057154959841821409117511700976750595485735413909185688175320334011665237403309624150805836674696028807270316165293655082116488906006057498311481132207459512047023544895809690665408903152685171896735783379257906707112364195112380312237777157103546214819186349536986919164641183739364707260424959837351297253766657320799073775639030606066367846111835277777818671313611614626236459128421434860288776400825088195207868060909505465097030263638893735810623813861209375362073284074381399923725622532121021613762625801863238107484187181307018950854291485176859965212238465831993758982137075591520888920989144711831919802396820382412687437170110007578716081641030695214432194598500797502494181896414886530434421054292523087172341894473661603203282097072558357375355534181219404617960378286157251863383461274646092550917128346833203845163605645710452667080160580155211320604356000091325426584277786028288137094270291384544235718424431846671302678031572060566688204954600656981411622879289547954567415976361853593120443397947705683165891820517162813478690953826708575900060998493954961025458354750887305528676430567629659388688849509382430219327417709800744866486619953603020335303477460826919195917211263202057013744930647840636050414584678812640286448062327206322347305927426050191220401933974203866674008300324750328158415463962921406384695107315010615053594380950757481128517636324643472497748026960317183377504401650166757550625787852813567777405801122585026993277272830489657904843311462483935998044194272860986045039112111338842033459151525825074764349719505500528069339877498144383541392702623801158354441762849631541638179959122183324803096510580638959511172545178517407713044196855645888487421446440388784917720720512963582952623534466998555546305454855598825153470735105695624972100957155371719503798864496462257346682504882353578104558231047378552788777746361719962439907355922340296793607699359528703639120985479423788749927253696610835652900154201463681283427248635838225010506449453813685198570025562128943713225482635937727042894444374041620593275663167353528195218729714400267115651192182838802972095474492080524815203042196518857274926924840629485184281006938959756479559822836494660047645937162274467414621629903903940022998489030556441152589488554183758574674344623458690195275913550545199446496018793656814160663445503886643748098125386018164036510968644676358726480746079227519455922031308685338214226549423932799526535612493435024639747266616525720845802800732663576703257529383009397192973752002383632034699056202698856824584862312110981796818915924283795877633587413539704550793909926320898403229125141234396367723027457392412644127342449726237232898474508940605608883128703674434276755225344823743991722469824247881807172178939439086117869961980477290051845788842478022685794566093045842010071742374855320849708054118343861929857805652826653615275820781520038276770426929490088893272694736197688065890160408926034699500907123531213085678670644364799979980424834494151164200747742574948800598546032826212813817195736056079054415699792497605984637055107667604291700006408232564354448643128137689753410176657032308833364092523414551562712201264895594785481735182948293577714336651552388730405072489129682096545044074056605538596578302563417157620743035025402916413118863440003606935315044542063162277705280547707895856028932673200447843313255993740895440820217674206294786087583553853739494468109118058282124759746353391446499832320409048817889427314177902869328542280367828668871088698783662542259222003100131388233987487517023238431519565043174348574277878311953043679194842764272867754305468184765417764388919545681860071745477294892028147460440072938765709386651449561089506620104896878496421393707416060768545814284241975523522142686335478405362709882548600805887192083236007827911079181561579087545872520690638959414157390184674115644029081264433434324599813452146310890931306780117370586039164623290724705918245733550910276227264964379446807739739464192027268459213091437421766331088955066941312638641731461911568181486399980348170299156459502412149923698092976156048802994137144953877056340477405100135706516288561726682984954044106791257540935494181525111508497099013457526746145357418470600312993972820431031866617401400146977855598297964854218094301271258946880099458690453494003505826923638616391169519068674246197547187779460254987657416312318184555673915366973227827363476648864726707188253197633947437935071302144813528277256637479856578885158629650907594890122423459211054113654753070518842292343167615609323269698542266757117361978085905981662138245499416715435749154448650138326498738160930153654155680245652412776680017840322993902406125808013710998404340045564416851183905741791807605078350939764171818125676227086149331717820260824672180787614277358662986128836630857925152805561176513228311042250251569464100530061905499121876895166501794472343009008912726721430665185359831642844496444042250434844630370381322563744426881684409713879195290909015400844959586024664705523885020516684319097591447859887999588320326831684868206193387723609779215509736185643932400011479529191290880813170261780696877987034563846933603689409515319456743920565522175662298204844643709322025833552169437533404795559659199907936899003225693557213695323595612571101336772864223961730138009671915298399279704813002468309582411719230850883707361142854222398412180415672600023240995477805330640703418879470024771787068008722465686419390347845669304703812794611378645115116171049351717922365995999087414010203302059922686518863979753291807614501236092927336396760894453423966717352593112642145957620466324939378748876583877759858944513637213359412649511575345454900335552651858264602064930974084967197537218847632046710600569761572678681525563452626621393943118048802192661089025121498723853362716237365752721972395011626644399101831332416249686455740765768073161916090468631612041499028663704485063528099095037146223692910534205444646093245854434303766664282989206448864909300767524993719019861039651928340198175568789366076632341308564439959703677683387233161918746496088003405262790964988501641865836407735000262590705839575293494160798745111861990665190742640630490251099904518478499927422196963969233748920163184212438640514735221760564710432308015602297486654241780199661044484500617656895935704969251651316605902356314160489977959017347503051772429905236948443462390871293657833691994812525861531797427983409028546597473895080787078690810627525467865042961817631149297982660852534395947053947871469727473417200964282048889867967257427622997953781167682598075341814784022011688252673931508166390328744151233574374278230381007301970268802294877567453064396339681331007943142088704518116157871413537057051517439833478249844517771414686188913878868821484263563895027711288277320496355688632303731131123589960531915690474684528510072452566973794036677721089911487272064119110870414610424078446815570153220200725072507909589389557543424178185735398742562490447348680275976492562995372154906489742235285871090993803534299211769235432595573067741458104383361490839678194772742634228387267581155008778685477558992032359985901183416866132828537343494344502140236830626719742283487763396716400147046360045630959668231652686286581106134851953473470046686519450344346295098879901903969765365092594566990149765257152195892758421197784051303781115372049636943695824561833465734656269264613556389966874514708323221207926202522807741572533487910097668229686224288244304722548890057462461385851738668912355292343478460013351218868966419914093150850070832153771936079193676637954244484338872936949800891051161830034877035986726680119040831310481788351918550246536060783369142398041343176449482294340680845150732658765911015861831091435402671355707430078632286628905849630831137307718143350731969091859085669803552053629188253629876388977836151512490349477838597919515537432403709614213792503471340327413430481568817157504453226648891974053469161792043707203151780316317842573673292791679988525269668084517453300063523118664059829302345459907112302501944253702130656686984007969133868516306723244887618927676594632319915270447053933802797506216130259144248574416232735971394471979982182796198009698878747907940306695711310968956389190598372052524040833697184204050725395448158162283067142433667258842079596158204020802603348136186153189714841438891700135312652387598967893882905186138714699375847932857551964650573734799715295094919346916176807920953996243276820769865738418767511608455049854637401014565367076499986307324228450944535786151795287240896278347526383949530157910213457347079940491816027252616186521884292104611633825518706616363679888419848286838480992722454759471160988348887323360087319697159601702379069477104166841758145023343928026739185269453758254652221222870819131478687534865276051467699841330835121353111869491890345509622747533637024398152534763626769369542426907055725801814350740483288866776611474735647221109890660355100509404041154674094829889259171089758476593173485836494931985897662423047060499909971888164003645301846798434819209338355829366839045108213821587696712847248564227381478586404988368633169773120267108850490241452974123356515636638305659195799461785801472947886186263178183987924338938325039219728507205262976742493898623734728079457666685465365511821843645641760099275111807690072269348322565626839078503157859953927287249860810442221653554147639412024667645101697075051764503907280656639230734570547032036552975201666592201319842816022205154484878017766964637037837653956502578154901344413939432846574689729743118265723816285290376441422180954752785915536848783860777549367784080343554988746515747819122639038113290170727334692544593000254038921124052164673096226085058643838120943002315169598603394202498060077072851022363803265104188374022291980244497674631916120233311001064706132400638493022170307411632620578065543915462900495920334314660147818953362724442157409890120933060630345384090485411501939170599190607783525715978908766317478140918887515904138930307768811066865253866617520559396011070962606516807739389504463517281566404824874767584434754436788333668340636590185975942693145138497406180128724240548973504771598971817119844997838043167437915399648678965334829622489382867283485842502590216604600807050911439069081671248845500261125340795286508541482369654590547028425567226792160073067962958711620425571483164457200590200524294648269429689825222206765442484618293341909269495723725421954396046701709032611647650116839485427411828703152821224606521182102503909065634550099258314827828252805159792538633222257338111622366303476445109016823326025590056761637004002701602444866074679845062246281747666911760864203614077175310372065733101505277561352267563013576121140515183346872614057422881569021494136905624932444762414655330415302486205261959721805523402903195437302894633876707269832076900315538041082931840657205454706484969069176532117327596083606529939434561885806603496129024950700808545817607166015820512712655501658828662467751385466966911709945525643575518024409635485430544393031595266946867138789184425826332708373374393980736423397778467040711773350005870801924626704348923506386280009153648731156487962096433079482901313236423811161743159740803828329725799414166455619656455161748545440173590946318684906364214376428729939607746138290927804926808472714738453004633375517910841953922720666090776145362408884291021327071382571744311230755760279934472482222460572186660619707741658500479625219079673581447629815464270739405360482360942525556055298032506197197903888389581501402421944682963487030205506245948148909048952228067721632699934229278379231256075865296365111247277572740654983410872804439202798315621001117309012471610631342978937738537628429280936928344487409740164153663619662549817358954694065508942327313342127828376813504793688938745206922106896224934089649563436514966326229971909190401510148300154260069880869921181525448360887335478521166686143262735814948329220618763636837567077759894242992217152758051136964187961508226414803203681110137044197794592609329717235258305532923735878152563601528113811377867256741923346628620301784893996868191020315156147287721157091202974791825080123362433533206390336957011369910890966870731406338605463813295926087905734334020005673883159176969264341952685939234188337547283995132139959641666802563399400744247212585434735055652671567933149145627851518249538841053112056706441583993278360616338434366711216554832061968605499239394253368937693366088432261293692972591397672294355496229636570444869926010066092834672016355919268462256591716652539999223253057774573034979456532947911686437345674310239116402665669594304406595369731090953910597197238385226250045028301214695736189477279373266019228040975983611004449728183628560980313042111805157330862326682876269463078198221553586965666187797323400079511459745571068108208769390308619952236202401471346380399709155954544932259410656387841827993782151401830493530126007852106012432971541958770944905081461387904640046830108351749084082798183423744171709714381600146992438625172619119748011027510330234519335358569439239711450596711044655142994606089620717948856865347303617021310777500549438522962161237069376399053802717068850916037262136488829639703099750769242246093646892894837296704848933504497184153725829388998800163843829622668593552150654444184586238276221193951846555077451738286673131949467759125255490490018090494742469782335004302156039732676209038901213780730264282506065593099543795738555354976367715047071812148573663190175304856298078027989244897651479575433714718088466004321928265442422079473300093833308011783287613987806206663836353386571371886870607249716552647306162553847698999889596072433146178979371432281396481009557754532883838157546816633063807885942181171438935246070805157370228570050923821364812212719441796246597874996536545275636893196019835289466087240414724671101041451768907223245276022270307713696349384343262106520013086771181756196800323663541712508404762376716285910636675033714388195294612284407804239275201578048265467385022064501859621409590850800154342453573055940013922571602401552071917105493531591651774069019341662879252433866413202916428148045973702182433064431833870798307069261016139645597622526669601353257741264875031720161863011168830014462934326224232116260164879277940007450681557870245085693014527071815220219299088724359061350760737588899965923289274559098370964969505248623661762859773972883031340520527398011705448515253088916827962036701395699811597567110546225520701558018989805325858914942313139445495066649383633006500561050231952057814682045431228333175507254788983640013615204003526766550215964098710125704035222457303826034773982695840621104379592377078884802697697672752865824684532331086476725723194228463820185134784885525987692529251094778369291436648245386476607192901594923867428114836074321103333117391595932027223420486753548189158673410423315856768270552596286870457940146131173671444259821915553566627658883069535629462998944104308280941483013401291166615749754611787617235893559680836081762289704660329275513696066786541649382609890803157133832440836317992369209645731046227694384955524616290307360662109051302380406322509068497272633178222259511491517344625535518186482158832051289582152150883671462821787121134701461456185563875515559268822175414957285371293058963265153660192315745081094920395048280312547211657906559546750626490068017371005124990657723725710326439630076210935536531309971934091325005240202486859799414364513749992075263730722562926785546122380039725580631723712494294280184497269978030229199072921292574079399925900806769601082394733037662849663053211513794077516326841046401500842135017697209887099245739732951695817259582056645934959539675652135598714924209755325193373652276314688554072799819346247197465293313085486433816891178535646816570367483516033428243192032420078660304616258638852081874554782862192779883357723996971600024687698771942329681962819451898467739630477192163230390619738019959640209336438761097575406953681558567870881120809905795142329110341671907323360616832922740336814663199165743518622105397762780033789373314973257694188334253704991942129606858688004060580854360501906831236710751249084768159677178803350947732242473720694403454462781437814576897316619049283844826207845641363606307499486612713210680504224901167978762216254218680225419649127805784772121654866781116624743716975113750700290563371997639389933317986271384375908511066601260128200010805991272008626759596841703408738943358829684335806744350283065601224734435829911855810259284769693135066838240037107999843558112584065887936010966096063357239413466052470431844513837722417277696552544420468523672445680759758835407275312848306607799559933060173149639529819716966830372844649963299661802265379080182549451982428740240049953994157933942206535861046170499060424254956574066712782694060813531979239977404925246671338719522958668572754320487908896451946011018077107409651726485490624737746592145585614153735311623012759887016303399143265674276527975409151155121176364712039571214222258872632909026777416959816698473067271456183936736767526133162026780988589317431625529548596020617139098982483308509173195700552577311296048095254010900805914249006580521815975992808758859859563926195964609828094291497400339912871690455473859070299809561281296782618466718727528992997337195847758246645136085356728470502672000744154071942365810318584074544732591482261449545399181667013451597295150738319556447534199674213924659456470533517718403580129206958277825399088193774807661015668024249777904645800824623803935883985526817642312597706279362261504546540590607824446791647751179105750380016519993375568349253568752004979735451192974531099584441715963646783504359019989679332628672447527271498687264728529190387987025588847193646187580497103648502323023055292400207654752241672754091575923129582702651231904125497785389124033336225210312138464721977625911685955615211924048803456518946225822770865978786846554571364818744644862660154357137059799056660386173565308798616506453922278686122513659098924918516532776071422677467005823209546515248521951877322836385993908086997414989334636158411924587412347782768801839491512994256750520048779402972187624763508566562805356165994424877971365103381411053166959126048548446319967131685592232884139519965735618800877486925575592097022148834695059860578541157970789483984689976597145019459253620343887603026262337000022000265666347234055136186957483744392906179957780390181797782220121365739796413170529113752896847610552068603019237305901682355284552502666048049206913744706268344680882515115553491654716580606014885429275934221781702333942396860777919127035820471497761008034479790510121099567930182318887569784218593553108867770074034118888115160096181055954353318056450288122734374766206425529351347126228195738062091098842870454306732938723757231152827965737002387520312673808202741930103923649668146331857158369683144708528248741645283395264073916958929592535870892189405397081842036068694892011643801745424827244928429928721056214769364831888625112214635103420826462398232902829169364258586381219633942174171498323363777238748613000685894142206771634426967844173078959489905487902213066278952374813456163588702587301581483295369462095331176736939300066386574570683470011326075402863371655374691550385970797278873055852184899086986781745167900921171878329632263138166939096712859758895417042254139318539349805790160247372977129103047343215436888592460298911472266210477979395673343134642649530264135872061115715032312254949948550405557966512748451848907983290586313872659369418932922413215461577579674291867390965515285848675664989249011295726956525435534898615435206357080612918651878175856522331795581515041837173766577098211324463226727144382003294744645128329366859674762957761311569937600262741156358469351449707187525936415281773640818674252950057667455575884278305798503336927487448502444715547241210106958683173209625211800832286060809281484135677719065471673402462612822949107969872647750799790550314342657371096631885842382584566615009453711335757724061045211038700901331270392898088356390705361845273780851094521125529176523046580403010347537495956726638526006075399188051666094701847635349993011804776354582681758887157383026267083485528447020393761207546987118456166918547546436046135679907396906706574363632219483237307761219377774544144795238308766179117450673742446234719786518118030805634930092753440189952142415272898860670844524828482381412185105656813085764875361493127595888177526670548601970137382199821669746863132518824375898205977622229755486781008430923993182673144862121122577182592791696360840176291871217246694184237564412921921069730983793784010485770418836553752027409877537369919046569852745456303800237000227872875263729219889982148368645069293205997314021899212146216133393453937209862839019177665671648069947547322533922865050974292542279668709294497504426235881589192845209905752193344725565239716519511922220562018449605770717961248283478316083817934602083454725353092533802109355065628799632403439640998921913396881655506880347888264713818513175799683059948807463996557393546367249429671460339411993112188698241198444657047962774489140967037987689304742836271968150208746207540536755755749822471343776960524742955562274941576578165296793704501465774941820266290218395499306129611816160107358229684221915678811533838531147742173279597173475714754465603121759485054397792002862493620874130242262070357869178674326989497523737583698266791903279007970053855642424645046465174799355340461319134854396056258507235992530341465693991566143285805290746541156574520951612271722682656692959545624742612292494918627133362185965460806250247021095470495154470440956428664532231146094187392596597498688273143148052756132990952649642767943293465747761767559416415076815896331802500567769589091191509948571027830252294218748232563820998525148975949271905423971639236240132131959136030748530310025394638575327753938777166609122477972333462272224586359228428358920887427486617872930046564355097374456952011121140066004008989075485460933005667409171539313247848417795303327059787532403785637754171608269922723883921943548019971962803958292277505934359200967887092985921646886216610083236910415746189154167555113280441372604224424745269420141352657096403595209810341894102628167994054545003600951196829259284780985136443366948486030339263949160818175104493057333152158694466324357057757288013042928506357475823045790453606733818404383831322227109449536525816294014476681561770641820183483397356204414846593556335857669799417621007935965720947315713317890647255917953781598763241307789903970916170644843742732322552404256344615974245451977900366755667520889395142224804792130648761086314998334428337892981876531011207270173057653735226106370162939414949677267175467052954979684384819083064507186527006674791686709088285164765606016876655286554718930264744091227620007111716921480264207070183140153701069977639685661201708948856785284188740259305457203738975011259246128040024778168368391108401118636665555397277450768878218050713705890042597176787278413502800600976711526027841885636188846519494187814621093563540571564976062562906677250000535832987656987994810117882202079102887791923780864163727817433612504948031361629657163609806774573316970436881356952818534291378494545349599581563323818225272531337703950938733106072127012941662845764842802905326266649738406931388928936094085212313007595603245357696213996978543039878037472075809721439448252075276871970363756481731331984554431394441918746889515639075221095866873101950664598461134442880299891462677436785963038984854906729543246130632977219107430674233833492197670711689541862022345853096052805516804038820355342311678439169020510023177079919784590003584507688364934588244294782303644708857066561195121647005489708827515490407441234394774044880798491660234041995878232905600211768188258674193632648629915602988387045609324871494652165737824530067957932351609285867288381654808365138117011336998747482937376092862106767209411161891537625841314863908243179532548431631540863766836548380762036246520779972253536010144962185878099775200734445228822864586262631719391954872089787261789044822164171220953075652246310873508788938124263489909674526813681915485031564282571805215537879713769215714868669692884873772129754838867970800746004107176689503381492756342853890685581200394035058074166451385411373523005192452568300909390850446790980724480367970601302554894534230710167039707203652399319008422269282832086574637650914165188263338655741921340660082700408258572737048172548382253891096726137454332542044909584794607655925234583418145446910035491357330813815428369921580433243179620580827245706496794270859894034385059468075218361910186344651185501005102444841156302749804899363168566028226839461069799365824839801813163737535369384716838347726152072357843668997352319147949605352744467801085234236243241397511892393177951598400457271822939018912676400850581502305332394367637400259497690271163759318651846859223080493285061941208500817684118681473209952086451936581838856443126022793616998162004158560198998748682698649842027640789607548440208799707722373454869212289830820647616603148105685290187595645251791893885899895638778973084755644004719681832605572029117078848298444257879253326511887493049634718612999577559821809989822466704484658678621275864208904052234966950065040362391574988684882580223409611015562017209370901052123638542593289302974342758547718118593200892571372956241451482646916848563176393115112126311967158344932240642164815016822666414290119642885572114236563886510746381647104626623449306250836457770449055740798458190922197361032582564901334475400981240134410829323663248134634554374757436201682765080799010319712353572383284799140235516148360585777889190886070569165398616186790297703667838090648720208730166574907276495916474359441722348591875642356048880519924274992743936749336211686982766392183046299112136874754662670888607560525740080407144561579111162954423467983044166766208068326083968620606956769957418978139658112677925856894443357016123196482990333294636529472996674250974515846237643280626375748784597372609807910816156447236702986853414379837436233800404490922846936472107660477671064538953362906008929699288818572401504243703945644203251822551855540416481287383628483595828784843155826046639909117798611405605279331902595240169353410847937729859865402218655258227904840228952078268258494721502110457583707504189032429590855819942396937422599183375737270252556075151343425454520965283755595419039031499315192163637703992357902729709886933246328111448804455455818833337374694790398409407969850411682196944619802832376056739597094389107873304042982134151301356034088865177147194650303612757774600987307915595763579003025953932519176771521237412359258425569503436460953112130855588917349899261538435404931005527689967694525325018716040817096508373827330423430991945367985627810345925674099979496136327150454594068986586155950373480681893775674727553292801367296438509302253053978377709222480170432085543869986033356346933683525974798290904152239951214666789568302504950757307075571936939119399817956706332355611387618291864450046547595732504696630069613575475007899890756541277374293413463510962730757703528041998361811632739310312544050226699682632442775352583476692193714073074099390232495920676956122952510869306055599372893108429535109556561274251970457133664183357604491214013500897310257876338451602641626266161327532922277270943683292797594789770866888014705804346044113204417311521143907949755316995538883649353661708419378348798272025711259583673109190050477639462892978555187625667425342818752141563110752384322015937998116302286500687846162105731603929052736409389844913699738189771648906736869170634303399003363409604157052651408727370926908521964278117302680429233495234870129860652909463468315534507307094652423289998664242955778247581301191997635822779978677447676152571930465559408063565398499489719382486350377878439050500186443833779529425134130030853441899168190283918405745317464575057352489848790133625866957925559363987124917048521103954196425908266083877858604185719558584123050863044124765649516441220435836619927135477745016943685516940329008348161417818064651646910361512288982475013877462423112864044172572053456787167979356035121317837721594803629292831623907324433783079334848458486631847077543024930618808401012463068734462624231593751303544594709956498208086631900048538609289180677234526223280128136188460945329817434118630035066491667207787914928485213687714081107842073285295494584529758662973942027713010037469243038911440049533849397872226022608639541084150082810134711625837808381630353149782752440037632099043957322597189397959126787768266657988031235598467291694027374232011905990766609577376332031640086614172838088376810982368984298783671604826105319744111931073365661032798383830085356639507610451409860570513791266964778821771161420748145042232231308770552174575565715611903103912809988019855019733864542185065546606743350452123028592290718509516355879832806659517791471142207479230050223055821605647332458299061115300633406687995677565636862446822299204117603680753129262741751672197685149604662419027879209627931635582198685798883166336518085068662001869937685288767290126103353160741611892813681442736742173938871807702652773610599118973743856550307478510135410238691456770995707091503220529262895695107574426138659380426592953248936426671283348476024264047679993614739690107683214668803420414352122700400928082482647285661959048573387863997912627175413539708615200978533801980376027781431084912234841103361880007563984043039088773554934687576904355752864146976685841439890239235226043055903305905301008918075909694892645032657947890210063688170353700192195422094181759408690663266689331825669614490808612002571851733233570667101940062150516171037931934298256365867642076667759367309298737366698121646666953116126466017668182145690708478197748787645850335376668503291146253408525853285993573579558128574598203090366754014060998821669828177248102233819608765808594439749478176856532462436864905330125248665657142820938998622804340689874941452337176935088270497434803461232876900782361327327834349148101784619423715495156262192886934035574070817908613916807267359931312608490850180798174991133520077659543734443075936971605889247638293228119988112319101997254929472535752213871879034385441360502609910160181585537847183181484485347484679715030343910555141792643954462446845593063453939389160359739706327223402754973287041780806448944123450737149717791318911984726188000964630589175856821029306597152376378395437812555381490578884455459845716904178685333002761854932985524072316522227271115073843821246575411306980819576437957707060385523971662747678881672583805270510584021502063157731830082737444334925971289030007011912061341887826441912064026496336072131644108577090466315818847734920074887931320927439837225165762536298652329406136111868431418656636295372258029940137288143751906346313230311690034973392720367009387581136002924069772493641114510821239986343368432635219492306636178660345282447647918798485633175508396953224560920115048474344901133445991105325100139501112932795950689794008171489893096853763029205839955987488037235318795465618948942052459797070361916903648287385213679858571626778433139801962189123136468858635231323740135535225967880784573830506056673140280867520122953155153969662814724106124696675239324184702437970709233535257670905358933240925954624149919577419330571165991617227034654742030937555955208219699709587822545878779059855382530503887867071639919054875296693300784909041019977830741937832720016785980721879089538740916043127985190299289767385481496701928928701995727519539239925831389852820862660201948506603203533847262387917430864750160797637239749417720994011860213664508232855634643100211336038655282984155419040095540505596195150809185436491585089464332484854335734065865083045078295329896586316805704035043352923513801043796622029224141135409450400564854893880858537556253345935971232331769293278074891113126277585082458476179349613798445297556231997523228995616725230906284411904898878716355989617607934555312289584595552616559056488919295774487323689344607567853651197573989577708010259156712829105232248777053713282053827660330865163523614801892825070366709771995853912192177581517841019377577462366268084453152963994167227644521023111075421256411732101589814106227165693547607581711174037994187658606314718443645539993533205729704620792094075186036847543192600575508924185708034399225441303478383280390400390082916715287098531031800923300950705392355681866697704631439368225515904038545953054549473778311583565978815504262633874772351705333095787068807487327852028540672740290804375257591564488798944610018351865105359756568265610251241240637899642919705120474755614680141960296825971631688255927572838009590703501876309192263435961936760790873855255468327433829142508153407606233040051826089629299093663530518941203484359502010044693011892039887123977015822615385963092246751279973631685320664713116781968052328933137694811306966577120261081430360682745315128813738668823009683047748639509708450752241801936449737341610108389763354887984743592191219941751811610624122371316718882572574507784389907809710513782129008826095196069602444738222941771047242173904191231012994579222436068787043242893844452416650561696953442158880419163423553560036610537178497958108132397170912433558542277889485137274880522266619994968833863778775191641183418377007416817540297569052423043817067243212410834059686055667089112359166134870341344314152304918972464776895894115561296137631897201900145854328895171510810618346108846825794515312238224220015428891535786481841208964345136161426402467772856331038761458994699877511949608705697001658256750146103381195707698590092473319502912779791324255972460589816653767847589396880835962115456293985608572439947756787992871814847063780629727815000786172728169427293154293654188924372024567709290051793816652017901606154373823790152006386798986559856919517132425573945328936930209909198134779205136509321533254740477173831901066934306189177124749177076670777294034758030818554193815914618510652797169680346227144999449306739042549452986066107106315140099009065116382460023823445765477690079343057060617852704831260805850491393478384139724061698245039279713362718956322220596641467825726757967168234293167082556106596629373668185986876572213668676676118679036731578527942893880070686391516703675606277012696826893566132703952862326570991519944186160365228568552310041172196053387058332897417858456520558494020811518058582697588748970688458765884515430105483038678776872646231491222418186238065912573894550062715039271479627918262080959080856501918338301073845567327537188258783516684802178503153153797625577820839153386135461867895676002019042292798777642025319359213397734270273420603565590444205165324078368570830935791175271092565945668771361651482767586102691629557862934054534163167973280956616742148136237418618681934931800760397378937833682297290401778124223781962952856998728807956329643398695972264140457377753028625494495937621429031930114658255898546817969449314151074692755303433714058104136362683411663493202715358361615248364784280132307538126127200701542369053629140435902312175194262641479453713780060233349102665864489999974307537377304163528265238477393703765872716924256086184270441075727173786813040449585241370588195256311448860043912183428965943759227645024694912172476321070846311460767200363903561818325169164756126974247970398766133098339825122665157400578190018119269907616077301445574083060541967447871332043142605043242727243271726120599355485685008152140222586543236836381531905867381226445112154244374085008555294236849379366585099224445596448505047122848739762292869029662399437952995719644561864594332941612094759104649145465479491387313622718170063846209555949889864079460768143293320104451357428677624873813130368913833780808377091592390858383897592152805147946612175121388206514565735293686765974468112286379333990087307361526157157537997109415463014012667823942909532659389263414525327520768024991138698540640839950898393101417389536953497259164033259533128653145479112649407358632132128452439376163664487577906130898613736680345496830701483676454395899737836257029835290021687689656439452860686328010405475393714774352573968529104243603636001994396898111698904240829113178283039436257900584458095544916784307801389751883213920398823005617764040106501118924929158252983005513916389590359359292344435209124409489639115333302857555958638942841948541842885221966463016455997986266144825683234259535977186631210908473893251653497874690056745770983807466872940224341396816708250880445154834278762405713704147475173802879542900743626468404518980927567348057245307747152460153371169116950852880375061070899589893500240535514463119226634295736508596900548445631591015575792086064867104400699437542239546157948145757782588599873307616936367298839163748860686410413884839415168371020041683271167646538256135615114359280840628812964444727412738425909905213261645345952052381227884319737909351707226512086848910961193896391454773192694668089332964166987487379697222596758524897649445530999460606939268114322112720644296199873545016136992340996832145034094454162300158461938117447928222659268611057060999368924167359513245115008409790781476093760469235932099578590970494270491514149104864946880624616466693548069497402507721474422756448778282432832646868809900870917254743816200105391056586923374030667899875540025051164448711449383995474500338484861862604003614925828176984830569038221850130082732318889448829613546560065715277303310090295918671497271366656223199428159204077835815469357821518981845697373942505531045155877646480322188219778046222687801534633971921424945297848644425243711442945173018635162583302151390443410279952399388682107327611666378790815346980361929160612209246846443970084794701695225255238394763970120479985226386543852798208432887808625992926130266998820566791474315042856965944150947701263742043806697720685048759788394298306431023624118060195314030089403016667981572915001646831892084015891944295907493002105137840132720172448554761911877016299870029569431346300637326743751861543544839083749474778203027551364659140356412439472300334307083267194583881113721338058572112394235082512765405679437327193379462977546792370658743537890632449240651054593853834120702636207639427169748600040593600015102690835101887551774151531186566882712904933715303360509682218445741642554045164400910774186992724090111116602820162805782629858143016137457365593154365871825400127659446437101949268404128981234503048698459729469443034150710530688424936955659593879779988271697376780774439177784751590140853254927986008235949616589812558301781013224652113880254048449870918334301027058972646195673845941131777473212469118476806778842938609792736547104355412283545744177565760757722967519863122266016500659472029528676770379647485829500441918310809906298404701098427195658323402575533564286587980683799927475043758434321000309083483535846328335126340669365926954339849244848105071391566103217557304346833359008723190356248850204746339557450255358817265722577502901137134468049282034229980578916124946235939923922342146246668164693241691397447561024603525422809251703088689848865321810364974767088897477613824468401424899496151412675644908986487478700538749839615463869773677419686268994548243482699229619821175843966620594306446816130989333218088231979842037789460753367275381928648643864874325506971955240363686498406935971385195308408615939362168326161562743410851508753982214665054269986954662350760776706602388176358571219856098026611109328573502645770803650351079896440647003229805750153412743400223965851830237007673589860736370833981454519221451144586411175504890119278107898280256321818050501906210050646224055609706601426171970547391196995597439651389433275568517794696277204601603318725826364115781218660487274921546711406102488788131131314893785228648773584161356936757404757075528486105048023635802576066261715504093700315765442474625023150380648970857850551681891583713267916131400785287998798216208317279309483180660207300104150234415886331141460841360339891776552131138725416602084577549145473671335356002116382610407768838139322696426433127098324109604185513171512618312708787646467599596881766197589916742562860067601524313377879422822181863518109508006039513214941152257091539786276885240727774092698868664394220142715177057023434440532739362463823065322118818545481751238548053095834425799237251330293998538590459344299381381376924825821616237835171741227630924529213477010395667657574680618716541364931429082643808356740143075136405518443034122632358455974280998626791031828369170328382042124305857527371120508340983001166555039111072002849005866151415353324499510008269755231289423787158088569296096194709343645922598152673580722568209233047706485532372263534223470788687963718110581065184263404053855136618066097782773689326209902779651314614743275295405715213193962342969056493435181190517948990462391733462373599915210380755837528882485266196259891254814476043318758803423723475916356913297114883284066925468502260699786127589385494367782725423407699471008355628441053826995792564330330166939208303895754765335387715126076867962831451734345730430987619079801909157410674413953946829581437310202290278527921480980868772437625218274872705551276501560893036138228502545605158065620053810568640612622445092196617102398803159839765187928554035205925332149100393229737103163532630453827430594848231718427477309288852961518620839604775529186588643955569297715181540316578192715234384769977825461776032564207239787592384367959165224233508940292509815954840831612002372356210886738344942622986627042956903277129970808108256680916819778759037104605986709790633316138509714882625498929485733297271188018671931337433669956462333367261872732453582679242122772402794262861335974443223208595450970223421299388852257691028616327260408947073664001951546256439510225719934971893694299062721958839370345382316764736873312788916286925227024624934762327183758330709880810558871606501831853039519751549800807060496592766687147819337889710938669501173284041477741323783358872603038969180951519984781992017552827044935715878283614416038723660961957994244626982761201345946445776212210757453330075431022928584616656479488350156793753944080500920680083484640517635364352428468006701647134211595131965472834097999279943927745948093303961833152074780175661996049496159083919603226458350529868125693938888699218693473602060856267051902455945484519124390191238105722964153759975919685616444477368726960156076479110673163569405868930173015039468919279276658162470003180522977982065321855814394318303646220950740614582738562224895895017831906528314194524477962235436970648576289540176053977724132936939135030991395935056991943505227047459871037517122654335124847453623980917466090953403582574241005706707379453879387530374005602169294124833057110507287583641754336689565169805945568645756319147489986875379034812604661613607018360349853968488360444318911038612976718542601899144912154365718136224261422817285592446126550678448933733196387522579371019119017494515901686951828619875926419868789255535988987728562687844438527742394635163818743903577054217715173881693726896287868758290353998095028208683819099034953126891263137531798306406632028035679593780351902516531338300134245796515923800928468765477229471976624543620196231384108540885373430908958704845043236745942579854951973762303920246823146612757826570474681169742870319278502497352077666507862765834368389961053011264099244861323280254393493057142545883873553759626120228194839695297123542618496602326339685685902911444070850596720847155815938608265056774335841823504441894683266597446545495817822409061843027906061857837939415177808221830968137219967065499962718817578454229447215025209947642976183114622405369197413560865689542353729697301250775115578546010242897767260141905769114687824355429540081282350246022134211291903203408711513819869743420448718655003404296016500482041780893914768160947842780620735999638236346634307662544507219914923858400073867793082324885426460475893377198152129273520526388632078626317012912935135686179280143518228682758037732667463112198534512346195995138751502210779549203413480910965941492040643030618739742537264196572721713242559684872622815870110310693769082008983928912360568531809801917182105258852404596900670596905153505412907332524158235323951260826809738262397105584528735522023107700559625366380770541234672521346287101428623954329868554313225561456112179412769543399122519740536766015153119417564395554619790309500821104714522357208957984225744681172734314224717051459322017310662451913741744426830493501637789264329492359649701294259910433013181758963472398515920814642141910200968856442538901764676276500736594916810737684823653587947167668862650722377985493481512968634466931622077576489608182530889690626163290635128000005535799386318762383469209515247914740630126189163428760809882750227223077551539151743431957547083495005587420997218883071097853662565938415746408574621122535783431281811811492978016496680727995864804995791755242462030328670165714477622773555021123289127756139524333076898134580696774018683980417585243065248570841670975552332682811108838096843713510523721023953386672842783990992392944998663318360001648286191121668213174362033748302019793246265457010215760168271830566739226893476279636318772091405207784993331508169509981648884979459820773516233306050010005935395741863593774049028211190987134147548358393666139595166577133670573453988366898832582042186123029560301241612443089766887325829487886719420560459245392051444898264190187018393935858165889585089506969229532050787884577607133693225915275294492970989076251079362396058823819153164948370070141600565073344223157307043071818604403123710647652937092417297728627991436912330110757025540947088433096965287710799641077641180786217277048091265513830449069597836460005309640123827188470219819502732112315166891794455200696631284467811880448317016539707364835747185392388682182603769475973606329311479940562503314593526505144449830673836669396868810194929895360773796297280313869930468133215469590344325193259028795856177725855648982480693894235483504074029768154879142545452759135512342620410160264917881691134321544642589483331157777398954802450358655503219931396644519186480632043446786706172544356048003513397610986606306060534603436626983864087676696596375969050501230274872972690159778694898363705198663118193879906897946027598087043098719637140662887546146941020612523453634774876447299033287443854746700378191621305279620549579497068359129617648626102114931501725065175408277141079038709833982453711580415797349361651823405608387194105453017656305026646386119094377809663782548498234119970321908803432300175572781556616062800357157793132212290662594656627326913259071910666695566753438671951157380441802744812542758914724014198950296921708656313616712453921900423979906208321651581238001953880619391589779635757166472356756501519374780835656114353599238348448137208223165743294735140751983757058064969998010970543220452922344434623048710918223275703011378538855477244967014052019692691774509466913649460173449198839599736322069974660364220695995664256073432719766688450088488434822520373778699001603348659708836911936240945438442436532118769110956650130795944833790504586304669455348026784604258729316098006923780864480356347387527641633164182521001735546282007809153767096496786136780875389034256919601508205609849734721441125092728960141158599330559503445196626635034986880456589937776754647574837863823520743382130797434584986860655570330452902023884689372112755044324696149519075173265044293617902890901545907073328208775823761017697633134470124219738058766722518337013437676177474498768403516443120564559499574838974143126627310904102847282612654168510277505963055985800431677325416399827791082688532425240799507467875424984942405980135852744207416077015699265575339072781050966297694791836832826897518272149522734196771890697747535754981069280458480305413797439362598772025743143492128789089533197416306791345365549840589987370376378069303257096880409587379382394364968475325449116758636417185067970893221199316451333992272592080981739447843073141553200423822780228078671132984538014324630545180744291639617283508429784539984788589120905336018923572681586116444347828275338778848123875966277811204957938245368947442371580179264959169397829838692602738656130373117916461934251321960551290716119199600277722279262079521784006653494850307130519732465936978553109189670321127383649272738492590391030001836575710932324610757578078788165400697192022700546061194574445235237434077451982765324515055255971785110300678108639354509084693219764031912193061645842824447838893690231112289001711229312887815033976633669224818858271781510778864806739527943768775192653797834487713856213481266847680439048236429106997799464725859925328643514788205970803299947226057941707864543576756127384237789984986785337098248533361649185309636934140392134447897477937478563684109393900023459810874163349917392174583820207846274729084155054736069679838164878777578022748800304598609611551990992737718806983929930631354050097599520468118333822229189730423649252792001840821923926773320021647955607610683801323028985517068401979155501973096256745909735011840374342782235568605583876098131676212377378703297429062116104998219019643722442442837658272679688997700031637814562488433400181994774392412866253024212279752472522594433037573398733118050399244271979696889279027908260310296349351408894132843761206237230005681420419586654138972605335452655753635776128225223185095563669790032605417910589430539979697887466558205689288955181276942529657441784446297573613017816043335344468229075695220453408609226597529705233973498144823211067314156885891984489391561617923364116061241370043953072777544250263361510522790971913809084727087470856440934807778246793327911310243602996190120544933938430111166614837342499231891360805253536525859192420878578604694802122318512972272004520420743420390968053534999189667502574379210273420969729472651194883579284573470027916545982904685367991109113479582549788287420409939891203688099299249327952840538343901951859255195319805599487904784653692573736027169798043276937157701813036312049839299859435773611220972129612743169508035144993088850432190061919648492501973663566014961919636818711766431678942194653178475373315095065822839379202446211624572863109541709659856228539012254740199409685688248293108449157550190248718434922516979848750555782103789283723158093914506813116699320135046455440002082425463765841722538472984391501148266932730192163728637582410339652475175251003270703489232353737474493986765047731095356399347073088679161414559122997800015727182068389151116236322445462808290763708743052204849153484535972545774534817336303480239445124549760049013620731439216041906196369966521414418411731364917383451661839199513195542874601487332974696030518511411147775032394380133425117408504292945851908423570827670819067303841788035421713548504062036398251527946400026367132825271914074010248858198066667949272020767659099454095474666378342960365826253940076830230721621840728359195218099667447436126959830380276405652885451242001483816915847476363998220116442811048448360662062537011511688963520370548546391836581910149530136345229881815207667349249323733270159970323512403754922863456356728392895644284624274563581527520620377786408489223892356201360643299466195119144096985978011867488337689839903419082848410506004835214524670783229363887191772072911457378400487588337770819609806285085718054386416557769450087423327110483732162383163536064294442646713123973977957801502162973594192992468027697060297243340022454211737369900606521474742188421380866891534525351895122929813236581636959867394556806121248412752511032069152169837205535575970523381603944635987942941469084203558584570414657216727484544265607425734162101050450805368997828620739311299372671429892196884903638288383071865202885346697547366176567600332027699758254653558725613663003306593211776746501836046199734307250085119761597538010706691018987854666569403309052655134550895702885841181052210220521723867570215228233911768594238013166744977353252849903923491226283920763332940388469100271444920945233775015479515757022584162229375298338849111741785948597178038864766494524366059442444300897208052919094171970284298345397288340287350625105293747032173917069794811824801925374987521686660530440771020385876817407328454936021591228115966038586452875404955694907063053809753943940664572372380249120062639430803315454172748049869776509673120207006345515510927409468641092153664073143127083199094921822533232482754264877055630075635255364440903534001640063528767044204337619608741526660852330879197668627612700019750873383915816274222843238831666378032491350906633820768503129230455548486386078602258938813222529040455468268306431646518625076401733773085124793920710398580899727270590844311631853965716224852676114668647441479047932847120008730195123872190597401784256317155893335639400379307322822582920353432325855384725841914357814462688774289047368008015155380368023630194471954008886580321503983387064487591047779898399298990164534627149775055501547563091464628580235833769829113378196042554626902938259405316030211281720342268164369618597957803823869938640411880457322101179203435466774451081047927799472606106056539342720881185292636495486942237764835623474266867511962451954317790635304802465720441398717607738394204604328811107820012546770831299479822650050972469642970385358371625980327183057086017271615671540897521568307152917771500291999439443416238904570313713470113592387326501626155778149985126055331818282195730673266426039566664051738058570922437470645408357116139399056849593008934870123310066888681167664059013637165039852229999458687019641647415172309517819143345511834898861530569092393725054639709567811912899450057910730392252886827858671927154509085626806436486517588188670514405741966677606240603532695379847426178290086271561449740547604836116988252499488456185401164924502064216901396348893091989026442928388728994903404068883082927346548499336038508841585152468343726321412373246102920972222088340500069791605808635467296421904482174100103432952624367096717836765245609037805998733927895307445400938989207984385137461903863965361900086104820835145786328775652669650553250796910683916243430521160520422860301702861019405511679119349145230941035476132772611155186019549109145161403186739824445825652844918693025657433473901570965167850202766638919421938744888887392039343492130863036988441197568910929538858205881762849216558649387870342096352725687740429584625393596615440856379407997163948165609168742033428317132166993414985511986196017542335749682385926187300350081956868066330909452659006417691783907366804933439866362475651127319673476916452641570284606887229166244469532132418130329632270103534203705488307025205496858376749304707384519593060924222514590684485225361293973985553492376484675684652722796998166100745843475301530708206722857330052124757788786281477495119736002476186017153754945949187806830132924966605630997736926968030697734748820711104444919945337125609844400978505044260544403555514198834850701961346325027992661924580819014909761485192526941759843552023959987750548739814276389128478935759044092389252377472920385475640284989775883726451094940319258123556157998546989687332707798121731357839601346184627450996235682422431352256549068652467109835286923587141937606395136421464060902683125000307933752002958709138815619982986890585038586809018935792137727684071583759268775533120269442244269463978730807923957435840686329227456976789675281934231890859028850199700905153059511228236249447837880815728751531020296400651901483098693774885374466200129447328788738082272346361631655578460364066338461194774196335221872707663598016528456336945420061771542744421966912937496517961029576962696713962474659805294316372373939421934598847205711770514706365859885544012226140282135434266477344938543737580913647426742906973443212379838004409343424585093006038251470208534470657547028298706881421081975880987169291459584141230189650750593424620359874012336556669261952823432986591690220167398316267915244039919859649020588418677490736180924016639842301382802894563232478802442432034658230478822903987322618880225362494690926587499505206835608284278725497393515245666263801250064943737085093219678265268256837577047223812483099891152956800873790477673023351920775903044181233735979500772544219511396788773983239932206800985195559609955062546245047496507819636004003477216010470035326250344740574119142117257049793760560458429319017184695271398996375325496103889037639975169724876152928071749763551509368900707204372468567235326822151503328663754729512956189250364671796259128381472991689875778993789461659248970336679192365153386852006401454576709986756675063367944105449426079309710242716817728853663967993493542491024945343774501417097232408046437301488727391849831079354349240589102276070670957008256174566520282846882672288522621285856282394475886378544582754546892048073816195647785411683590993953391465446044433765222772934397971338381933205189997844178900797381338882144999684450715323829388313780967306629582104919405706166472208234023845318969373263539330231211360528487560934023418621721116653609450309212962422239463070242079121664026449218897639865829059263101109250027154190057168345972089619415117926479972174641766939207341945515909495049434155720134059612095840241283979399350749944258227438073985317087352478244809144115867522439360947957384769884355462952241553940647711169170187902671389947264320325241090763026147135753152888841721204812822458126699486469195723857680079366172773131886965908005497882734543226766003113552037537530539418658953453168225090377351033555789610941565084391016835457330754427117556644309284591896964129947911511500327104183975642533686592359608360437916054901486230253326598975822520965042831774625819466240188661469267833067456945312197673089866436129492618448710741237558244864847836693755576757601682374270449921472588015869417510980379292365298455025619216881635642754123954544694141492591178193211549898896172068877397946036923224379326476967955918259380858852789987424427384396420830752726032427782108561188126216591978118869585315669407925767460758420429580332302452144391291166830602942793945735577764415529380870044416286807734578762431898131097469710611999948945778897560184101648755233741379773700925496032213871891190235068431193688355345549442078444545559925073226182636591079208649900343346867160328148569634334773306590560109919817579302710669917094041995088976671994949399456402910627382830613023912001654643914724207676658848395529819224000382537860455895410636036759995026021517342090972669930750104797518729496076380982219305240673803877950951788843205865105955822598555786078396295101260275105298621412101006333827082018260505847339360913535166627197403019617970085970182229579715909119269264464324940292767569953256788379450108854825502589337332997656635635391151320270463652061609606112570582866766812574752322879190931722523292589730357199739384218134123394760305291943441990229080154496590332542201353148005979300787660438830699259213979476640332287934705297605180924887467288104821275200635372074767753391806460031848142545446345288823838464935092837443043897537382946632941201007854364864968736545768495732727932730123040458350484504019162977370392114130606513668444304681730326542175113891970263017771479503108222353803823262742854265202096550405054404650048019946764964128513659075284401208776482227324326950074636090045770920401475364339302149304863944911893747215325723775458616964495746155608486599259903756519131497835909568474050442847109790932830798308253578322166962497515103308494691483157880847562624602087773925564481430304661124083239418690185262078365826633361776445996940283186265108092269220042401869612489591537843882477913951070345447338710732356188254037187948033467539198778768363530716310920140080340258323172059338610369083391352592203715034006727367754826651206177644365508433314718266081148139340124681222240383727287504306936551307966917522210662818513519912478413221373439677089472841723840861876513807857129394866813560936955673976474885762197615538083410866868699532031833142402113503604024721842100586456929427513132017894316229115489529397927574760063180160040445889588409752560543517310755210121290999884189241767255346115063598582802165802161508557754401879274500616362701859738082151653040122759600764409314375956189058442435738790228918992821414549944648502086522637462730001226403331482460836076791664658630819753814243538588515634112499895860010685499122068078008814296961282293163409503272697260732190296862172538335320583751957624775119432504282737844976386677598808603993550376544290260753222188264300164828219137178552689467596876247546032366937451298907695992268062987150996862193098201851814380162874996809120649295046603823415624457878471321397121543128860113079444311891730151348194250837895834980934385685135212217982920622652003327440911607433780286218206282919319605408268051940038096766394800438291856150213018632854318795372332616517335734334647366205625044788143878476591835681516864531629684399723219653440327255566363056017104796682380172381209447794645315508277567344985963173902990750220456761451742642866601181127166524692910482598552050723824730777749145512633181516717744052080078145663497622430365845123444394039286592240684564319321536842314311366701508145194538525376032617162457614042353475361064770959074159710761166076393427924094811433902653753299217866480100692162274615352545252565482069076215192698302354604913416007780993871059611567723757054398858469477130480907737629382594218613475860274695934931943818456412222090592517555245740190902996757231263653653329598853726897528858080782712610249726974462206990516916155615477467603219651587419151936647106468710507542015171329762884973438590364173081780646742784915598429436147972026912961782750152229975898585063307116835494929448473030382725189731191919064117330582816042205705035940017991956301116687676372152045652675820826375161580275213331200195194324075399046538233587187701624013522501499807894543798791862289834485646143190855306301623827835843864583855440711264257255472158006075403582847804353777262718347579400439349719856732355270144640361243322372057497395906299866876759407875588325079748110353943094966611024300309478769998842450213325845492544105420372257437880693087850993772982724129497298229996154440261109110906767293745282845063592261656927770990337486478601648954769749771636902123094074018056036617705248053681774081855841377979363303991047993650572935206034972171917046918655100392836972927175034691906334916092540345480270941723429632670721683462182814499100896279482078889980811943737032651826113256880250879829825364800323004317883924263045314057545648909213690130328088880450413966535859132001145901422945915974868489942128033702001671519895666901200542091863340136315917314093207596144517480414249980394048265135034499140209541484377597771093807739532771757649544971615608163143279914113490755193610810319475288736769625198443836706614662572740163772902076356572660507079207639132340438582323054228155967936880331346798361033222805134088188910219266800333673727376198905940536564294738145379374699736912364986245950480689274156698911507110998043826533647579386418305695270500467184295022691498473092383617822043660316433483168482985207776515253251954989056053269401587869069286492746222790357346846779137778100770184707087033393353852867723935761633447883165262486617575929599334247301233785449618160119145245435917114627488188977567051761442978354407853446503335337614368364228055770693481537382207979914562826680448368244860022976610773453520103153938719389715431217988622703875012339152222236491882837732333174837714556643795752680314154070086965070201531114527611011107700689541978910775544441699779102006339291331717604530487437842348636922993771582676472711723475243222436434218659474663649973986804997238694179187790970819865172757256482119184443603512018169721952434939382257576797380774592360080235352520780612197842980989713544967739316367994760244838440213214630212111399698388956514738231758931223746835718391294739512833937340403400227325471168978280272896696457857140673755524817764509310406072782974177665158039346363114789944605475653094808930546208989216385676651613759522845794681475719741433903552271795361921472973428975066274572084865769039502828587521063813723856887075779898433879008160814330882967283723399108173279028849538860556676444792949724215873447303791736918032522854229577383432191035179659490551973508470998750136647607875336521189820422183329127821370384756706595755525732932842637597396601079313317457423309492365106421723715309731665679023309893557356534749220873744072792894991190178736141934621818343156611351977836604692853363346258439880228073268388950506547226868087725508672722033043054803983401680024653682862842828730520776982772984687647068644378608081425573305840629793636100677547183660764593367412079957897206781110889397093501658421883953892932901573464620352978149829393744602242246865750184721625182215987652472932262291087393638506079925588443908966559335022513667374472723598680722066542605176601019625082281851472356267423681185383759374408095208032881027667020376844711691531919479499555141008493258543170845881997678172446080430003565227794823065898084936494628849022603518019334879513334763799456016490823280124820656690747123950570960983868210366705005274032994871406310963531324223390475005197563820844793802625102976293516774427498870046336575705615814036192770410030581795854678564784647334065687895068820853147967670742855704213366966253823706950610086491850450272718693678021363576130271629782012070135858721530596446496840955421400510458118772059078972727999517809001690545120330853860207999688974533335334032489039689944001751000148696862320537871910297419953695272397977966772988991537298791986129946655574493957797587959095629828147830888896421208699102085217236665592947137154101612988664768526360690138897560549716036686228336520109214024237591557333596697778879683267421931575255114043949045821234332563941504015738650767889025213024858833173057388933848228957361768128168842719224131094313351133085164507998342925594148124643589812410469214782867793538009625885064776661127499364320013310086785014292459549289830874457262085645413078822294872119410448651765965823911463168053555490855066913518661915658366551938104069464754712865012572205702454229499879884158524518227639503442531287156389033756081297104510789605299059060092464470007197821417263510631728690370889296049906422875234872714972252892963725214943865470415513605110062117980589463822909354634247242097349324641488657930914296467884125133587409086599776925538518862931686543754258734487020620298523604293323168969167809424360090337347837029977761989188858032931159441699127688495038259517704765393833583690674331111830017134574932164503998271076432294128648338245235400317151300470183819167870026940979137880754460981816383190295261061832861048069672711275697242817622578759447329506692239689224657621114894966625083669344225639413531773854711111208684960938325629412015913837182065602769401459567006489840538290955447405004744155646188865908387129219394887666334857578449730195565908936155486383981922881105544672683506883706049958049851977501120179421529268031353093911640419877814253141564350728628956218988501966979412210610068281235573170863035651311586496176919031666217282772510575163078294527364867536410622465682282861547315038569499880297960359817734286461448196706515632935702576887386109520433214540658130325949699305243397044511441668351433371090370777269045383210035766242064605374926558295685171427377248785638815741558609701353199645866637964784423595811866815141136087001529427679307130271266427499944706775697934824044019551254568300786058187759442778176477374705743082810995809173618080795529189848298526425816353143812777918229636342168875453574406527705087758072768611380978107964770774967457330013378806581703662565958503667384642656021677509260862282455059587848591239995558944534591991841042891396485910281666670177197888217561049281151237292670154281049982273614856252408918315030750801573122809525830079379243305076312795678374184212905827654327606215647883619552169377324030214919677383754521208401314898563774906188819640460434969930649412626724260476466879472525144184549651583245681776073159335101347395816806668557972502670040403091309169161011626999863999161162295847539729964797337831237967378835570645010956419629835184030462273435922647673688804395049218314700417890812616699415664254815015520986384257561659498083266706146311553838258391592443641671572816214133253874054657857760219106184289712514863600829566563900103234472524755768614172420123599901804495591875631343976038790242385706765643504815419709653479506081999408202968658836225202913545956680152882692246598580175547967679100906992128331774261087469581801698398527109236019829824249108003203990382380681428779631382004265055848440704885179782353165131351540042069954172722955680545383999585467582399037434636421263231890190718466679915797725701390124069421640795174374663495711207935248772406061567996354295188848513794483761962797586877766279644013104367568271278110296993954112764569133467667748919027308504123492270831412938535595913168923717513028492782394355300737110011964920356887164193082854707798717681879565187691412626614732637540154276262610076609510394403599555428836982598105625535969986100370580412822045289853809088632147485327031295598496894365570712004061232136865641599101363477231851586725493969581968758783012162381062826912187105012679287399428043953206444902293112014561622390665830288450701563889811405354761426768852955803754749544998038363693469610850701976225698820628991033184733575673177158226720144210796977508934298188427042740699117056960400904578301823617979007702057942319608143277676428893199515705113869730569764901808345363159534563635445666359408192176715173444682344450739728307537935907451852952504145133551923830143780015405411783450080744295565084832581028589136215861879469697013854039903651019477594019698679863809250706265770995360843202106502726856281982164069244159987245449620429029128534173893187819298926571496043859141138549153552088414382246940188547717065067815909393398323561283156108261304033689725399231036890051461283883836410862448865023336636520565652405574989715952412208733481362439183586710800273615519493306937512986718438233828065452220822667864689572589539431705605075955728517564040316071500292176647128891609904269664157514280492780479044402187684341727359150957418631025821636917166085163263404833226771303527570202922486062411545284902635150435174097479354565617976056128831043936447975439612575033567222753106471663193494601614876763609712448749661208567201438932607888614190570263059731380316380727480668268239161857621799947863641998701689990381504105678688674886331458139197075072082016781822549872322096329965465233766445179687307159537604486752754085899242150172200432050090104847945436777053084342411746062097692990488404795583199814358355105853570962482240643614251428081982574686902740348621104030945157664213447040227773192202338718900222952061846660606481801562533142287433531873835047759528950764710927384650229149270541446600711479419787473470564860939374114778308208091363375540678557707191270958958217747410996086786919895519506832497304557105515351373552988285519829306444322491776752372893012395537560603431606599057870264503793109742864931910487552996497979626726326417647082135700384484369850575604349474987819377576490892529814183778458817266516064202000693308513186923200830094981467633415306702420849887573102043013116205066785521507602436306286119216629314959838313089484187555613480226221598359120658122720673621295983645786243423898801616864552731520271248976081174162838219998294755267382312352722024914220907375075048221178248014232795243347490861705532381651360196580099745954778000157760083022394046911884535344494046974567602841751110067647913479816861247896502031150936909745683877142823892698820300884279375570412971447420480374696952028916683514367421154294146772147026241122810843615745803531380190400539973283552682894106614058272061986501247100464201535710480246737997793660631739312156427678383426023696868857435244206172315641810381520619893825007005123578863475351491301285381156758636394829950715360939664810678326707559713600502338035846683117745774844655297596970078691014736248808304844316360121085718849500070086755790876340287077504736354794185593802034784529234093959002136294869537938195135831893060206655516653918905895922031810487899845902416973706129101041352781424982049883884797504626763596793514377570157705333994638850188676781201164125479785829769710915825543221933389734659987547202210532577602710814670180073230539728299094455014653313428402419218368160214061904475373017759951775278538413133870003386050382733770515664803831725484368842794880972292080675149989260707012266195714822945843229143679146266781256078657267642388715252843614918849430127095694904583358102535227623133722367115891390029599701692875479812133754136153499684068037146774969198182968533429032028011518913287864912121391317774189630810348130761374084299637173138421925723065417989125011619957322406577031460714332504003795267892283112686933563681774081759433160833213853375053762589148064821250987136896856272033619738162908824999736209249619434450306552682438060785336398538231531078927458591790157668368103469130745203630414364856083120492913220722055767841873697909733978350972972512074601567001512918078036127833887464108891733828989253438678942508103330385817548902213296123862957823243310923756119656201118491701775352319638766315980616290440653783556248943113259068080318401181826932078692285877451978097954168410948231650875968384963375069494434743353976600297933516157719596288898136664561964673245827444328916514594149764121435536241084784829156339311837536947179345451183085730195870616671691152317741027551099153873339300737826498896073359863272619278186709335393188141296627089872839981285452901837349523987582770480818286620473600345592833128159199302537122387277759897495193565839818121404390930541540088410268427915682358980875403865831708687846139043901600729263934462632255702757934467307547110277039956859163608640468074772881298135034239388670118172235593312482822667127497050806195681506679948955390950870452636772354278812201322948828344197465096742681498522136859460186777053416593762308467495883445608575716133114847964163116887434237072245217771698726361871024072010889121291400725979587327968931802779346610523135581178320818816468014078602861155728799488315868515338051455770773875883804492937769469619851429324756753787809068486103841282716576396322408784708525817132137137039411752666794370971671746039431967587955157705077459587128892511287041831596370581903773551684926946102862474840805700762375117396971079750011341406448623923477661312789964510552105714572943645792741833748647548706420108614106622441108340996997135108377326030486802218368518967786097454986554579982059254288206371194556744662500041877357249903033130596250528881550770488080497239995487974637629774193709038193236072688710039225937090503416279399136640012295267185005136167176149150253889986020039500528121564682182501502191468497451448936637565985296091823751999912583102914567674763464930365367502181401026327305281927220987324656650463137994688123626929654928916439191835914836820640201119874279633238511932255707772821797083745856674629802889428981679995435191023040957585422438649321811323598660113543849789816429751229557523224482919369524058655221159933925121207266835430299675113585690875613492629789402936539881654902256812926840917307443501612509605836160517053240729502633646105280158879427646407234891771984219088758039044305298276555718655745613582365458071202041351178484584328403828315246241047342567553218034550274146681295040695627536239091774349580408167120712112439526410627410578070724436285454111210164316340144982561282994769105619888913226165111190544831825983497040639555257971575182793228297549904992631603718667800485147667210698419351890458743913174316377096057518731918714914904157299542455419850423727171789317491254775588724866759202849531029531383334175245451038328729375731422975042955310761353153739610752514586040929554993374072421871746480014045759840050845551026300433078916833979895887876481458473545356911643396942402317896722465847790840102717939369580431613127999014807728784098618728549930581830664861978677258853968942557964915178476898885468264093150678015952028441508589340077677677708340738407158430206292117552017118997862731513780912738436794768766339984962744937528914769529372070768325752591729666938970493383865110799038869660063830324684461097063929294838128602930807142787680591281636468711604925113867487098451878913138179760896898259466418777261089813103793448481494401374955950231418661239626386897097067779720150201353654538555574116117733495223669408062087469935065031720015131555083455331680628224133419385977146153398620331524736201312120241226670071062260311065655058875338905067640830656806105476606082073656502078451582167894869692811184367593074604458963600735543563205498762429076556921651270652670534409948958244017637798506089323138344347794010485941128125646730952307611838350381106628513404965816969056592444262908209536910070255315457548449881434294011896688630188221555355869291319061009004331751609002663860176898287823342640493147551108710508661948681410081293778138422659360601711101660865103085444831416802527476146380045651838943998875850628669787186070385135719072367118930655338939808399237315602891712239459575099828721272197949229788147165707474804635596587884185923807445045280729624020587330195761632953573330460079358050540380223141968293157919732031652168223693471663215623142417841561589920288083607404907368074417081008317936435376206437191000707565374592452073326020481837960492408370717152127639182087189392774468812506103460944449152300884984244956291149053450499573833634273041189885156362219520755521457548515776797298295895636926789217793632547469892130061178527640785459046814524891406770435906863560316955031471195705046969971296361872239920694661953857375010722904732544309661555169762563701005830430531253516501271842345417744516754474621398393101720528803207320991781932623998632755122804358206255958501564336192483363712030680792875049528046077131124327637670309792282580892973046269597714640365795288853506303846341757429373217606070475247194731503659627905617874090739772626217045096873677949463472011451856327509647086201506212013428583674257609317808589707078622446458900282364789630928586839611578325350475293403414871013067056817873630272249540277796355056017984215009938807363093740910456858064228012278396421878069106494067685680827172438823019052778183471479821691501898833172926494989174022570707224172029972559170504913458489269181036512450554279164447955030297039972252306246111662874028747149533139509615898802742407082991753579382313193487319671493509064920827794935307573702117945648562069807161351031137047556684780509816898341764608909757311238081311630208410207919605551250755038238393002779407461010723464512659075755810517985047575071723172005725260612845887972246660974945440460967439997033653558216108613959954736090457292825085540174553098645532157874724332607440232561633655250827707679205713745125450505495569532891422930016754628899915291084474302082374817104579091098998748892025610276960548819695962268041146580999132104519228956652685141672041377782031438944894258030535132768374671134472232569130632942289165367937530253602451022100144311161260818182284026218570185317448542640499795341995152581653040109945324969812652705912895189257447498172621263422207076956481999898984556223421284789556053020619965265306831175634863527355979855684604826506461013899085406028680223140396744723512200215037404583523305744756409622600604414622347483285698544296082780473424420594818482107765282104483667301798781741319635488565910867187119167078356144350569940957057725328543131411960297855785001665774521680581854640380003309210167554375571735037292342170916690202469699276252080218373205621121571933373267214629922298258387191001407344997751057566310350145278609803022187217261080270837223218761627303109021000054304281970857368414818476625751685130367251768324833661065835527662900876298182912726442164566886929763502263120263620789751793085068240424792905353350142198602642869129789493928382153276925589936940644402339288528229323043799361739233924106904716096581756104691713481282474926349978463088321790821584672890262348750666927775729540452379879198158774710955334363814173352961801751886573106188775999647813480375666084343031092281350345620916790367915976412304802190334051622234946293651557509346072109443864684166780873915282198004804766805899598562946187362633341328957966072010966418786038262695704332802957620515706243250932986830811836255066219184636001589210096782356169403992733653329556503320092797263239288199108169837788917778904047544306766297580611314935613648704890909268811885358644749476460864267899774340889203233984471517667167975811682987011306035923429698519694955382005813232870850047649925207530679586857954906072252942892537601925816876157571830764694689501148636356312991490390284060290050730639752268445717190930458208621504258225355584238169017172568979177968358038684266153924452093467178975966542841334398146264884081500418343370005911555886656058834344626892861774631413912387239785527526678709379517190213976202367398046942494008785932445964502689041236528750865844281077582575408955554882561688725069940218273748920315196988638224603815376057743163893865457067922063565690374197674726213706336670351121175166505129703438695690472016095136320891061084577894461821293623595761698372428222531902050615463117605304368797891859296791564078357179529527943043907461707601192740261637191983758295748136360199782676721951686975532834893994543900642297399385695022163823920075086944812628363616986951992451882120139190633955478202444904640157821745114522740518938191418630510297887791611751907437109651992466007393782628771181208866388998002679061880999850587140866202565763192915467181043351382755214349065247159907431485340323044566656402112318991990642996978163340143251463255749063696669703496221219421966059521037787837863362972645264586330747765124105939224622637171981017977270792744941746882081637084880845571360305245682931822428444895142372967770441095206114743640640058964332172993405053280076652214921566912444246801944204693737860933717006292716887480801322043109187559977268052090673621795176660806207082654784567551167868908246420330095598080123333404245660323281883552026706703771702115320265061418559096039428454739462115953518802288782130200804773830252665120358528826448286770688617161673524557911659630373192266585753085604846752358820169158625436272405655542860301411327795645430341927782348260111516771914076381292589170103128356269060845571808117819477506335242939725004038639548839300789405168661616893514550353354351509475551322250525014634079630150189044324427190248445800388807242893528584359885125336465809303693771623495059671316498300117410064767731627321506657006009574186250820046793671677861950703062754916977012316597145124514444499458827206635574120146142016326138903991287728928647923035531296382968904492661934872161954377588677865014530608395018259870508005309836802431681753737430586029547905410481405519473977550065916929240533692124172812690154757630826592290900773266344323203608990066500753406061871616600578987747680529195568401067558604115001650729515035436119507836524242825718276168519961916763063219554876672183856540988512529371749139519677209650144593649924785896176151525339357185154948739632250016158692631684918250744250595559903922843094625477184136171148535728830161775662198457653776770525448627797435924107877519904040082028217644556059967150507079833307320899750345455852586740155976684975789693348796778245055993948007155181833568940619846111935877948276750814163337695999738476956133406302714517981725311088248423801566950363375916703588575752015318980208792889727156204921431286206085400185990459765552939852886723310599032160453731036068902203528263788436950363278352499077609292997717536859787094791825693216252916027009789988788961361404205488657543427938951748406922667365733197748474199261228662440469634404122779490397027587429249374929412101011608782571726513894641426144583196992917868344218934786132985627250823378702510104898677768970308032226682013088978032172967159213146029418203659825770337173366307008565769500985642102392263981555470806416004437620463577584176391540956648760886834270380272014213445467234112406223138981596903255107628240664161946239546024868086436590110725726697093169815015441095298425911627863364647175563528917063388971365698269483269761672873322955283155717282565216334004461429540254717911754848020290174313634041718867122237026158121680109812049673654774406733125046745087230780832930629660133439240036264443043603429789833460890484651031758862030811235290888781951704752224134143796470304447176000200505066657866396560056075297859096278288055607480121602719518994258016338207194663268056767821888652884790399360276343788327758582022104458575350355289164843659767778802847155614571172833553310044727605571428834737489749828300391183518138462294847801623224435410727108562426052873688009288864248482022818770708933159103947161174623549103337694936660919003325474049821520416347306680811967666349133703484506339118333334077311374851082654122081360744472957240275311368649739995916632678041613819754949336720844911670423479063697966076856959882121330962282908771511566266902063636132791007184446041440293503393635077793301582700429633674903340568467561173644844582187232463868047937492953593573555891116059749786149384711480875136956647227930034308991720372669035549505442806370210900972317964622604497176900357838461662362446434961843177780685660328535699052127454186350991170407729274693018317136088612936605231711994239924055512288565201960131011066497894546243467162936617924600643759750440579166720136368477446954295958484958791851366938608790072925458024213177482895635148636296310382758311264593208355306012395779856550025705436311565032314924134962920814883114950697609294323583025770711854320378948116522099559530696235735327076883468705066804785210777802105116859104275127522420549365863598800742152891770051411158825347474461860308805396877218910657173889888132884219810456337578647816113720441887924896501451462661923176303402514850236650439794809575652026428076360134315440833398208295950481500314264288925999453129192378717098571236351689563732280101802996527276857852507873360531953314875551850531622944177250671666844605838518088048470113137019380547903118845279909252400993648577015743180075617238428629743134286596160328578247014642400711476719114362788189014157926814220522742943692029671211529706337406222592314241011562136811441439619639233806495975466643453446860938061768978400437319747298804640065032674335099772883240467481477699554927017741955535369815944489453441127560609045884125904301484106627944464745253509820187813252965916451571739127388326647813882378339819539747389563765839515373995729380283210840961676584098811478160401101371726392114844272095874400917105327046652443910022898941002346414286707736470558426330730656692620246008096018600138373860649117836074937902539990502117152458859827282777012394003302752577445755800384859060309160017463768987549354194048424050976652154358495241727216228079924544398635027080565307953127501577038104817965065531387038989268959846314334629399122631162207278878807938955064027303473635908352832264818220317468851987906553059924028945484098350125743160774312009760558743445185920701692203378661154850194274346923842519063558665041971397943190241979204360152268473024708171640202285872943728533347817019049742075566518297239658462349365557425339672466245371537734107315314910325357561931288010514083372236304551803988629193964309339558319801278831028901485353057555226843624352426915788037491325633353255069793147908476999534990570918371214026337123965831690095396838767822418831308237974289708856253628210403183770573312044181847821053715115228707452019597828617198197811250632026671168059386444316783572880044223520797042255351087073966793257413010963629065785349077480568898917352411125773951732991035079223762157080467258338288577335499288561527438497731049657550261561085522352658300990962164239843549218408817875952886266237564087649472519991311215615545669056932177546524126678356361461899013508831465235967429023629054091937624359125722098605426337765331974398702727605746162966741707303602264416316240314562304699164294500761527302386267617818909583844523357539382061707230556144140165475760163911853155324961711574877141798304313074956855981185842405068405153790182204098479287077511996824263054252031513197120355176726558804548025891134400007906945622798129650483186598493887307689692165549534476377677407734879439764974173697861113698867397478311075230348228577730018721304110627753896994119468148797830443853897459203789655454962017272725469468154922108767779128811480450633991000211110485678804482623805672629162502817684850059369008329189748799352660066937700126430248351545843909405424121276814441724210645750724228183829010776560240845916072926004812944398141022314613455404854511335530421839025783021614303683683951781769363810478905165985629613774992200188388469217123008166013604292509431624168543814408872681878211318785247380360971823532500838540358770590882659593774640324935201309302743693181887520563695949795101968884756314919717749771746500711499001239867848453434712162492405376747113314042703862584347557339193248270203997526223282124106484668156995745030939524210271993381057220745308675034803729067078419617791143468974610991999246628556977987858509766312238451871595764613845347598040933939925234188450440955422637518938423749874717025727714141575309775750284664820660958569960960009713725151544921849907437670516711112868936047341593134029455505413868134479266902733163900802473473326762995904593057385877174422175587601213392898354269680134150583816709513260484037149316685487592107559034075728927295651432585021180771365742445695797452402696698663521931249174969155385738925808077361328126387374865775631757061821929779455103407003365078264614397007320374512501371455639225583771682582460545552383077309654024699178661515603772950677617187537824848008538919016717880006399832614845026695690653427962888927158394420710110675004687705338994733291572538940632163272620805492836387809755784279184225654823056572229569782214334796381561360710647271209867263218047330354472594097144207642469344455057400523620051221231848363150586121907544234353169315160700654593869493142174635812014622599259786074234666983453374440361011982226979427826253314535780986627011365008034366448884542548074280261016475116146679167002417883960003126512877916568803461598475537270178414882839460357774061830984280533616827476398311423239003150666062353648333486987727228932725273674133378419958326586216681003860056922723279697412188092431257980039768697774312339791364812458345851525406865996245689795570355080495398108361209120042792095743503207230793272177300011867677784191535208396555008739883931791154434394867941714371807691348540512871959728810514046133690270360349933245795475790649590722620667199156274789594036143578585455529345535318456199963926832072523753802954271454661502785657671399178242645727020855603420153778401041645564515255192936450168994880479427565433857710947745674294031217510028615064591434524433138051544573351068883021667862095462398558356004726715909927535904074544261305901961764272291364643166731865955488397506366445459651770641488646456149210909536352648768186406834249527358575497545179119816803816672634513806634551095804135621926880639726060942222124440464123123258783629398026069626008148664917158070501451302806144236245348456285972752081025875203414119750964690442226303615546357011558187334200093047970222321528192795072206633545421639243383081921843277117337536520429392831768725797379229619709563279710066413291057105055960725018366325973631354842539822917996655980272608079611728936104569400680806133264368596086167729251307991365034267645497193633970414780518162381086512450525407388240903953479695437132591656668466142407163622042010709691515929278011609813838315483884710130388911185144145158797922879629978729622272434843614749441615228844106594336146870935209487289351468360094932017817486968688878439611393219568190457006736328519271979915203381080357200721301423117810548749045360285018607428374946327111052534401946694991935337031281020822244613799157248337369256018899498949715160428042503160474411746225221936888610955466489581504961696761325649267313022516051335162257166560331864087686648567185498002540083506095172370151371975961116231549502759568839196927257790870048697815155930209183421633528224249028855227887309970584258375277645716346569995778816702676976100215814032269373842332956916210673378627638901143130234527393296777195374339410108684748129493048575328950093061518250959354804133713847147274283241044161336998956936744291094781863193282120267075267880999134155809417646854992129157980689249681379109387311236455132978357469079451384704034608381200778321235062373662441650464868457467691940646567581104789879397248528356074997868678351074710536646286318690688562944625109194881656442223155264305000278050037481387285018835282671614118618421983035616551896091856714977447021365275647147847791495718422526837428918608652667398425968875807223364864743670086181294415858208615219479171752301139916148505985755427917472319435010008589973586446086650879048675880697532615651445438491845924677223372714932251528156821253786899102504414849990485089821933146173252690715251258735932224591813312088005837305831543700747187021390880907599166149583345526020475686172776161552249569553663608209401696598387710670999985753550424871078621528999075905430568686479891723257445518761197366601454161878306438536883650018417316326934049086330307353330491377409385876318527830661502150853648770813554316355644310258307742357723190934974366468307150343751164799069609059302102731191920192772502145762147713155466428894533354780609414519678910204627726127858030695075838954498878205797022777447076636873683264324265378387876448474312077137371810787735858173859819649187935106497863181875733739915048310133964772221761536020981275886559669148927311675204270328768652103113577870973115062405855683093254664743603054222746108180355414097143429163612520859406634161412293796786854822309736157290195623045882194665978803382497130156492688799727037833194024599669830529830035161215234852616691499656840561912655040860286589705368412992133848751476161647537888496690505199995257493332512635562247752040987110104841642174836193685392733304162078574776770430473897771722799681436345781391167295454242594871209491205202622008122516372488272570485738212455069606607669545441154465996118134418001598342711533229910114343811836879818757836726941452322834836006302503368863355343340393483326729057094514772531880622058819663379034791617708469037785996012559964945656546056253558100432424653615137877530915618080743950799982674798046857542983662295972132382412314190050845660213925974670099597094191755421820256034854604206977486606130580486681293878743696201795186039004030696867248378120525028565945074672635729411732233608844770889745805531379692080632121422259731268406053229036197417045822607401640021677169209442197370210241152469238850160679958169857982944919433313599449649294887037372235278247194229351936834327838185634740109117297539433094794226411191744924830822875342761605914609965703097928672339126339487277070066560310476685923777773831232497372524084182680563798154141831864656307285671809035366484118772933518223356520164425747277481701327879251861564538893603819606269714360578871360863456990906753815261135517679660445747610696535295753017825809335713200335126047834525333983936443529579832000744110292792650944735026306924832048841618156344324176344716975002899950153374968931832695234656236189976488555207514073850129248402906454074209629965908393347832763028679665456768856081476098793854639902071010098625137782700883218905276085858925323267948218145628655959017312270182092425091330120792880060346556535974342948269368188446468199027991510896070904552109980797248129137135987067435056260624474245682468722047491597681918494029393553285610549868430537746533913233120317168559695062171130166963637339650484298157126682366949855592924056928505979252319193744338962119897649913772525494814833468671752700882701092832073901362066037463942887476972449769479053115493980652183273129312705716000461460994764819665182676302264879053691663044894429733671851578842203263385257800209301911344389447471149494162037385048893987979759342083588721097043109003001641329872787369743140442805173747352427919732030704495996671039158963448478507674350522545061152972247069924601690833748786102418628999101850352097006979028656870082554952722308776016965221324071993285238325526948255985500990603139875728590910712248345407511785460288698260987145294196204739282547894130222113919186544852674054360529930491410030584301827443204041817250290497738962703198336379905841896820414894364578223086792476452074095262329499174745349747303010319726035573768147460228502080742959450968805737458755069700349333766184984808846636317447725610378610937554553172485398639835042068477621802642016756774311813657667324343696756768063962171094083743058267774928100055299220164594667034850448787177958856713479119663343459186725700062129611104971090541707202757555454686443651060265387975117262232136916234364880728376486723639425569731343182295834675962444056414309087762880145717696247270194698288858156797857381297396887671796439341783207218143336620282081211965743181362412210371856083499766996570296199502846357628979056838150933687538877538163889814972513148202636145594264801655205044930350808403987926344088641625973760658525743407624596957910658474923430763527093380585314657601237355162232677861856708641957665364632382148693658822001025660246585517905917748591545270822810682385109859763787568384063491279042692058824010626015329684382829195867957519786650816453756132798970797620349711458039495716326828740122380206835802049853264450578176641632977672797345196282177607578734478192139394503535400914297625160648139841480077723642447996266972138052892069763457874129647890336657294649370638920722092489753235729269142940652208782691583259171306688822777565794610441446773775809127496714672489185753907664318431135341668258864651427457490280798737047946048971452064218090301686548990021800352754149036558411694507869440025551813189170718745742601667968606307896158820198261762028885896793090556707881924666736214700216050472006237064187568734593142764347432588740515517938715736385954011974254568090091064888164555543796264510220797958831887731112208466204761304150734035355296811077317842830506958604977554571100199870899919984830132476137005277949194354743252822846386342140325683638040247329569637475128819518382163651849484975596987619489547139046222492081998196271310626627641318026911217539629749011209406295338973250802398512699672234063076603803340321607749789390095392575807895061913977647268576758674519041962558314336889707904617490744714201919046896252506765129531145095862508277560015422056194255148500907857112993797462929176640230568826267719845363630112739895203326830682130086649665586335248815986107882382361500458270104737889727957331615752041726050160788489652316414565958828973117114161888983776966604965736441046009676325038406037706829122289980824549753444761192257518473090309908273682714284582942248681364562998378441505297835405221558460015203153649708223423846339535283527155658426354348299069120969508285996491791822391845887359549359405546863790813011631246090264544536029512466599274137386007734908734569884922287191504522140360528460139509554924660919495376760796400283939158059791181183616615795061430324767974689251326784416033119120330485816050236634850606696247701489379288941018271107276391393959442046020475423186939782096756877861245514097700006655306717149720465734410174305859381254130361174214234794990724014274496425932321362580603331637398034643330527229672904499318027372354495899561906744221663169921516209539599116967651141370595779418303276036547229085785476881286465347308520073841108555796925706732811512662653069380579525575885056838562968210575189839880513799265575285353092241781807996541494892813266439581713782253181498550368240997124338705029517741617806813561444480605261327215114335213343436299680730753045158269494394352996640100294251948514935613337138684846775742510110648543170482323660091337755570020456006009115500296919695336102059476515782881893254649034376882528394637916500990494083334322922308001758917105288773773407800372553183350386376391998656570663525328132251809223427509041764740048912958645542598358753438494612049506097337047797691303757879812538284458307948973826314765765982703984750368366163845191637415840364807318174472691725278597857498389505291018983412503858323358971479741982245896673599465036347511127905243983047043568360640280104398218867662563221017231562053202670788933057414783056638697102910559584244955604384931082469514181637636613484834789202071871406206022412231352284731459302857010312625275715440522575884024991585577609523014432317823303600303019446644234362873171432640086562171403348236158586610117352038065789891693585813876118216208603806846507166608112583618406124810304617294184298319287264912215417989168801831188016333473079777506006775277114272313458804985276716195865019261838637692382561331259093572534717421718211036919801657268747424360085036529575276114983213673216005448408095180399008897246644375566123439707196358876165978117775940463144764779271715308735832495342420735954243981863263171397855079121014928801158773623109335785755603861039488216495088790584948840589684151133880198460752977451291247569288470758739102863727228284448107576203842214632513365416846800963736311607203479941039235019038370633252957999434671981763765024548672010599055499227043995332585018435930983942888965643849568477895928355950528320925625788779964358360839929025278799563689131911869653421372457442063906973108087572552042105265638100884726818374184205174950603818008984859986988410499501040956030060769472527302312964306950399016511876121867677980943056409761269949526476024709126312289199237443560694906325791909807514702772666415429663321857713849030277564969909561313399538009965321364605163512670924043093926864318633238907520652062758163272729488470295461721052119538733209861028475301728078547592227389649584484374185846378817611686921429778975562018418915386884685897717723516588028430917644889314404723000796558718003596505055523606405255535741990589050778716412733470194247296335243754018892721010965038673048734361875824359365816590619441550874893902668141979760595770236746188468933034492583151003728912477034472450517942234685362498665346322318288680225398399772244359259847610479074310012668136913564332529691874532235915839315535587106190613177950870412009378696013735470832657956758590940422576640355727377873901524602526518354195180310876408304287526585459050197337936775838985396665524518893930474399310109808126105897773826306643627079724334278108920207029347265940735359387962985861152803405060301620083455410425213589313216243574349229824828133505126431190403292555254844122259609856658180805961268333290992690291947021012228170157669414065062961501742936370239266889415723972562136157306462979917144840061384231992979200112169062632556365103416453487925790045066603627062125279150414679724223630895612749924739045240738934438977689346558782036901461231052997586795787304202981854811991939162409724669274262091995706513565965181734800775970402582621215143093085752913046812198521512608977890301535659710827603709627660552497855814079691737831264291759150514533763997205936862266427444638692617779738493555638097586992730834590074949237421997056822682193818677255403649410486971828135150663043034280983634113266448943779395251854739721077845891537335071163315440990883930071919503970874298919030317060880903369026667887813970094246363233002869612352743386337201175032217463405790966770727561967206679437494954987119832417650928471368130642891340834210802006958521564055576224499336877537096506269605441593254655819104964272901560418401013099018943611115343331711102133423659520383591808193667965365991083711188399792534782159202325927144603994026006587739349090598658671356541400651942121592001889368372959938708605801161507990107276027676892645033078994569958224183984250355946586081943920055379039455001716182880329541365291117300522975373701064875359141830071152151576001583754785174283997866762111880941349797524422759385436477262208696829853716476227684918993568573553875512531857773390030248240357235087784020245707116381562361853665820411593756187819314397269778702289161336856200932514927848593324818444668755619499926624010644602638379357903608689699235443096822982137966814357087555004976038596546399534284623826810854105916523623117443929084913835164302880106977281651373951280468335696021211595817951987465291629418414956394879911821033780212134930385295576660857906426245947063555820902376457488408124782671313059448810578730463618305886688933356995506065696902517950243911427358158675285304843483566317941291028968660220437597171301150248680047564016267496478051674110438955545579860228012494365646952322109205294425628269145627004793536397214697553403144577851446399705756805967603280394004229074348460427342218106288319457220065210246394411765597037174864182152199668586355214883227482446759076269115616437558964639910593348911583853915382293894691099285444398184665983039693182193014562897303034738085911705041710480310213712199932496674114739409672003033621797357681865256040833947813881444178670997251972976919784110153326205862535154150751009008136024469229774958348914995260045902288040057535907578278577379095782791221251080435800777058368649601618118593539905027069822144322816066165930472760457302756330586546884853527663881750332785584715204186159095614872276737606430412839274943068424303240024758429626176300343319058026278810816200666246619100674983193121805920566585702374480419500562648559620240066587849213484502579825503803151871956006882127572346988855384140385043125161460792750731536108014932404661490306180716948812565962930486252760090639762990668313340653302042413866806156304988749757418017518782154964974400095883195284308906085247626215966347658156256608684648546774885512301832082175568417183754984731256993822956951402889137737323306189135648233042016402196286994961966283344776263071806942748868011662262592484380564517995062987844025046850063764616912493519693980000174724982491685498409696021881506432214893347912642407540840123221211223734971724154970215066429509981958633360577237497222556267784337120435312015146819327914560004838358649886426469997677958961502912565407120333264033869992484881607922238025482661747727801234307405676826933058803499429672544614572829772367895854672497201568401769174491399496689958710241441425716653669948462111639052575181423728022474963968116863745706291892728894620431509310414524761397506132347600175292522485316914264755169241889278106491753161670804816849816446024907165614938178486638566071601437060658483612331898103651641719588058515615757291963520482926184753436573691307367191745055702357238312086300592355129789295700461210530686519900550283922516031305710420132197158274291169200808553166802157730815801420449972654352593423890854287253684915313407474954795385457003891945776134764278298540929964193617588993128386103212005492124475064973028553668632722477916289516365271016401164606861442272796165014387050507572140628553478162948959681120319251853367655682359896719593380911385562429114187350548663698477428396959632231091166435619832626498475969423170887213975259351438650776923255938280697565717063406113082702336531627026037059963478596966812788590906636590787213823424694555404153809107640945117874934401986163603557706859027431673952817340939492921356746826735127023943007736159916103319213225750838397842149095062744660635439457455761714046624806095517968326368160996405606173007516678557803014734016696916203242792525408696880900641233393420617637161304704638893606074628918795709823910934747547690365495309961329787717415646957702374927644691471433091351182947297100167771617739463161203131226773803532908535797381220194651340570508652666373046479690227148278326475053867107316213873638527510643880400872329256132068027963953113962975695043650540497341841189924674530656548973253782626522996443954989736902834075274446407260758842529452140242907454232146214397851024846296842677778182897311377722478454766060777140005695719942653168304908859004080158612149731357185280096556103714427337877325388832968834470019895106854465016313354889048734710339783167979839705497830508793222774699719273606802579892882501353852456822659942094108487880067590276017280499444402626472213854684131278759192210576355902149106228255945014642071042303127145854488858644073504818578242460816268408872289041435878023912332701336829064955276129240656494104348348809681814379879999175623172624886877228598912347438849327259658963250897423539302002077934199240656162606100310899289039480802951045623597219030647626591927148212510682055068802010414691654412114942861648797196654871643048903915918505353261077235591675625008467749823689046758819255288577371792653774472690957073235844032876112234381706281800838915397631382639719770559549323084065102113556749189555671736914850011803722763214987532922278646791237203408036843891130126550823207980990038273024076315593618295978825125971138752044164040319496931452300488452415212934371067191159140842937934371381468262351480593883064561599339499872550121778276610249652717912518149412835910284731092645819927880278585652454135083670795655621585735983138291266244180527225280270776770707080661095610910549125347763914093989559929224854265589923748016817267570378546451175882903992297157389642453866981312456519214750025560287573616578385843146952721513533112966783694630271185842313790550134301788719108263132582425818266265183243537411757386697365525304607841010953895332192350942087562412757844760068738348273029442265370960932638850413548186737072254355865288297982593953354148886605485376290445000303305153415662119750933545684056563994918421168422181774669417828114061087828778597752280526998220335618389354143075228213665868237971526932139136262266385885319484062274594172996665344099769933244931890163703810949307480126796980218607744904846779414721258704323319918241321574793952562438280142561530259910065017068602279041509322443676860839256704085002308543537936868010321736539048338877985442081690813733508596491515213683565488056554486643507597044604853420421026008076345619378175874764060304380285544804813117707168512677823288504678416798068094433039251562739177787909545035218402540275568275944671223097866380443714989177325655089967248927626861130683175107688982668078245868242050269265044231515344199232693727050804549304212048241720074433403140043509504233721530995387601598831813790789593150789005901982004402909891351545003356398146879246640017150482948485742625597805268602502109074473172368651900356549381872919280144320273642314430351414953147807643252406672680898123120258713392823363002594687694893779863548295596765353842223630770990617131129030444894908836128114164363625910551983762327029773253966785875319338905955154636807140514053323819276377628487880978900715055040701508128846876451360649627198837061199549825838516387079934449638582751295949469124253010754093454341595440392278847938916582116827178724445624956969437944809812664138303343887746879048596686943987872544527200104741058354326191838905475084181686051906380158937160593402780641874521878998771748221081092648034939413661603423508792343364710240630637513347416275049539440432405660270817658627991400537613216098265600239224734828452411329306523985069042438803334373626071574369219474743265269534299671921294241946071139457395024967736276967920362107198836270422348217488963267769411899114146480217888008692460152447191021764312442728594103309334385119019976054204562672544658438171439147800418951279282778470007254423855198502575223139280580892626030188653745393383982647513348470361185803812903226030493703466453076860481243835116215281766149516664028632395458959925376914755218201247822170637525887747444938778843056448705588004997061371130805206257764109599822061644761530808253386303986409179680303689859293812765081866574843686798257759176828984904715019344113458828530447907511713673382155942507376306889706805727053096005948901124960821800163405750842154046154769414185884053204640593529798903898453145006276588357249344015441547010410878778564966185248163884909240809144807100514599480511527437352795818583703385894867266505515642914838894824541358403515802144439887693337234096996566250678543815283224213183767013135006653575672490771805065170554201061951785142426610050460141803832659467946909748972712338167509662605138964811589374410933609980278987666034136967937056902906417521646616501417011283040254076330241014386570531940805283794434916361837375465505254699366170336765967540777781463507548486822007074965964595373124386182224909738313389623672464551972273724991383845272012598015156747296319882011900949273476567688171046464791476939060261167350905641083155084875271071528697900802447264927004896442216865238795222136449674340894745724988582310305611698824535303801404169326410086700371461117194759992721673283264190889494792863133866317816560701596328469366680322301126778759034458640450451875411239854969333098802816457577204565898260561598710906091759391833214790171051428511215574821818931667574420448663556692102727065414457436167886249770102384637361273497717297858278033544178765968904781989223814384851376620148059697686735625979815668177076197951547061884164754495790699119615558822653824869330777901674000098079136890633295028547890111038349708115658572148853354091539705036774766422338809498393131326507151132572250250702161456131060756085093359754278302930294888478681678754110941608175489420613562690143801935899883285464447730534363278213704057708805768970969616523430540484318206404350235322212100407732484014489126032263254894606723480654000374940690092267096018411277540651183163106815619648780263875197875672774881282958279208939855790302365811955711126995078040565863378917205123223860314740147265844724370123086398904220944408350067497919406970905291804930164537178394545211154092570398822790624941665171177516442473542087120379613779799270979964036491313789313480252460677070604411002941459094715434243613375014091288680469992167123072123413917662898791541986676128783310536926054510069270167553901935851917768864043631941150710793768201539692063462803021381782120886957834623477766500893069384070212269475066688354882071296395704667161068210785245750156740933032070141127459860495026666888564176579743947954736203700254923754637422591983958374955440482483771086099309285322227395997998302111865462544082485368811619793725052706654389255905221724154969598579677665599458663659904744998457568888549725815569948600190662606076730986933010315007540482638871908807637210098476005453139581983362257529018957878107424734008908337539360001455604952666678616606229568281953950463247595354315535592644798403024079733218904088751420664277350608283280275988582635594456446129940506941105152985656503140121306076869122556067087832221283579135767204583341450937834656632694247293110707465195317199035818199454677236035778585485484847958401373181556956538580556983601817060073313165928457503293008124616383430277211730940949593334360244417307092236852182840477684335610459514564993312252099931458585018935068774247757402153542370795331081731138918255384544818881922344798277486748891762857047761475087765536661868904460584569736999322703111636954817538946785185903052291059160887677799194474549589192020256757790142475097354594975900013628340471967201988610300771957597066467332663970717703557477402605585573374961087592367175694471320721872122657457220061513231831129086544397337190603006315541148641842193706293739077667293734136263039820065320211049809286390205090231904239445681036663051564247656251497946726297789342921952534282128264301919645731974970911631199845216551287497305201849819264057908610913917178782861598039110631474513552254414475997228637522127350806170604985799916715868172396234279418033115851368945180474318721877950513757400996413771328274975597895389154791667402165115294748195482198485620702829253557458115886449362860999697220874775649130170930184193585663377885754204649326049251801939986629222049292100905871862758932256186143250326201061181277464571902724425131716097062718811133923102980852608679726813548947251008204698625947388373458786296101892763960647073556865071311859478167700794452134022797187560574139672282597212195467740027428385011811169330790158164769386691338366526957358946881199447500316290667504865205429697830853452746866730875048568144196434705608488333770490470228243304280072729282596756467142978714091223021206799664893464559261289220503432038239534501604568767528210295871884688105775680364353601288765074363500871129473264126335088214638839932093984191932329057865094603022514472534414105122364945100322410225695548403333237521316016758305040675213382326673534490135089693736466440488226474026467019303468038093323292399893384442690916023468313257392508694063828498336718914719865973380920722783278348723517686355448641531657397774632356605817845795924936718778770665252036894984519838128108894870797311145757093931469565936445018812700200011064459762758952541804751633270012147883692028312213550242145831698257745626107392514411506576356503247601625887396224037769182625194449595325250876667478663685100345343790586097224995646366669386873076667532490142592908480229057250030102460409061818136585346865651982301566601268218360652894059347390462441833111974749262650648121968200213850623474132848672146960958396019744633383395109859642273253255554048400375380143212922647036086631280462018313627237619951660134642155470861851505861781990671544313538023484123519423661064456376429544712581120923125170682728064084225908994200840987896685067056196066482467830067875259504838099697787399480868842689062010967718048187623106323412335890874696931034386942840692887098254521825270671229317168687376710782987921845716098140145204973782087058586194512928091204338275427004467060159553971155021506096526813252683965373943989499826353194062277173884525763464067228425277441199651237204442904107275992716086661667106043179018475964794290343646924005963856974233942790758700414108982220245308516048448665590866093047163155477616463009914084510696461261242872842435338775958773429033997052886014510270211807802407919349694402611311175779308311239962363194541754769776212545015510883056738327953416222029876375347073378269644990271348086942799888775779358347099079524560476748306762512476347312533720312410026907516518253065166508461367274045684305503999806953807947451288463403896764759657045631785642420479775745954287616741470638169227687497766657200644194433994260216462363159642527257753878679478943011277836101386440923848996094665285593324723055463831019697239353365677596558293829755943791223373041992173448055877618325637369282870244551145368460207222017220049018147672939142176628774381788377886676233372721036277547780772443813309455889280962792076383752269365267164215565213156903508328684445111895769634221259435236128400918359734915663304122369168523241833979352907262054413211163946818753383484167430702342378818721790745126291517273692576002427964598972742734604966961194259834829185372553989105793551868365092987020699564178017428458622134586963970829872851242353306315270949634904251468414047791687459752755249785647305679360271801487043579810983558657505207822745322158417501590324596317920984073393452553018007102723904681660136601632008253548231263458271873934214602614990438305695138251703413620030554794224301978031750757093729397497642742170827377971528696961842311354755412528924029374780750431775294185151666880733474227942446553015962313019953996591714288258497752309519168008434459656470045086210022811443486664955958385515981231211103366881562408660852605438998783453776092532948707463406855886244303505099529363656414080406256282991925584006510510742021353019675658639181409105935647515389806692214098663469983709995155497131315412697462188913671866947932406916789450998318320368564057643355815127629070802092261862908714207258094495095084579463283685351963164665805529563821056714156024319956689269667251613182222174706216411561038065738635473028997774346131990988429395529172367026798392995590969816518312602276208387588087204608646679106556052882077469301013055744199910767837776308151321748596920136680503932765978936069740371209936146024599576351285104039755212159991146268891083316710602164428130664037799990428609688993776479993423886390841439391399981936245064229444485569682396545323079542946586062067683874881489835238579779091668949867849577779572644085238930517366184040582534435238677757648226697716381786654704670125584933432058800365959480307023329914304598870788370324347429295434311584759184264220175667055456498335478146641486329532783906603811981729607153427362697877186968132225254633577316751206147607395319144881899947113149845880230072989699947749259276340947730941288868591885704744546885366670242634689037513124461854700046098326409079282546905000323440967808963250779685915133273360910847784696088408647231199301864062992503374311574778966379415180483941033055323598165838708575873424764599957497506357274472314018526943363183239798204530601129882212896389070127758754207099411995954150797375207131839011251135407736421994778965328278409055280612927425900001041600990468650774926725087761775735840754165802940493083432763790470609020243499356986687995320976757892621391395235602191441652055515921345794197729536084682975295608948766304813686875921418902188962262731066434401289065886570394276800347186694855096927604144633965038075859041485230006852995488131225247717233879203404815736331229409501266797993166959847125592219869704837899035896848791816670908971718389465582834594846661326878479099989859545713154062240710255092647112181146479777734182039914060951696483762608790711412911245234355803764703708549500869733946508004476997343647618614652974652094370683057995336401992779658792604168744493720412423314947395754552365275566839151743151212079483500628203794881853300055633195709202077411935273740540728902404640033121782422148869395536111989507955102118037902627233876674250259079794804669499452087942420142615173064003319312227883109569607454667565130018612060094370731724925651172543056981833010615443255730809833647688171736727502008920410592461763771856829951585799899221472934837218491454241891442919744123968000042699092169943595320243240233034719837167356713374014529932430956651343342284162424346267202666901954682302861486914006087065457187846750699397715188414149393766237918058353422642634934245001702240819143319517256867828356867072668564221967560421387665520898371474832946701312683905932149012936256125623548015971130703541158780019041342480085133546239578480450388782209378935395308180785159080183229273095876313972884724202249039651333992020337945717386444490003844995112813894266186549006962205235125320282850853866666805390884374308083432442612972663643349926215097278924001411301939180620878163592303165172323005156679192594014139594454440779173886903956294536535668529664757806811530598268551171333034174378102250129779409531600455387359246304290320687492468863360002649188306252522813949175451673983426407789497017831177374883647450571792488465903423988179708572289055616724774617299371171987014851050715383308352519205126492660081105561796722123054751256741203298287576532875370844689012745898315972935866322055404143258218498893829923687815865328450350064255353897311430412586905525839291503909349614332886203276254338196752762863131177251569257685009708923434851247484925728664911473181730987531881445611895769655660871853545733945873148383260211193581426030126339810693004276398983969054428675949170239441300005381592126762302120733843216860132801923861524543708452368420577471288731357260379173315234544124418777762576215043793048251433494441251225338978976151888661840451992931461507085245321936737259011371803675482272338508487890631752585613542049861535251569839824869897749028365595366041260747846425619169043003511220447069257552465715759371074568604098648696247654740143387140036729303744233163697260986380740617085668428485819027544016997601016432416009544269994966896117637245188471676377579395355634237481541134927125566223478365478614195718393387975223882528616011892010010822050243065164137400500670889271439914542542828393185317854101944349723850175473879433040255427145064093496053752568435948716673298408368363869029301548533316435521316050942673126033449421628400597780065472650716196904659692585434778674821112077232338550590627666621685882877948959467150155715347577591985783007842065241181546641288243343363703591212861964234396780429920432669785297754520513495470569034996662230516707633838471335994658209695512931403374181211634196908024279633957411825327416308905833525064911911852725287354687860336044046857196104690270601247008867386806898968179939906923922516103935145859485535627514101866752597737229227186401623071132907882866500200117277231029160774162918311104539578619014572774068699212606959365844013858335978732346485201337143860724170346404141336859873445720091497044037711421401796125272392700415700859777258543091045039179940620655873520392295009812439629977553063055300717487900547165872995106844704059288909422081943241502359972621565821756036424889806503062078469418523447182897840281348315497621725329713839251837690663438229049668621279551679314125481254304843470503902703162385626811265073075988992564413241344606554292901788748900190376488675179618732609828396594259934799513605954699904801876309329439213050567512084458410224500684748433086417069599381142121167505453665779318776098143256572420792118266726070416314180234999068534004100542239694849850055902890075402245021551885322492185949554046745335939867935948023332710439574387178066137822131506647099457244993671751173458351102276772265126525147618360198469668157107863443702896648381441042295151042927574507147044137425248052216046689592591470967138742773201276861132105765942117539151192210555159743069583128518405996579900705408505859551472951239021137039003926456360035317310911416215368266769148448530291581579877322411999706754270578437488092925183799876088267756137426234524254642811251579942647568950555830021112656436977668597967019474789615445328566498143789552673168596175499496010422259316645443705566082349547084037424272825316002620258197685961085892935915830642197600999830049850913011914308117073874177300461653267196898180922238251636744353058154440935051927755725255577790853795445224542230210067544191753368661291100895573441471896977252100233637027759028654288855934910086939932082025904774375880858620235902844307385700115272919903297634603344942607149870923973507584556722978464605427657458823566819716961287205201728602250642966562592320665388232928574245046581072309588579716351501216325166632274064564287857391936878418917124587647351442313702932725199109395656595623962432844361967145254079139441649915529415509144882366314198163831684692672725359642688084996332317442406993936116494486292169365647292433030708597909308201283544924047195434482429798661235319298931146529368925748590477826066850204907104508171259429022481771155352370350281753254915094890740198033988010560962565278951754189105357046598464618583017666693615059532327656589942697904592489166597111403365524268171229809256828379971051180381263628143807271028633506410875129345841169370294156927226038173581201006983244861828031170397272446596851656450449001747147643618891158733646888169713418507316202179723486956868964740470621734146361754850194349273915852537672897163706147293250822673914688515344894767330197991059102823548491117689944463142471163147611033705774763065344995922766212678228051746018787439948156199547852613807941008108217189264234619112756305192264590155272708676785728092996305069335549632670984395787011106994593429946516103384439480363013617526746767870853210596061816452979340104215553863936199245132420570543294994644843803696046116763173719872849123156222056275584504239286020347359609317967777301675367469912726992591601369824843090798329233915214328520853078030883659220007213000447118321636457762165660136420823039550399087791266840703652790931688832093527912561024496229539799157288435264822335884363312971302812809347964254729028502043605597867115350272366145553922851206733444051593776976143236443465978957199628277887172931104593345205207891901319601465892665987824563543046312299536155333261175297816789529031145792100219554850091177802633612526561440890448163124070096118501271226408689818684379366215684313288504923320865205779296379183792128992250713270908454260048302687137486717169343662435222157117653506833411743179267196790131982029630111599365686642087333252307452570888177259902064280957049812946809941730544691215226004478619845194364239571193369597820179070198176631588765634934233676921235629972177350103122927551470084665737020962743626130741884399724033308359163927035030469569285242549338742010351922727419415911088172905316845342827504174974828992032696178722232049396922175768927742419981932441985227491865533599697235687616490503894348629172265917382394555921613271899509053598243707220981280217230655444620530481227134299326893901901734282143033224641725654166763000073262169834325631011302582168892975911946053800006987072631720278548625506261445475122541504821177025859538249055533466533577591476273840867066007027675946070072836323552094623203377453546033049227741894308439305101168703830267992420162345673362757508637258276218179144850477314414490813754372122435148677939904929831990500441030474921745195971304855994491845613700899647204521653660759276312446387937567436792864083771582255783451079736971535881785158333088888957940260742611209272614916027158046209527134784300834925265053263932141857747588648090849566586208224216623011021390320313982789230813912457827093176091275029526670135459264759270046834239961772444752214905262847681068861147055634894763698572266784163719652701319325501004665279500607053519914032629916074738850520724849967926241088972441671853947228908187009569953173726734351970239001260590586341893145178185568843670044049349920335283581450365355647755702184818608806760936859621024123764772189689778282860231089407406614079795310186650097649066044367176766886810229913692175900945124804819910753552427561854347256381781250635449777598452399359227890425467026664874274969808589730465246666186862478354897623330692602229736272245100346469557190257308242957201696877184682868701186774701863894013550248344451687135229372567420480261295565344808063864344327334422706653145431127482967688747374931384888420437371022727259975121532719198328826197125538103081921502963291590735041401572684447681439629245853166438713512038933215932881028583461305996798474483655418236261778731245122411194484762451148782964106141188093418641459444645030229881210264839150551822831261346283633081015653523168149137526215728683766547721025461330650156830686823825805369739168839166585900635017964917053848588071149074694142218769172737744761144536586157182873046509906137280231413805057430442463231837454081532625773202674437202608187640771274926573858150597144445935012312552272771682558499843124731943996050365277647054791864973863843269980365450823047111035970573206449915607588557847116419581071449642029977512730566292365778776376081213380988501378544880178980391105947839045394932333657691279203440035729493118780738153168811759491780668079734705579964732091241207936195910927565823579069972412204711778125570761635251103067443068181208816274196179416609317390096897764985969476252649202861037164502182684812776682270302562440322135322141507379057301540767093281531400364093368760408730754728688404000798002905595697041773421400911714369604555297667157299962874836915479151045917419332059572048756103164883237886631277495545665732884282256586683980112960864435917647291933034977358268869005919633560006468972846627617013958370107255758808384744228429450346618186296770500311281072486267376302857409696366058769454534264321923382078578474015716684550897008865067830343878552488881598957043888140274602950414265411414900177086250971793671441734684318053261788235899177822976487309072780199581630656031921268500347622138823843348825000405374394134281643943502033729421265991856008682624306490759237096950820939463138084935328938554618060138703550090657045140613052998351150240489563144883498865075972448833459831549421317986336004801490486318540825950991573105983137327971098409447497257099438277410859854146948312972375365271644042558353798923836052294245755087534946218545522970305716511312292836179276787982876354987205728895075224576907279576695622807211876838765209476963087347622571669538549320224028003106895045610017248844475222992200418914178674637021597009386021979587163812681590472960639743180604555604091513092722142774142935199922125237976528382561769178038718940814587975492519730177059376343375674981856897439622636736890524223688741171621539060612879649966759498541736921863362590141291491361041497604519710815646333648923538993210262601665421516903402288531151303082584081937791921896774998940890772592411774124671070599167749663374190204665814569526773582835957006937115218941510937780639734111118259082386113629774490745306334357258235203078536162571846889862866720569622278295932070829080229493658833325024352206902268671747690364180943053975658965149862519733182932264427967540377319007256870940524840905990531185160453366596757261350053605209698532750521872867473822817858340917588108159420948453802294880258524003220863509395675458884995618976543299297495794072272489826154704491905428779162940785869319078480291998224218696797824666669353472655161981308712698852183108209817504402438977359289171115854076146508886916639216830576820335641160156087650182158088714752021440868225145028566306745096523097292960876440091449957963246269781435537211393355376760189706925150765848946340461227396978756049738744565866129831026533237638156747810264233991013034301343182504075937139855129884506261912591481413810028231581122812237593704680337096891642096969571314756736682073195903890337341050164172358642336186736718797241703568932183194150441139350926483102810112153355811264372147671894806785411186218424392393673359881261026622161388771419443755770467639324360232104123541774115382676949379856267689439327086818308970371382997032406852472315946680784175174954479799789294977927280799898152507626755205740164434857110095959336995828760080799903112141143379227638861082977833161239773506895781904414260237793891707374466939137170549698776745237021180470267663367013597584508660802847271373689591440787155348840826575600233283123730456925178519024283827482622874573330925647254781845647777820599059160079435636306045021752871999031982260452439030438036757731161703761130836009857427100370407164400996739781849475311426645977769407704034830929762146347646820687393689590793567701844926488799394820429070771026872658989341901623892994506159345869671391035556652000522627677549854962958468135148542537479160739965543678327101897703083602029814366939211914544908905559632539404447661113441834601861338021294263036846898852141257898892745450275353822500128472485703347442822062063391655264979321782369502252548916847688957678722296520970265066273374107004926523352047234009854409677539006220335784296601132912803119156607899549045931483703792350097326042103363106300148311239643716174467519653296718687433259285673775608536947138071901843968609868102179668404823447286921751373819296554361957178349947741464933305925811679839292915488486629360816623726304465720584928532023221406398540950466199201989253928221413743242007434175369790165917121171410547499660703366413870250293988273943760432516736771266999014366928329979271453928024722204127486944305439196668732927726498173057033256700471669348156001601156192048590007899980696749287946045699378727596508079518745254882750077826748721819820443641976663954595362311550352598309560785095837823896261634056918093943741970111945896386670229612891879514294768050991303639768497634780472899282009073987823243203037539148446465554140497091988535495764742909569660500434661254008839752800449941690877781023980152273045397963803504381259705679133729417136297315094092233833683768759630613997967449409837893119779888109180372924101135200831900081359935019094097902459831019546362899131328768177020728342041899328318069635279055270023542600021321229492704987943954680920024928607002808664563509343269838021711019600134133157456381709669528809490105040585765941969435633647693676787214291958669358901825352136257200977147464883033019007118321352177048097319087345237815628914817112400927868080865189244836299646774009140192343511550189287623635147659545120816074953482019014295313615194749319217731055087671516547195159257502626268441510264257864630775293544324966982839084650594645638463996157505369333637791027378084675540253673039268849071093581038174763816356165635856312754459124511850955096720681105507694337278276856637102609930099037082903464578556877440576430021817488725980931009431977726897106719716155057744810469656000987573177696152310928323256104022124071048479180710802606866665715685679280101373354270235431369816891228786775787511145987466854197949233103002245494829361194461356389661593001896857097265724821068016655791458360441289376969086611862814790893609078497861493270215738778026330564811810031122233764339189380070928220497590533595563569436664038057755172544559319784994554979522928392170604409918621144828396533017527900020934367582765709906435666123636471082217090742654939084089357749596453161927277156346331231226052801711331748659604626465226948760487054969153337420262795533890449789236445866638852343630110343000362271055250556686913275158086040892086618581339037604978937929199800990941750157344867471331501943732817523185909249230890443559502657865780943864095449142930252734995390979469502697996065612199105569298794400688465028499533572243687279625090207597680114660475877589693163224662359970190844786145690618437003554887077672748882196700434263334132298271597763054830573619822247744807280956127568039779590666508895518998908215230406855316632394337394269499184647427503814715307049709937069423366661948186793397118122538018193041169456650531309856521260202056187628550774904884814193778831456120304492425059862903776737140941468506879803348979474349217983699029256246838823293002839070153849335658858734838143926570306836950322099108948684755814715509452353236523833277011616509111004409797919525753231062110153918024318752610278779256152122731132111733402610699602217065167082654433336693839100674017609866346571689005626420735882089578579270595125530556055925983677798004873598035730153496843374816480184831255253167565302964013852516384400080866550720556713482983788100113704569310860953757980982626462288348375473291397332326778527264429400246768022057449732727344516746228439284148709247004566371345517331648788289623614475671005964012464177199077660726420710743943097940983560690689410357547582471185205480383342426284975316672431915137299230561291454160529635083952412813184384757702171697621788850646922662169769475506565494515248196190138565352545043974366982787245585826069447467631351611058711076473872867871687440476789351690118756959211801385028366161860723099320938409927286813163538940886721683142150250387646062934758714321878785838020566531661381474661897378048799650656295715807328435812904445319771918439753298227294834684645588600184061683748340816162929672471369538205922641174288125291981565820284133332344727092956179754650581043881773389914073409482564119870152432937592871529733462693697097427806325960833969546336903968680285928471752649244619894165711034091845629436215181279897630561900615393195391526420322472607336645484280200234699871649916743280519941973692149167673063250010060080798085123106349789448835685617010583632335090340199381287920038336998293733617578505430527891767322308800053754416094993371174223624110497182161197267743905704312368300072491444474651499436825772674972024377908525363705937695002923247441674546339985558798197179432971430434342698804568643087550282648558653308802421637120099580625080072579548571676958588803924414927070323385891901959065023385464340876682272088662239869605542705587046269559238525139639360558973220743417966922489193436501759438409515369321179596086835641711469820648279092217477828331287631044298986486851496816918789946930026959275631413193650376314763847903611085242665489844976491040749225744140240533735410037845305660198360258522139881786881414570358458700066623149654873521384987270650120837496800019353010605730052128293080614772889646891881793300958006496122240114776546822905160263928601956776207429691397633709490926646952957645548682196102523656812803379501742923799770448698673489854934628107036677453746468897636234561537546718515974175696969306138031932405951040253269284326310328720167969346536780541490747596623178523482680945810643382329017354030025351223123487029143977712159426711112664263344645529286416265883488825764244667375837723111304681623557106308550461961251313396935194136537379685817659784901326452594867288009153243220563341015080248448483937342612886955266543487277282156050733131592808580275465524157349931039733547406399037324272589387264376049362811605319528078570055979262383909086259320851197672098720389248623841957003106679851014589569260007967783688938079386697315280403768227496084014793837307539642703394286351612853375126911554416975792897457971718040652136812811023738513343066902529766933043695063166353707488394646400565517651011960055711313135899032733147314293798063162315258672411381348180480131370887317883939767697906112209052203516782802839897670364100427124902085753356910864040620020547223081871600704176947561011753229232908598763547290910201733261527349498703639772509897298676573854006797687559269953103612234235900064652436238703039589013972596636306809993414259769569931031789315573651894535377135675929925162421422249442008415594496606021494287266659707012698557635872598619977713676337639746202509149909011007518518839016066184561126083558545540423403575362699596814034806308557596938299856408507964910144676631311477150770706193844636296964505715401439296737741106282068950033521299524878751878411304578315808229320234434116289369782831937898900254738335142578763084624563198478609396696610647280783474701294965712706319456767541432012820294673402342527159143166509733531498984283120679711555235377578452474494626151004867090978686038232882595354212946130719413303763907861160264723518490961353051857536678096669159179418994999205353421323590104433245363835298924919344696759217861462454581358908267194396409691476573843612810781505715297230335990759100707688916168613027562901667886232414764285566956791395141601583298451555148304052932953816412840891955783164658870159905950197399612214103420123885682424560605040650360490132461566207477264042772415914775915484710016882111817123524802954222889150345540708570731190501600850857908045594171556187307738796686419974432873149875519049659271670495028023738081773126416932611698616319084289917317646162576346903836446117923222660244788763631276139555887414992869446796524767708811871643723397169493717416817778497522693566859650852888568740534843433463352219702760278652609032559417347227666988418188954210685473155031725833743377036893890043895546793156008034892005547052042581573751018087653347604932165626225631186363415853693024500802310218861577677666736999076645464285645307605839025946697674240519280750809206238663091373227169701267570621667215879838886590880975351184006870709154211931614954730119190087144147728638133635295192105290916391339895023422139215320175769752273521008700457206792483606496986889207097719701605406544045258442547968528054662670880696462147162785614954621567418065760957185771771390423365590959118403429823514220228620889038034663032536031349597175369968492169686449895410390822143481291264189443679267327823531027634731885925148699707407725113341759664142072381403527957957086148794472713636912736559857732712821955876584846601179920553221183223151170768332053739423558194401010349936073479367738691785402848287788972506275874963027923575797228565281544431444847522276831294909634361663786981213928040233545287591294323779043489596223007562176590526363167112624438366491046053828716078990069929120276453827847369140564865620012653828940189971882692374133454272948701174813420685813025726972614165660532391624676353140556806940312065555517661060057165439202834141584040422771866156031907283976751340402112987594771775991405054738874397831660842760870045773703399849863887895038250807621941891465320224754739558089337204978208319238257966847734178429887627633385071148620818887677647156689189314330738211213784052719712495722495437238151134922764692200040739391495077253529190092428346481782643382412157569269964524043569151878182548314847260314725837110258576436666111052805643330754275707557005377190184739350148685112805424111177515867656589233708711036534412797198521585577429226477802478181764561229016693362700614432916909613836640220420906814871465416121662340976502712421101935486566815874043850625988488494184201601486660102974746269513914390959528692517548816931642037379038053561476432712721772862310095837080100314465346269904246170531621873557066660274191496330666082513269796827079906904891434230755335314021920598890259868244686481871918573814506636849009345450538516173899618969328691189008033510767780566503369872653909334061793259096550736829997229188469528561953332771459228291495601690366065543039586913205969366933154027625128417916201357492291240474224255514360883700518711385737594053646102556614222687186586436204990790232732440257829266069522715378514869856675105500908704435794709148407559251135310041427657857984939770308103713533414355987278199312676310176278165701803113034392872284155839153816571981812208227532441003590202805206412985035467081430186431984315382488931950627267167624159195331357132621128165847281433593640752154906119620282729637474097935269588461993429701559384919718624267272831028403241779531361078378700369832722395237104012404933851606499531961523230976395217875154806484884058261485330201819325388012873805376723671091956416144900374751895192079781470352345884584152539404643459972470525572244193111142185607541754001010699857630942222115681117917894355661354211046612236334859148990818405813575984548919195366923599145853143479278064358562701123926414095679422052063039806450287451556320149864964196937874837865171169402747238261842183183107660976353008520955687112439691416836278050489862275453993403883768683212970154115033569396253493559758099597794262480162044376441860876396597951815568422898910446904364705241244134773542388329856045035938695515729685570271957284841422505053130150014849417498055168536626149512466793765455057706957583633048238487440765234581066552634453142545192780969561771970808341200702091461699361420900924402508075683144353280799564878247846125222167056645686868630530739899630396043287458302806351844005810640575644626115560901780447103659834145633472094505228230497985192418225670975166604848071451725829209329242674487980431608184372343809353070492258058738260768929840204585959942599846724019816508050908111034285750290074168226670350994930603632891618917722729102695816901658275852263948093973236171991909561729039860614346806705084404450971472104478054145098603520411954106318582580489772012803984668731786509573376537064750467120356849926754479164900641189958660654557243872209233819205338625300534791453485440169811790155610897324675084773765912246288959764180414471494543764366004328444339351442342165683078205864229359355492801758203789301442707008813086656791812531228726609857864718514599705906588222305342731463867514762700270950410827572628932022963746936897667967610882691454898094631192314180420665940007053403347776300095159525991908633509372050573236768776537855708825872284760829641700419908605734048418649227495483687893424908079690304128810590357803228541365287269645635616869241047291970516272433066013397477659297747223216103745899165412740002331163948800162852873767807771744411471779263199373474870441825072568839555638189735820248044616042569264148656493508884296627893295741745353059890395193124661679166884281884947091309747832416703140580750227038717718599193253733830020162273868810575726497152204467481240435273312640183653377949229990171931019265422359916322757472823373892365756577778015365317461580685131745319897655477153017288359506161051497574905482226345610277085739575615643583851601121227674438548790492073194921324439742596570490728439206412914893189154770476224120730946245915297762157149846657059773571387648413624030611553260888381912599301998351013791771331827422704965132095005176804514492510780787514508821553185860227671351156926483412305263407966658738052268946424502600745275137867980556010059603191965059566676750154954538233656907431508065396790701153568675394900889372832600087277414117650104936292887061775567439592306594996897133989801865177426489071192818158188632157689374535236437970628589047363792425058404118541103975427716263070957112164292476989146047056255677795287117311986428196899368823366431916128125943121155197579065218319599184473487595519753571757814962775237316009464726092023116272355722399425699772127754778748915928092982551203079990044718324738314989908374612405760376056364988698979615863188442247722907447180064426042211905450785208008511866735227117900384250091038915060093273605849913991779202649394483849478575746115516769167236476237467477132321319797805507294574348926884197760090948111041149073321538146660600330478948720988053952412316203905426106710221845598908964928177285485294526158033129380843126323515734158215433566386195929729558235780825793506849192252093632285700593703010235914433964245865278790719450926954223598885156831235232307982495713657407950659723087312909315065204180310347875467573815272267710719130613239470580089464925635149025960091912118942086431588250253082239134931099370896911278748104721164658515017742156709531765928581553584349072622306476636872179117729103845187883917562841406617856653854167780474770814585171166566011555995530402196649807830357997544505208482552041668388925652798753755873990683725288990865923220526238389972272635746682266471734278912995701078738348675300460966630515733933530580998155510111212427760377802176476746260590360565318304224518440104920472866520607787168758856236186395080964115420559082508917744097874845287854034305541625828915209047637897207335026347589556408658491362719452060584584862042961906890873227096095053899415900811005194094016522295960300410839992363770364392366698096581161406581593741072282565745221760350491815247962689987902463129857353867386237921015947492350599356639057501087673199880537719638195070877978192202661940086599373500131454079631236868631068635488616046413485751338719084420338411932064683841456160238166247678804946636130425117689093420892749938853512426223197768002151931789428375596130425308449688915283521671917340003841536091148960138532338841710869829532497692289790869462343966711244147715498458986348998101196864537978568995831095957292277800627899733991480378081226446608902449020195533753212600551553247734045842323842437219800409152832764390160518245027672399183944181679906117031197167508949508079399561371003194970490322024174350714495405078475426825903461816301530316283448583554426137694213840538285559634867801151234311835599764077365504523835818287801965569775531032812933516768941144233650652981021909718947299608751245558299294954591494364325316438753224046943132138061266669874318816783584447858804143999390662096015463029294032115463927164534103298954239005417140857369234031650854144414071921821271752915274457418878114548544061014173764907949925983833919266744709432574589973263704915682489670232678817046673875879297935752122262195945057139782173672427597298103484043622456712714742309869075906971788129841035478101222668035168621887028474740096395487122565955415166514181645374069562812285210027594036166868311236284723259413818833181883578477838356880241409795983318398812611346626886159620845480836233133552167207671802481114956959301531822623609574773010002334076912854495429587391907589183131272534353953242530585138125873951924359749604208826513445538186005216447052778185719989949238880982680748986600414224389677227297664556298517249706887149775805709971036208569169987967504927617367900185344767357326868293715353646289818927318999619229889821011176110418559784860188501136142546085535125050632982471855309972089193245155520963736802735928300925976309327036327964065023594066741562431649911593479356375072210783332787961974581075614205918209892785774787408109229906244320739551147449501273651789947066590578803051699637423640423146710311311252327124871394630669660639863900628362563299905451957609348563522279521392668968196631333360018602882624716894446347831320290506144753818798382144282325689634039720572297553688699608577961483915781176461666125366259350715470849612869514681988915702026068107453588493375554254178203120617784530363039079460369909900828120840243541951495967229223202760699039806963799288611779824938479561629366013879276704131560354242373952124393821300061428741053167320142121023381250691234453045211285806174169515818959987458417369603366176211125340276201539170487628867375602158536477296207562277622470421662323092558564629035691522171612562738400225875569039850953556441859057213974413394149020438312942820958245118688535661191273089887290507509087200804897464298265349345303997558790671405531467386544229945796072651443573256524857815269805315657910990925734870179413300115092820963813319424015599577778797022711000253461123533682867881403987645614466873650237035894199865720624411150983188383981241796550015221779635557269995687144799552715951346078055699631083801573515242272420529135294801984715151668992911406993267333680180557066325561353333000524060693724038484160844695789721330746353071851136961303977707545898608914396247240784060927213022781744418769614146255538529536519263564380183044180118729494096984985611257090155778430482248037903100475016887535399354078323470718790212951473082620299228902411798068415168740828593423843935640918674883725482253854019847591743417220549298615413384187285102311820060516789804485054519249205687218614042001590377752188195548414057541619995139022291776359490807873010464686193664259002388231474303449308543553499242873178121901104215057463186075968275638988345271223220660254979162425578087048735384402655674211939602707863316618539646307427354416754214495353441322617271009049662007508623663681540678516022318166101439767414202358794774599538454959294603401482112307698427054268662772964965415174255558731424876154901749466204650788435086138176075467974869096845220141504487113346465239194152691645248867960362777541256560350605388878789747066005507385981448753909840814735373963320851242676568949066152491057623979128159090162586977811653876851995340272222273582905592777605621343370029247790044357459820347971344940179117416821722859114398582678269472522107318642268337135522680508826778230520410664650984734692703722419719583691300412682635757950917610200657773847521086013912571964824881129096239925041739578198039884995059941676713297818446789442680145537851565150930232248147292303787608681381104851009077254679874474209804664434810148726304429308215966090761719674437777047686610067393938557004391914240160796393627792837279159527677301223653170236570495533478176759069200017404905194088510258425178532467346420175414306269366607450625185743786624203308511829729855739063503594344978017769945830532524432030561293317116928106715996210777935451369270756873470117915938056863092405730094841447255619469280121633154846432369353151799360445074492547953818683984794269550222066433035962079338089056537913257447168100755320975234252750325599823817460400628702034905807918863982742691955154526218070139003762811141910568920478355368951587521565483000090173691068754458250729294192697167097452756978521880230580999822524072407323846514986259316887351033504497858135333207167011390092811702913384849682570273585201349568606238308739816075808287212599664641526494344935373688115459362872588140366914022542280214740098780776561115702934243822926955447275963110389626459354486441812428167470029219385795766533784677767133705226953587768182531351342916050187058044787390007343564250601078964373069569700352638443779298001647771510141534481235459979058033905204743988352011918817763861418884716019316983860870734412477645234499795044386925381005952168946976282688785328972916867684416564231420683434511717658515117167095737063001921292749505606771725122549197604579410067976226699017260487028298235004454629915764225056412392371605336602306274401890969657615083761930165138883836487755773151873652691733259687875326183988430087504497959175017732795887022076823792498930537399839814008604492563483268843513066791064612575141162395195805190551615037425225525201143735853049115658327648143304719143943697854567965003962556536558332329874598894515064665500097317361196605252222170070803171516193318956461812331074569546849869249135938804953525728941300227697720401131329319050253511883571570315347231457942590346292602924383422274637223512545353201897749372923867071738996821383604210960528902279882766632708823692116624602554287625689778047675585054314171731462993161031952053764673120944178640914372029718135707690431162094303728103356234275099537907521722358500161781272989710869644534432446245067929509363985661344737985819738873771575622488478585652084881304076449923951025571653126615883661982041147277847326048896355006166684222050571229423935325354706791298166547438419357708245941811959841608527449998098545762894147305976854847709093184894407063126494447331658717157457904381087536057458951185653885317133527854613892812256623731417147273556521486875330141800648397564070278565224869532250634857706347833027263965626440549154159503125664376807375479576640814548974125321527625869156627999443374740984131659967388338327177452015283324750348188675061731628228348259691695577764713855054284672100729442886026253622675027855219307321508173943578086086063512759039886230627754331281490903194846764764721796319735127337836798177831994090637743360145411399276428169008828814559943781316619002430535195625058845765207090635920155182620138884198129762033513241688130230636949368003651431069238368156578108242409085436962998445484759916316184991528622803881983565113896744790138424710820596163596399571931962647786591778299938030294259333614130958632890701862789451222934834607870024867804088113661269623281140627451999226246474400801452843845477029861477338536596397644975548468138544767604243923289698147818335521017288619713335381956546378111083483720645985191607351323130876730942195371897576082227631649818408635962630037030234647639417661964629410041806885711243864715464748552028791913487198795996909288014740747262879219607706268713918189398178155189540047481638509813049462125250621812371628840543004617520474812533171653661643463046888353837162495318257526800303279223233855898882878950977970901813467223782961336523300545355604469908297532670074984357769864813183593708761928886066220705804515064190447341217039578803541017271264234785157619668559913338253622279865846983425844648643479255487557868973960212328783282798487846835633527201199852226070821511013771687833253668320223691428437784287038531826179460554233061780378441335949650425835210717006568189924041613466357262477296464701829615265762885380866836433389063021068393169665885449671591238882525603152571983152589225379865379318508980584164601201373067600013829052069278240909841587043737057002064594394759286784231847599714034683334527590164918877116961382961159327166786484206191854073848294909385020424999073060421746002897630222870560684616188070840114058827906226224463457059998882899526969120124443377806026923250141866450764770393667723108665312049618103521130004782241711611691821099498489082050431120751277593014113661532360475416042278238424372827778161274229365040395229824849950820540031838259434040119377959562719458598037122311898462226137461942082944083036854542798132212735028511782678656790359757869340907310925879969064941936515097920060148466976263554507538982349715102412551084720652418989828961768301095408480227535273777663369439822785772377992279511094002773874618934653946635055253405855961993331236181750683882555983989033235464930687453589422894894428411734847451241912271956266284508414292182522180349499047065166636382035703614726789660048489588275670213107839803417331154260801165530581276067186312765579585826626483229417078231075765642555676028523486154716420349619432203172280036837606097703645012240284892551744236319840542476081566649059723772648393903007053323391043480894462049686422047435854779931949857804749843186818498075717804847487514696597246737132453265022800467788114623884552923632859376768378538109924158953093867629232811995217697028007663572414497652069045845799325199823797499637008072701992999494041873540391971233165561633133938951761180852953518744761785714419512831103175276746116065238414476597696126109104858147829947984050169281437600622129044449815290769259742124739498091094955076767944169813175406132435521086150995093368173279737805890115182159339869399770992775889030104181732376642116432471867401936481168017388741212652769340061245371879570984925961338244503811410184262395085416155813816157960369907979997828173736677346526925639548634145093435651822482105278201844151855975550563802407980370086062122081574555957284835854696328394915875301225456097906834107868875184949983486055907874604844999593173882614287646664221461934058293109731671722502344703891894229865575240714736721461181834886457893362672875632087085150415478709800925880565696296478246011680262141110418148449106205898920381030300552268262797167776049314578101481455528070322299944302176127200246820083041652633710686859201593699018224843536234481524145241551541431938112142367787724504816022439347224050727801411479242138247628589978090914777938038142665313243590641450982471317439518143834997267997067767193319842431400768454061419387693398431314534289861729706918026309679151393844174009007145063462379424371536998496534553627023641688951980927614117180377094179763812226777849090867551189099732455983433792547377283329148293733974656038992408024647396590925129286218226014951093264149265430856973647903400701674589390034604720143047033585499853714668770159115202038918629082791913588794633823524714230659489920046942988269399421595459097845973616584435841528707440501567590169419782189804597764369153700547770759210210820888330187979736819886752179440204571265623219281910525733704346870610621752743701916970769084157541430247018464117437404060209449249166327131802203330093705824115722459416073244585724330696342425551310942577751049911749111817182975206333695424340194511489341413285398149377908026540289453110091877937905096140682467245697268192260203848769772462081159403369873611742935161689407962606089052638462872282716159969912896055722096412593143489006681639867549920492346183464210512918917042649105230713551990229964818912243529245310399003120259374364233499718440014401383052131828551412849089239923322380569279777139640331745132077228370869602488036450242015346307314740106945570259730384073000666177840620240436965179720334273522878541141794684285090264224855898004503458602221055214684696361041313919256141958344879495473038308854955565581830915847269347565106798739844794707697341394684259180807003551525129118855439458957838615881126727300517927026109485056918195982871616770198979133565156267344801910321491519511042715293931917607733693902027553794784518500196777530366157273318622125810004901190949097948015978713158620298809073947918577854601954292394111364830835382553787639681697418250524935100129243809333776476673811296232281973026453835231346280883220933165549725981758331228183232264527152479248312206563259847856553371927199763423093653431402001156451373039002957839789635206104575050092328647089641125991279698260469832599761074840651688241078983761025521631351300786281231556525801125996925628976106854937245522087284613653197996124768955968144631462128956849318466960610667410173730421206778339045634886599593579891147806446033350796937260599692638898275371195335218782523183632914391363984677612428409260820210587399474445604477299796739142146514765420054759555700723625219099950119197676477949113205199964220877329366934070651407563587570694675678703770701595340315688589500234014092796045175107642065417608324718708892774805288722415476707706995308543552802027568785371909829200453345148129776607350003053092339148252392736824623786042102365353324734586748298328297320239671725477879915453508249753790692565175191690649904591053495207067929651404871027279299354543214545137023910648140842368866378161443376559246331481075487309816232744114694292146247076784093840879822041028341772230191715150099833400875014524468537143420375210256285631744486407877389333317861287024450995446780652800334477337241792645363840679396287319809012591981619073030868551036205052543708307911856421771899048326982652799121239827033990678157225751867016884827465465594751932631679540778272680880008810932838498847982114731417333343192588678823849667465816839587852169714438901283514472531681842026250391668800565398273863389386204717995813076401690734128644757230784781058180861249241787782932577575707404574889903765413203305891582592609442583464200468672953797152706995240340659841110612207202907552114591641626567343775400688319805575133559562547600412793797981244725083607072036058131158670224254588530070103256332976072741637082365918995529070697229416070525593535789270161963391733838068581898186467483368160202123688013276756561645278466043630552984605046863398930572552435795921971747709223927018896867104854827281326886398223786809488225898744842728312616121765888970991104396516566765984846584765871797622533150383595289493720372008650477268840946270267216687635338898787341636017464720827795972328638442422065501002984797053071735755767782683315009490669908987528410623415419636327844109203393809206924529288870441293826665362986751343353231770599056524258326400973615926940109539868285303570742164459879100686298454671848514854107266128188729643357289081957315176647263948800777252903972051767137423639938779145259946288994897130606578547108883673124205623103654759224071852245810326143499462640951755095907655193855211969310196217349753995674303237236506548661687909430658694412740335114142316056268829606043185190798020718648106907757968109581396820938509195483361314123127707830655224001833011619789418753476746378288909712868648807471408794638268406391892933933698914024842442999250438572670703638481856392161990869316347975342440465028932612924305010310671422435341042878689629957805930195180141182675628420544814186071330263881327160869518419581455492714759080382255875842998876164488871835753684313661208138272888666394145864412129111377999742902109821757781826476396465946025031636543703478584444466833280132964057874514275611179823073654482022342004187404107276490858904620685659727887989044249752938191735306287829155465070570310057635063805514154610838691526117070055130183462053543506024299997428814580331776613415230512538062795980664298384256557111822833184989451196429187481935616276361066438421599512332052520458229618549196176639536558720929113352964591506123795475680769384173812427455046617195665962452116900887161768297027884528776242012539762042207796977486035835688066333664552523893708880669458611793450971845216001183127281357787408147362922027159668953159811664234517839253930712356984188698852688368537327437612940158266292802557110272942742894883957051531783618897097439224396519451670282002679814077355821042278445099398122161747458920774225971735838835718527735263867779602587125255212075821898411455511473993032454572579332759834470041159365169577401512475374024308313518773137541041636818431100330391092330170840217469311400300352324934575053067286384648935966552894234472815426103483316785987601607407080272835771784469959484894214777054430381227715806656666591480562373872052927305533476357889986712441738982834139366191706926731166273375765560582886475872764391424784580831641548101880130114511070988880386108542911840363876804208692458898739574017850213198135947042289475525674430690190708512926748516341530258812348143176470795731137921844027322721136659936669886471336079663930693236698699068412425446575644319806968189417822648629694243337677337166335509616986413851423894305107959472090630365862537841678216181748151960585844137470463522993227002247006476250012313931185643162723411597698037025500404959970340461391633108061853343734567769646812705195032440197577079446897401594060351305185426413468614005922794015320273870758247547663012772313186296463769912405229580103866094195160959958300052690394232701357097610668040061136664425766682683620352760293091361072544383298136270797443718148036711037699226156878910927402469465929654352847800697792840222857795917177826950705266145597320230040068004179005085131777180260466839826164487372809826112770145289790971366108899827089891713248115273221201505427494482672500064645661196484012238180018401137378279894288478442000873435971660191132913349114399529011605417764941401024056884768690936875283195187949767282584980813096138587637296438737549713046203282468170376048231905004506536930076636932279834514294256654323203767014000708141626667963183293037242331153354841812223560491578435350477052167679072522565258105733153665246167750302857082192820970203978911816962440195566439963642989610736146555170399784386427239616967368149599581153691226482477711483612390768368258772630727541642861171965605691212602174638338926444888035880762790004902520147464108351973563075426742872858075162930707164188060296448370007984101041979791784872395498644907984704763491575378570589831110387917284642947361955515567482600913213157584580943553658454022655777464580557407689256029753594842535523745964174339269336316047711491938386930257786725158478337316536145177983113258803548522008450801988722269007576926322945570900271164445299039615129858233242376116104511141569782550479176939040091886809358575350586108894961906944986083885160661325000202093525311520342525562248609960039449286238963508640584727266264127397021509828007627308136966840386021364756568825687027959701887376420432788484576720237191708430147705952345558749223022279531705235334431174170444643260390824489238797465271503346014826291396896810926032059673386709557113320013338837683262414837179996835126693326721591597718579464047029630027160632041993509252468538138397584439158351062698164755611955196086143290026007136272351711898063736717628894954101302942792240655632928100456108966694567435416942526473375167190294780246888106580612815266556803569555775646964234345588959723084743722286791970263001623381966894988681293356323047035107368267384463706798067983033969932486484597685159030361345877113030980701689952561919527186816432457372856635071155782363907176899720295078662618388267858632028566235733661048569347804859817021130455628243510274699822049049887494320707031894886788609710011906590396737341310685586594448750689438280311340204985082958760725994876146772627846873073140323276169223036361320093884187594443469921624091153078665995370115466202472671527127126929787209018042748926294169874120951678113920254332898520754519187602039841855583243588354571436308395779530815180436892232512336737282431450381425665404456694674488131512783742833314260385805041216693375034446399973096946111312704227854865356237498151059370623493656937621935584391081084660336627399737644072509624815272904970976724146155875468461435748423197283878539348920281890916669316834175749183380324549307378445051895336312190091956212018771724780754347039517070141817946829099460968440744375931029238527459300287382776640388632542005302579376682204107545399961831254774667407375327117077993081071662297584834040867961049694727331383624049100682958236659981987457607926632381836212509028423045801232704084077730698343268766365329583146573734042233592617421094923728689152873519474853505860225513715168045392816202139310290232524082597292571740764862736568488142036154984467944288535708140664887602572514468601619313173287902663451756368400010207011915376731829519739134372637839462103797227732743157142764817100083713145041784542566275077791480919994175677616150218844820571183387446325565094711486527109505739946277067571379787897897328200681142554215976163971544160777090980584327515204595576447533562868829587720353866890167998130396338906306668100690196044835815415420534934921942775166212804268608813768243516635020791221749520082527798496570329497649017693480971138488421941230953757059150294287465473788441902346743894389399666597344811962352858441698617103934016121672913155969551859631396187969366582625339636084561824942971045758676278576860380657354164971065453106330081744139825486266180819847636896392780031598341363246289506964506999446323872999235130198384921371779107246729080631396560724715984539192740714626655436849461657893644507550539318475981481865201327329180715559722172090980457712399575751323554655297926176966322177599862881566571737951887938847812483600646578389036740303465068759238650641946841726252050677924568675452213443916359404613003912570290028990758301999420203021000397204756727535297381318292367358553796801060331505111986523216526662446975814642282817665539938892374598038274321512148242639785691935514730637343848046660617483400566602860976875302899183476567810487963631366017029360530625887729784802576958247947791386526786868691686023077037896237255703012501194823328270940742954443194241696470766322142820977936725653881683734601380390327432467485682612134143841841671932903995081278906947220646468954298184959259377099863168829351748790898098150126233495853318662414404373765983319278165140158456945954263451765340110267425174602642249337044532265012212641850850537348394790435681263403938067210550069610524708216256570957741848580837540664660200891309182138604903418033226587619682298407558881370329862475542004466214763862889875153753139388979901742236690718003964967698798258893684477604210169412977911288876227206600970517231583552253539972217326485922515083120292916045356997147200037959049885322028260119062361550984431247266660738986756488412519101643366147773978296147436771196272986572383849516675534169866858933086288857489805918970579354570140667520952073065581655663234970640267808660969322148186434979963880802628235736119998488744852581516062890417266551241477633678385314496681084336336059162565138577535468809423126661470829504742750944816417262720995740977650806709373931453822348047661619607915586688166020387367125624578891298419847019032210295568687461918689188445937008359097393615582467076518481101469929496996418349400638233650315450107294075152474050109901742429984826389582347222291144112754448947674784515517189117817427399216619805306045632021467189508642414851613794312883132893096251121308522914979280120163685668589588486477159778021833836641574787807484438233004173371398887590083277519619614064286456737405034883435146347111502831803538567482483325681477839313321606650770728724536951455509731082587777270830048459988980085272075380703179025362425220512328249617506095341024336912125431398192682252245669433397692454891322133836199307672806503403698173370586955320681090864487572711101212880292739152889063754019906360678327697568327620915801283578439130129879424414705501809440852279927147890816960949827038274493110006972966601758296021384218582738624152400353369463202856021814133740784064875396218129037931998094811697730043022147828118609760158000301988000979811057885127309876828576944114300543806323623010173472490730545177224918030581655837384280234788768335288429595814741533520508989911385490051922020241059317216074838373001220070170495512108647862123608667260028310824988681400959311455954536060021762259653735475698872783897148703539572019329442420710660854911368170865826038613928343287514347806004305392533687678984876187265285275432118000350196516313935846624251281970688286614213124984326878434499770426043275921060792023562202431514337569558660593395852201774894249022832640031972756932425096802200972015080683130581303582668373367628961983145497056091994577928434360651046209012679813074770578439633623597368664622928932028960119824299079528669882356207522447336808063210884606781135168749764844450410911970336707531261880454464001425755029254793614343099324759111634975423684850043756549326668239249061622047623739395283542483346982572238601973699741883592484476393384695936031280254039565625409375998730457675531532039990784616101521658992181408474475471084694457849567100034336209686739032258324790511456228396196437903725228169910336647074459545552315347890124537888709421572899562281455477554755633095667803359505059087107120687191220802519959694084648142013487432214239216060322457911504746074989627880252375618667284719458409825446187242218617397693879081927743667951453244680500614856481476223704253964898868278995794889351782621441775535100679641982172070994102647942596924436672905191909088176295494834540836843618841657524787548846616905489644356528373794453939843943528708906489537551565871600404676052531359849706057964810186640894691250574232576749670289155008548533210134598228517164634323065786034908039657239770505700416229342746174187191977230624178311652119327551543747400005055565474404192599532608846625777257149844507289887362963419453995112259904913658429165598002176678595316337886871320287327190045155395348903156390766603085181072393967240274363699106667318158309695054308381760798502021387065428749956942847782929212091648516321704773012692369806955828246945081545947091408878297312867675998894451557374293814174280066184845984504558660153887510037328933838245751371740148251392230748909847179517669724106991058706013119586061930923901110676712979937279050845056654981138725893652518066369207700519890796642224219928680945436981959052427190374112021020458854332600150754776243246659906747856185901923317331102925329425435098919723938754839381236184581416232153384656599993814894559980272926389280181232868562215442049148432961933071339674971090383285292882029975214354367968442602492009127113647287519491353203284627621677154599397299465559087185329653248326847718996734635815441773554860175890001119095009410781288425735590020249044153834145320431829795523645310577299213160011098778764902795764155142162564692863288342993529405446953759062406787923289570868568713880948099296468703004459716850988799404810664800662071813091171514055261536314939990899637930901253627171688651312724982210896755892581960455266248935465448604593935063669233383745518317098180704427698935131543210739819968823833699589685317729799290272027123392527633679605361500075943960698096924129738712573602647820433237563434779942764794198295642052631270129558434011205814674009378719279016016347612532464175646594546015374550652184633628291342657767087377820994691571541644684625097612291249204601692336818729120471810744441993592476459503711746792755933128281814661510089596934222295934798390472440489378598669740206155199013097488948511677177722576010158864971351947646976356650699471083479714699888639109393397331284033164877901838947835308474695924553044582694429659333714454682085959910088539937834931476716312136269807242898554788966343034024706172402714996700247090272644041215520843219786122941751701952846337343089769028675299502830840398159024622279739576932621672855087480382834403134091649048492903315008434789603420291893548322181201643049456918030971387247531775892966063939630428863416500413542009759818380831675905620704511140198099080677123730922519248341175194063990820852514597929456024180139836145743899193206408189763027691497633421063584136050224924666020884460326480976519110698255582248220373404033279006991436888422475091924093935422802023561243299940256616102038982138855741973049586921582678698085290135059402336165228322520690261207515706967638565735164353489723374361164967098259800097094935611224578472455442163114955458196828079564810458138367774222348730285126358296839529459083942203775312282666504791066111226359343611120207003873891646661375743015044985996530994210706841583207874878705192006875453555226087351528951701761445792839770107104984627754669885672512311997015657493692389269831958576467622423039107505493507873420945666882729930682535928419659393807764128503396541495386210313137884273564585208189888655966174675876818080367725757696467922593694866035276165551725119506121057876592746364302614593209194543528372718080866225416079031463326611853538354118626436856242515406896132766406244134460554760533528210122189070564736239132012965036027410417862908781480109050403942008964671732564202333516915711350753639272003363882038043655245455890288117949668962984206330618587189464186611493864833435618027384250036234818395972233712850305073555425882168510990712251539058874191764735398017749439365804062399389172416440134955322603886304356677009982328595025472921961361845591969745609742738373177590724513251463716296543108212802221632063095203966091518779754011416945475279592359207233891645171487865268693621959369496519160491224190727455700676595340596885995202077117815620266942991078210700813795640080998406119913945553533950714491888169078026323971501387240917882373975155676755014915809013883424553587924828494225269119924671299521850563574158806938187183043075934108789104477280591060515615752158078581599065601825320702563494958116926021661723944598364451068670248961565797484058134565681895707602660776505488921367472755696801732514098090946704059263552446736555127597129165668384233288336860651893681483255993109578096539658522605548730753355580860681122155661460388588617818627725757575464046623017042311169406129863333581545215605185164567556914849275937879432239468540753060439838756552912870533014498539027184008208948095892246077587199675422925936391266769458924755773514653567731745266694990456549225603632508290960297211258872589002248364583106990000068322315565846317437138719942288195492750184270794727168082843517001865380905807114154989268659832443761821343080847850033524352719016789049948040948614666788002103624952374557309218903262503249699164986371428786283515610356733201828662817905148934849100229541608340167443216436463159713868588360101134405088562462572303675153956149239698906506279755667667364165489334695130448602413569982565533449506022978342430837592064535352011754278325561154400328591826141025890904190376906552456719602525463256077656283065037022992024320896934716753626491652880778436230977603751818357621843650992706945649940662523729524247806950225363621342733009042562728878781179854658006400873124845535071384417112531564458548917242080421543405439680045615016974413875945406100870632639921436666329072222906905213475001801325619397304600892809682262422103376440309620419834680579445447238120659184572531717302281792069770172586779918006876927083563675610607575415256791581082033378837718652239234647899829727470235081583096084203867634674292973187023480678944284100224040678952637200972238960842094600959038438488627489128318990438605445519208199066758976725131589399758556056752569488909721053522692595389933690648578114751469730069327914841497900345106149419527930083206729284177123846966849343041181052846935010148273474647384659641841587795394192509366265460446554475390778083055757996613670372943729254545098855894899688173482958706177432292102116836474372369969990397251035008530276891302331785609993959476180284946705647381248330816685559710464225986724071551304508243124412818346582826251075744891789736841599057716852200368985568634305643464367579054438106109057175269475768167627021226983327803919365208501423618696554010186620453006529023837623126034315751334237899082393230036597093910487487244196819800126912315708374991952605605510597729262317108079487186082242195616830187315368203309161431537983717551994541480202282354222008715284047147409840638737239900077880269837738604075464012608837844107211424413976942702627323529113599377123392672747939657853568766723233347719297280743581622465605027699631349339337927584094659607838725020889725057159613161544441310886788974920307556368095295791191513764657042905446904900869541870100326625647628287216233881232972363071311752535336719922448795119637506630274174310623074116894771014400534570436685899144949550354931093749698935119945442812716208238525477813030993323275122271072026132598643441332568035853542062980183062202897626969269192971351220194390919423229672485252993978786337000046447747863440655545083506115589687059217720254512216744563436272477393542715438535012908440663439163621959044416064849655320590886162629751891825255010820044998519270667055093809239484523797101001978077277287975854359900947881034476674389641396389427215341677279550112236203135043005856105914486347099875235729040620700853007604324429828845088196662954762847715128879371290201254896851129198445368859644926707829429739859636667127632090742927503101677750518174078006968070608852197316718889870182178544937217828470223348270870012584745068872938302915626725783463005665001451782350945865283016362170818255463938350554703325627540552290356780921853178403357940676246652411773231246465771122912914053525301116521217931946593317889743119495992837762030582516069330561119822825836192249781112670394700951754167022557800901770051531008257386009073386919551689590538577922933608019758784138820898418556200532187567565365986856786030559634489658001988420086663347844718180160749689179389650427085328067368453652338873955485224838932447426960561061632911908165512119640744216839787891552764167411550899244225057382368414600163272155684340915238349701260985980995467539498885658207286231097506988413323874598027735054707322563688075636048845202691368313981498343273836328765458176279155495429493203957046112357861552500235719356813764169326532519122701529250526227716794688469055809505141104025461726763010057232937827705740711348180397796554276499306831139379742681263988529898199047217999728792590546671127904521442587326263596934142711589708750837776716424589851554602036302768564589124886063643031539069031769691900986292083298937246022699788863620416082776293377202884100284255308949849230195132231538494103098736250967460232262515600756460047738500679219185421977206082582296055858898530099957780173989956866267932354618193007256265815591103366794740622819328882610425690605075326339226058552834196978274740913768234794109055067610200434088739511523272225778154593953560319390269064968497641243180460171674112915857788841314911485154468413745939271473673299892633700624067628151179788639248798971910497735202482359667438202786747158088286851345707893469601493324405983701009292264300599594344006329880418605506328054871451316478128693133570378124233003129164119243952047378241723649854303842260639711645733963890637642929972479717316624433630030750918906462743434718710510812715870973729143571809020762882001146579471196626441340576556910140441647477439063578117205608609718424257000261488009996757339098590585511215938883924631508603565789224311370743559084580908240500198871909323224532450186487502075212944193454951529802949606192772667553163328121955536194383140355547134314015702052497056162754706842308658655659814577042754271607349074560512932039710674102260345134133003919737398689579915255160916275840305355783022691647811159409950414529659427329145734428659038127463002873551639354960262365494900006955348661240728384714665806415852224525890042656978506203712605339987556749731057692958011079613747926123159336356967335926312909138733618960097411839196885076673898518842312340304511833918218598030037538994841720809649643479432011627327903355007882665350954672774643941615609557840689246817968487295783631229391025327643793628184294219975130686176519566806301110193969945520355257715621694601603347745859658395070657996199705350547195517393651793500374267589719868130638904632504758922797884441516994504240694968306700095047000252940583064389533544536279672469592985258582760370853519182364218540393196924391114113064787344789251775473315842039449088463742673228214712010490058989243010948096051033575143130939849655008563176381081511453109288247092624010853982041641477508997261742950036318814287895659902462298545339757672204799767658592775598092044114002142489163550554323493233784372786614388922430154634892948528649934103416813507776786798369269510007681717079067774626067647100508763411331919508735976598396937459491912787983030218636158922121567042909020466761213017042693932994837531263020640724006927123523808656682124182445109929399116061079681440411466235396371139395954787343304937763435760448450095868028175514882913301299365273452700858023724661809144685813105656651693743779365958602344171019006045181098861000178321484438268675631107685227117725842250495209155426609616492656984966883287246032189292293702489641847676744331183409818731617951551779590592453555723750782512197241745625185744591180840910708984330442618216722268956316593731911230424730172068877800621404712508200247164967772009802015281768724564690562808677767052214415919224165894741191098571643360421422474663670267605426472255806848887111755368729165727448481750149796862166144957061957803669312331742857647622148450096335914233637599519410310467745077618707935900117655082903476433232827175122972356657211773631970038971814758803389993265700593428336803960602138342043828935278132744301148732905113347782668218761835386319944502551973456634481777537656981334390330515676830720810528867390394370400737826326675692144490864297995601695611431129348950868844708157369005507701715434631896807729768984955179629642293704343248181537011394303872210779937743751467914914459799458226754508892612552685535143951428663137775600828543483539462800650910037694516675005969985691999736052506990482921575843986573282096864500469102481450542178527035456163524151365748813415681388648501152039645446443886377198436748655038719203546016650550007848190035537322909242885409819412624376565531735114287607049867229344616379859593148898391166743331851297708566565743115009511120649903312642155716147990939662956687384805807852490898612546912669223091707675493272252473076809926667210545385044618302403227235059893808775397755523538702061520223129918876612483777045323550296062466237298368848586287386812347220073829301371205476417435275471694304592014243065818620035223269797275669712912205819343393688584372090787197627160989751207655888137119775589568751372282851577971115806716733548353439836443793996507243081488811689834803754998799552472381194841297757126736739934391563004068765102908260943239391179968824607869038470073575283131001090618096885806454693426404663399666000243377621128055852898066597876811025690778875450674832355301892427198201945353083151225594255345741538921475928576143726500825497167312359269027258684380756097413917078415015738459886334394507092016487001123913753011965513412161235950778992977150185895565954512568388592655323621478968407461858916934896641614709450353928997455600256734014847050294285068094891531491741600900914775067775532097121646881135299971834724234621134807032990135966261123700128969443559073773280196632885985962564843906724443080093421699184435499052199166802663469931401309303959368527497086814690695434457804598011514384103775708178397336792904844664947458169925477680497363008636728781805369451672407319360873336208510055543299079244194861540988138111819830605356296258531041899830748908635617768861189401991099196855759710533912938273325246193652370673993670949834260053389817339604596602632930959039487150104512618752179862530845332923613255490439782410619572686100251652032427751673522340121363085921319346855814573183848884338932997666041580902398686202186165486934107289650629783995309979753534793871192874471902945905218954595665936544667021762501338142180727931739549424496810725795012018277626951806371760878824881758146492490942917715717211500957668847869650645740800705513813765980898992281176208215272653009214225772799631546939388434474642517583163453295409705692060040329772265328692112399876130050142233681480498388721903857456056745906951187606195177993533353659505220519219371563585039639587875437318376013190341057540808515926677866150105999774021389781450426481950824852869102143868412913087772690244189367011682569841517080515130451889312691613408176159918872543522775663964380272413921946826644658969082927454142820887474818660451649005105242342944788872576336146528455745215939560441897544521504294492956465770638796236380649158833058350714180030864321493427369072019174809382507217147215020236800243907297134295912418213033621852300627327640459561709665584734327453212924453105771681061669793714654763463068563665961036355110175644225922351818954879396307062549804384742148059505282437822075917836881253611535462942686527387017407951701668059557690567121998917593642648743381133485418555760069060016934720396632944206295991013594789854379581646663741570592290213088022564944576622988347204164231847894870220015845979851824957799953566948015541000719267090912015750456082408020587447375397889017459008296801404726996940138925182441694134544134737629172498057070131560874467994019080808675408262163880170945563363167196163993901910525088086529504634212911248948111977978843391798707731821843980258588164953808802396165974140390272961881671649707774203612545494157036603413450023362190826466237497499753753024723932474818959375501573667049434239001755658653402509345475089535340725500227108083537136421451599534793490899939282212740608941190661456060078037626557318656997535342895329559982537558877572701109572192545095391348599948386530766708056387891364366207771270462765501469523431461001379130479853862106111625800901003848762879303168025923496968555144486299551828350970597469915630781484489445792027791607426265298339261533425303393945767183135555666741710660747624610678065393841997804009480953888401788536859847603478232076521130138514909632654325583652991670229999140159437276195055643309045145056427113408339619093492619452213815020086258943418410250986428040990138702557453255405759650878358705870716607397651728517056479736480850499211107691195383012495437125079278570558175495415451663528022611074595914767392869866034210693026042346538918272795789682450042866615400639574254718659772162521284165786733074945989565528271433382443711596481681801345997821748247394035994623960463419198211549512656297260241549429422846486005920454205560466077758759894856068541186144669625262706878146181854988739014857461009077817800822345052410739991589379363688112866038786976744815350297412919242978971462225692704653050452039252100031443503406846836675463019880313122807239245813534610482995911582623350646473162169330855742635889308382627061534734777673246146124727628481036770468844828115945245416806637743944631344446731908107799033658491806097140645589243197344008827320458362879754953322288912359654195693305269785317915161892767652977309388962404667169587076419931758712734591680752803731410948864524872652779856974861227872810327075953189285512755893260894081424070077874863714528848317619829018093854814313959473024454348484597036928621810487574400729728246028144679255015832830092697844512698196289326821084166137783676329336263147268174277576687064583633934529154601492607392676836550293294749030140922727216140169920333835382138093013086693711598970252582244634816232771082384571765292390917004811780267383846734346060674730870011684168054802225641729447013473777758737378717303617185006709671029228580874813397125556018854018944798404227338478046394664248030840159101280455365710579137502689734967268529404073474906156302787424673660836829964500153361216727785603488395947993263543909313341733725431409462839034919388346924277304454175349239329067532624829351936470036428308194197442253344354999951393001411531604837530348608764105256159909559510956518564114668087980412915671996652129076868398895445357522231395604371117898823037515028232092267836152182604653909902699636319368836300284636740996785223846243603429697201762532634723870041843319355463563034226208821498581954965234939393261829320782801556291744629690834711164099103783830960166006156008924093619418463101232884318802961646707086933506939821702983267558204904349377226971816039670477081458462755670269663887404931353542399357425862098232651648729881505617051581077799206672523862878986079575797776626150099998035838806348866322990894983108832237700811907603623984908659429830237518386125419114428790125803012508206396950959647666688040746711861815557219444131051868416210779898227656663520183459886385773443815350403888596134829588721261544926534559073608098058963303656862289847910391205371189224292374544393713373189524571123087137080202544578058818520086702712646768426913932071010219870789103877449367809810488123079692388371798183018640731514242969778316190795663538971503063194351654778246066535574245876537925614945324971179851955307497871127879168374338806623673806612720015912044846293238656934929543952179737189470968581562704070829153356451280008551062966603871830756041129638092086909544521205879647247213094101416798848919060352343985846844361782657073677203604260006077454731125451575491157875729260367512724686557017537704106106450226234789117639196581665846862773079778354639165219977039166348678418956028746876124817939485097221983869288970268120125324428102105086507327579759705498683763193684052899520111092459908442109191337424304289184616866489300870741260256163477256174696330071772832901988753910847138059412693394556071407684472466721916413682269859829133849716537115151391889692543447745358853166670558206768083325112420776063592478318312474043103189109763581729486620880918100779859598466048299362410563960343769659722356673773617211019837061511483303176798480319143399396462654233767461962962942723652273654104250233294406192567322128794423989017658273976911593149073580896549779358449086983899808426183709198819471339815135511946145440038959478395119957960314190170312553935425027082548951619273074424701525507070794602887441191024600098449053987031346179363733556741485860553248550234675463785549060236932742330514198401942834684424450487203519904558041680863025414364587303260221253061900125424158480146221009512420530693299149178989381217631198775426532285544629203508504066249019462828660032554825474442731887803193071352571564676329711884355131889161589555003004406087119150086597588175087132427059181786041938305566449376069910112901487111288378261751510421297633340813174556748355043386512959034332263991274769921176740895362941814408421276912865465538935363668818409000509261042053262951595731056049724588834108575416480208040120124358419149253816184205011094800755924465145113226341885763876754004117781695240873075092199369378298685038764357518552782365080451360442585444500552840193666933609259765452153970595044046713662987029225469317878459719181758727308950851732404480557508586933829025539754927841996571742879491130775314813098181431570717151586804132029150470293306274818676297620421668885237895359777102158945962077242016704844330761924879096336525250463954926606143615687239919793552676647712400426115761621793340080005138249201270698596070309247337205253806298857290833701518952083560318495252836082827344721614598835709703444639220519572851954772398845867954570538733881285587779419598719234813525628275714159145535720053540674886583447910628624426934551380800698484700854811130839145070227471128561439977170116179918931918138670233903024173443597956026794470147507017315980039690561342996722640511050199217011347191310852552492611655495689105587770943727945613361785582560178250696239911161155016658919749404076169326042044192906527097968958172152687575758432641767163038299998697612849106589873848790812395568132263508071249051352423698559482094350626199097929299969358213563924228839167286243818325829264634746469356855853876863020644050470083542217725586502849244878048432057949717901344349997011491653117920977819836806258063650749064032575197129418978697795096818587245756095425024914999863074046865381874307465449959591234373457609409486645709243690154784638288096175204287574445872324390423269215720755195548739731924257785035913570477715954178009507535278790122080229427405404631179505291181657985279807697360157960362056489966051297081536233726065621998538626930322362099721797141901384551462677516424754008295925932485084216190136589813262195262156429797794645340768562928991186583579895249347601705627412396228178717109084718393997778177622080378412143562471965368876769510746064222117046888391494413433380402437475953059431590073280854195838183751254166675329696315844596378600653503928344838534268896819618307401744641325481329185955665321789098674734188574508847127197686528272188984145234267118228988065849866199937700346415662577552132543926005910087697148382053702291032547623436640697242636793865313399705050184797714505671505695115336131268836305824981150293023439089312352214114776222220545154647270921617902935627667213797824601986802541285548034886767409348172336490224110831488621364131485815253415354348995168765943569170466076305821071458352336645226120620143822818421058297021604520751818578622120769832026200582992797964903284593723349520093770085203610712628703527335686540931240906040351643279374471222339743547715722808251829686508342443363088815738642618747348709365176783910313708387532920282134629423670651933869863079064163400977994136844602850119358250918470121804747529657847222126968617580249965570624403668855814096146114195915648249876765203270548723024957308128023571662244529806421715719475600100237371294645712869393490459211493847752874487944144005519448583762619056111748116227972096946623005911084258839475425215145151574470454133274148000706278596361930529577021625654158508098185931003064647821894996894665065090747666197325337019895390845260783368958739890962601255136609794275984005325072401011232912302203465687708056791807205801380962819886328079511684622127534800457150599120956644806228981628013934188539784997802940202835531122900282504801861793635368708566350446866586507872676277554088390784315312113523873001673209730323108545554776029989227629240527915786524344816282780665546025000126261586362054544798896168975746541911127704968054167382621523047509447756996030163886425350463433822426293751707339225412859647872783375655376326975368127668569704534828949026215038344295052644245144955120004175175103619926592540711406052461192535930240758754802622854446808974264952779399973440042694200694137088821503204856031425841734982861328067722291027295207377816303846403844429706380078376266874662140169494453864782025247184524424477176119628637475199679930944657510554011017752928882721934826741615656178030128515241817379528105125747586563404934964827843744180764963498030529974239912067360583328431729011973448436725199144968962253476444182479092356579792872466377360736300342892490148567212606763237263877414400481633397952633106986426322431198220829668080172963906807231278588175470132432157968409595219406046888224573522021076838581786740091300238770418016392485879055376062848116712674780954186932453194169447939101242338399783421522533295061347299037646995808817911254846386180723519439326302257438882400681798022553909053207630196663852571392629797735830766172839987349746271842463268581358396799983507679481102577212648511076273914817865629444346148793828218747182968453944132775591860636892996659008472812980773822645692989311396345847794182766076457346401668747138928598300845644755537000354924405203154609038995485786331105863819901644118351838127325430552266005934539743990336708643357219288562309051765865828194580747995560934870681635858981088140859864179530474304893073725004618078138741020475433660802649300301345251898029817044776746922893654088361415859152771198200664365090022133864754558826949263346475213088147626873823563069242351505444051927488303541333839368415709732779262652979067397295250287090375249839170087769401614820694821536908708930101609959835680352364965699867265484862432681252499036532222161802204664356231123869544474302556699685741109293201388846482779975374793877626781019042152970912555677371480092920339822933733507686519506782532378509142851732524046583291427651035817023969024048031355487770757371688052851732747298751282536234220957348075325115935057464895556281344264650320903362102938755393218061316600225557943919284203269542547882746534418480561821584499856297112669014609784294258500628386883907115724069705994844069958004772730251675430805157076134766910229181728549514672881296868268129666159956132690039021505450258888511983832919640136561658921654276196722395880640812624273977272735383723299119210497602566084279634371170316677916887648363716183728643312827427248730809020469968513730275829188243913486909544183831753901630200684533706918691351319359484598324024695289146561401478054425029339468987528307584961626310350382701086141803429301047255767449099790457390285678992208470083995136152590163419967039928683955711778431837524774414659244500634723712033053975517991005463392410829744963961814649838352325210838417639195623748994330810319252153037224402006790507098584048729736289607455934649905684880767708118351881554625529974555063779827091839045579864253119409573887532609800531755081086814693098797425937773245024834466750888298028364617414368771151387288657286705543184296417064393885191659137091179599902224346198741553797031664857546007423831822708981462765453417018896191401578416533947185121987181309570494642144586727914654623147949431437461529793401398159012281407800868251843367462194910548070347033501223794423713906058601833466667719301593640147460020880148550307013405507791468463951744058708749369065988638109452742518596666526575965322632187647008537733144664590978626682785734965607947726177811154760185196868196473824533020392792591929573441004347677991403393024610892489114193616773655883956638998931210135895386341532403709599666714632407485151499749519255126739873042394321613648907902872887107980986666532460049930464941764137399379878561013948721635409742581826553165453431415241353960143250851746028778180108333159691830931325199272450980671649395334888104466124307355445196891783627545520759390975043491319349281191182239882143081825277145050889778959453679587403121699965323989759082366162574518107154461125178599702618284507880884343402990178150522713355331609154586678462653740721319253166101716438115991299250830712771819141164280628764138398177588626147499375458039168206584796177002287551129673762964658637838585615307951597316476363033446396495543834333454506665172376700708524412941448679378018487926256429752056337288016870289580625966427752353674293581396371560064864334852011000520794109823258034286677812913330739126698891264905679869898699406041585639857169533523725170216957424343419892219752428932599799796617506257389260603005951869953431626751213661702632253372956461159631204705104210468428369627169152064824684987816762700785143741555016455637689485304273704705084840331643270607101694730122962363935128920543179627495813068957424947906911940880399890374898901457071831413037049511294151379964418049651248154898237513904287101647607088331897014859325655585660542353202720758629794548457556512458151024940965840137710284465361289466880767497663317221987091516952010873664679147993814896397435832457806754664255881199408192590697361851519420657270830248476124236248974768787763995926585203411492253678322557629285701714978028696178565874892443506866029895455563697400986977811207187961021982099652176746985732912665218644082791501256305606919584885663544920387708510640608006133092070112286485399778720358231030057143885407305084009527098489419017498364070445589625767310078368527899364855805348216897716924751641125507414183615258166565646663865466990885561972900854992200549036566292260672090170921233815620866418414352958665865872969154617867872225949604247985159003987174152743496384613622686321427958081263187443785782538314458013841944472567083580491152774909203614619658351185343376836357327724142899024830999478406266813695699832094637369471914405930854085757377125009375081361721192471765958997047656748752822279283360341782480671297043954771517796082314321003735851458847594774686133673592788375074574366781524238761842567718058829924157697009911741347199928648900758888906588859914349908631806271345476821003236437162832132196867711618199731197033982754822062975158190516540228376355838476803024925604233845923297644371858624529883572258688301221490619113013691079020193957512301591139225425839243495895358102697481468487583919198268864268138803678180572339325831903294755650191514132508806301851583767755590530819504462874236002390230624937341389157217194252328223206935207786836662805974549396524302274929232659004596302581432763915828625919974292156110261175739927382845175990643025251904411499249338834799255932133270127287279240926557543942901502054069431814596041124031130072418143081123005943709994373531092635401281440406843628283521682917817538594309464642452371483642680418032033724561654321890750669311393207132222369614458738977499975086517733499775000888646044313390247761709503926409918977487305294491634090050071157071227575259057243964759844443033543018680424915915939278369309277383346282841509470572144395487428521167615999732872477630058035117008198545106651368513867020697688569502722856179925152283924570985559076569883101988403189330280533924857500748018697283368385692889687091922388578279194869394605969627188398149341450423355267448678210916816165918299325730810246188098750157989586535126065565467390634258646341037896338123918173005096911000533666321647997738155802983754967749243429531435937000349822931159247374227054700472145398002434596044339762310032872675204357644847900489584238139545515120698538506380199951014689282773917052145708283171367266718631302266378657238271207123621301709355439156880868954909307350624358925466028260308127051183384158592347483583150154954764100242505882175923874727999708516886454615994364587626428553868153033746013939733191219500210910345115514778506441398301535576027818101549106914820276477349611462289096612918337055950226761379776112530203013421084085971498562341245828796360056652499356785257007952270451735208989686553497766305774716939185959712701968866229745823916324206504375825810438056811871542457540912979106472884503145212556145348520897824841797330329384557944403679704233429561191698424105230363909561577040975152388703216921293675637833869815355722373185094212212947178997594118356214397522251240841800759459011014067846978833502403921961893120114191057425102685254600646119369120012535820761965104861375561462560953163389523304677596318672735774634194377144495546484826803417687990210841872432704886186687267434010597179340769242106479927010199058859593873971650477870637407604924583083036622188146032447299832700732764298472817167938168709569190780124220015030736857876029721055898623350916594792802163553612524383671459203501648423041436184335354877394028346960182638473756426721452932016729790929655417822518888082036286040089845759591568217433532271736512961514276969345487550946130593832802979999066920982368302084395785897870564815946167273480296316994462057184420342199046092306962100235600669218278938577201020491228385718616555828403249859650509240302644355493724589010982222841833147454446590134220977294542862798379742853149234169942013098376340135366093376968511796776349431253952336410569196092956600262203875510026376600136809647822480285603342245253091769141367885106469735122494944091104921875768525923182399171529083715323601628898090910334290433915216367076683433411066265724368386552109673622659789601320959511000419510045410898202865301594134983261490993030325282925848195450635824266205575689259374125771952861628908792232535414335366070999160813205886071400866290010422878995674134189507674828068242005383500453080727697043791140648984987709682674612929231402638738501097158756608466938046663855451962879433727138501184534535877456153122472851338732052975673029143125391855628428692109762903919362960706633034629416074523495140402289410654637737247221132671388853357631973249698860011256383401017340171237100619708439382221268478979128224354615740546597884477238219744725583563527166892567849628138150493942219482943035027581741210012609499219702815426012435402937832236666362015811501423360222717206285783282258620059421239987149709390913600619237165684692172103688237416410587831435067537398038018694169148001674919746474655759396745140073764247677809818725625268830772818528528188867808459106276761096232681920084552057862374619387944394939082123531595861664250523144144227036769079362795582814952816873298592235160812745673755396459245436443750754972257680092472856127552018616269356904753264518962183693750004059317109877101237666364055681465674899209752399864145942706604373896892543821350132958114754696933017918858712180066456689389708205343888003502611890087684048722155595765691100956052527788811640111032355259244929825734980506866157152665412231955589355438119342731868370986561477518476030806922759333041818270027831054760155673412046271630486379438198934119138974299142413057033352262024286560106785154396190789299900458186695597374179148468582982187161969491334944636822178667367916946399839270922802631371175709710963388960891386838955444773227259040860356807390362130029069728985417948958392975628776920503486853189236273926057231772024211905398137280533912175212512390941656012194907737853575940611090458639037571460856942282336785334250548573116895700233203483993525118989376831113199212820839396289222568116373206198946127003201126499296524928450773386819686399658677063430127761655177276855637919102060037828522882303567559435192732547792912248268050970571857177672104959983752192239466336363674186442218150996009044003496268117582062098058399770366139155166491476437889907245356773403401421978282005248888032788204262318885303553344769385769402463122132415250783494594328188997155833313152143802351044497452507989157891506905143659860539711445561210390969373250866815615999829205090829368640151535035641620524983029471135612117581282621754450999432220717963274522297039015804641536401811800345418940164893426375207771753883161913197967537286809959910039443403907908560154235625760191093683178133172373731345224842931777211595783159763595051205032000756216595112433592726842479014180149710976597237474969086600577606431142999196806022298561504545386885799687020394240472554987448532308953389768643742000192351111799102304302660292895194119047358896406781320104863138820724861538762544249131215714502392675899035508172296264284573551769736815558891895663087484454045511538365561206334903520024102613443204950548978466263462438777834996886586010489467049831569947324469739576091137096457705124421808050005192674091720968038626174098595285880713205379964142753334480623797429770034098049332627152094127292862739653347739282577175531540673668272868310610588206637273691577363394763518739674736215113230487104574189017886596508048859839840212775520655846156384479448505721899977530774257089059227561355666683224062595480357513539869282480399065761732853191297575069339535719788526256368193999095328428273313989518275123449391836820981883200652754939141561527738113043847125567136504931530764104083411393242602871950170787645181326441312716034463837965407249074644718897227219262565967618744292216998741869424439308713941641759100542746217841202697735103410485974952068050356737924174971352154207597584666320065665713817391941156646534365702836021154616301634607890728883939058862677397908158217808313124405465312122304499600317526190961770986085613662353209918205362893451101019488647673145865979503225858464033049934535734532609319025893958184791459024391343257839390404116697318492956436758134873234323569918712784948000413918224975369061696445912996092189140380358872678522889092178221338778289966620153102704977988831098913083591446957515203749942271093193356450156237936190663476475485149403126552575381732302680320553135729662439244339188150865968060310571245542033263295748286441894465003777639871174387150196118237470309343128606063257593741556379132730646067688188663711620053932912370177700898990839156450181843078436882209798801511036260838632528665546491703596342004687075713931998980784422741545247403164169485414247817659186283285717746663523230862929687157647600314829146256135733509494274518509234121600001959942817237000631357236446788276791117321891058136409726474959776323588992490514948154556764226404217235267665763616950646330150571398553836741675219199201814641916657823261541012832563940105575903408998840989337646790100762669189283983680018020340345346223788938505720016333347350964665308648656244702580204824274546592292751767805494088167371657632120352058288648917719324172384674894490431535234187043080307078375440126864171833489692542884109031088606719964909230303423449871841350274195493951953908329764085829905328550714003723124933682350664544845701190919911215777820793084146607364019940586446133518223008002772305912145368291448138961992710687923172354051169459682001330970322778257213451790356735595372427568010781882165859814868393165636961155710694478244385629958639803936807924098978436339787940783540954945566764163426322142947206024500337748975347906157806284549556389156788466590968391485898789339804005171950943906089554993753369517998706469696939568623863516994022883466638104505340336345854399689905484162599594061605950167755735902448970858811682927190383909280531354318254903666367678837409917926064189448993640139184664266246468957143117610036511251426261524389889164377545613320525790948077411715750086579712146766163983875347399985189681283322374607233624839716002541032833204527511501112930864926179700294016548663195041435049473462085267368155413469728792649343154985762066220431989524839073085402774602493485729227162618751442611905822142184440746503313036272107084413531095121420790902131247663730388137578955634830114770379169363623533698856170907959172744126763511880264929670708248714721035342397319306860666276269183246399676252560834497925734927770970519224296932781099929343039637574521998351831597975130042698319248123642211449531186984134707172407293148824219607303661408017343427115693834843829515384255846078574908559717075326034631510530140589775994088623692589748082549315082578296826276684113326239982347414543696117520064698343064180947239764860712577145260133736557636205816524113941771860732262766324346724730225270840435889620523535723861857006955685845323028032438264687848684359462177675223184219101190029242215263074843718540200232359158217916474969988506209025364683448035808124128429422228485514651480036752852534405672616281515903299021052436080421256378594178992116253733731029819474749187664410310367392695627317716765049513635820620917207768094830989623117170640170801014650607016247844309545206761905826889863972436453296674086584566317684627115973186286814091136291313677750963530104330795418955852909862950765092218355783262519000989802205323692128369923368397373412724043984902811767475578708207087074834289409832474627730006552172150543730233989950969608394554888699150410855209189542992954209961619344037595508702681944424728024558595592114391114067573454315173996633208527900717207531284595640173986319466891744292642536185032584930879412928210203349440401339016287846562129168512712194634335452160082382564801148410024457626231512282840138537816208745863796179521596434870803009922382689392251488945206354951011704836498965531184211691128413371659763135140961834796500982233889348657073706806876823923665559279803977433779766004786315200124318907328466126851317793741849626010506005297609688936882520262455697284062307423350868740668669782947608059929640721105371233409611581505277926880940256620421421035972949824394042194912946179805890804983295105107380321908782328833955383006621828774780581173393611429932024965217075322433267680233831993466633505271689614407117143014750251212227127457456197534420335042175748839414198479233631698616899875666671797198319852508297029505518478081435982262770238650543152860376707631707382233851656090413017219781543777784391218190080793079912824756246684253847620479281860274604293659738533031359394522648512263862245417048331678525494726833973897396664797072192524986208803876566199347563407175161764531369568225418409997749961026499851467607548558258299809128946151388372270964849195811373538369079151799519113313133259285878537642140978480298715639470206759613268906528533126972724941658740919504137110489764951907575272950264742175163332240300924928474495885262345557234185898381052321881574950636029662554436535968475496111987286382969709581491902266399206502749670923159839507132803795590090513735883293742360771018882813476075545224192446284239098602339770591320217814893588096502656840591518097916708271759156471925367367142190284653334210704557693935486983013238481092416576993580265626131751174742224127691809358062187951733921039609183549267326326002519759196531063020912317308883018601868802510294998602007925688479425904654472368818861937949437803801945595075507108632334802975636454003937775602012960311085163759010043222866613192819472170980618209282336451134817233891949935697283405781978364470294712411511512748298199153021026576921879676106107152409297708598950846745452235700797509293167274529860259926321281726091537154341214047344740940454699638770092695825908355989897500912355993399843719607487224518721930683902797516677810816518113427385357344405958353311618521930389270649777368280765883192934908854620180646642485465857671330768303882978617909110298256818708440196334031086911070897065328830036926343956834612902532602860239774012949051232746680165976805747092758605530092963098297995425614091147993535289727065258344312294153038992596511681892464258803815909989107291849544355771055855250221598007970858173150227521375254155956413677561290190699568491056676050659303124066566815028133631429081390731018250569872521636916895624433206902791551484750384422767027793635701771396042814436674022742469668237014486332210313598802921098718858713240243736539215445010094560613617690978693426861829679124722658777891691788451478833580868339083392506344475658443690180745195149114967659060953965200083837190796955165871379811107915965937998917233290672855212012371031707461583353585039027204207831190913128368710814316295508709593811082687569097257435939460559427196890407283088903052854882364917262908888319607423457917618928510669147290151508401394137581753924652164592735123828112019923124303046367502976145271537868827525452675118696162101902308666167700036225588504983904397487574642169162403403844281476451595877011132811249588123748702599532646088458010512533199151095192514477567416712153659552750595467498586864071423691933237465298437844075613823567741180071209466728369900286413175734028246100926547385360494460814503106244863883226673183545793544147466602551772052865379283261725454064568624390693068294562409292869328622897005784715487098882055061176871922754899616467886100949746847302250569447166125749147694142706590960121593217929048849607804605645242525014541822931494567637634861302217149906780353907447784608143034746633016181575770520151945357035471296366093578272944100431526358893586508643279713389246873210654224637980353307223135767045718475619712487788806223633459087332762180058812305169566753117286844551255955475377068326485809819752236371220286988710408668019734947734826845475676080062078027036157585443893640431277701514158974148331280091772062591965239562275279998357375110947455513363918750476916005473516776506568556641054796175517721106722206342007425530561874930323798353066658550869640554097892041014439899859361135060849391394686698133168904614662659099758486138145313562147225939328874511910055592793580532442497398848244500214975074918855244278686117006556524017548302817888530636517001560120013198610101123104934611805823523005491682095308936979269125240850154014584127913782372912832974660248927653122313385549199906083955475395578446094878713401984335416199960569646524870042975623330591885732312585066492071026759324114788224083773519491826776251648748166793911415080634713986605455875074773818111462888954935083936870554011705591914658778665818849720081437174652687491350859508440373354304823481222130061299988731769016303818924991874313033586085004906977131852631464568585173489238651151747388020858928315052809010933196846495601717052751180416521469791344227035844853818596394393603210618747528145408650114105285130540067208424268470262304424177779618072779271226417814975828440643992542304359084787335792513061989589469700623367723832465556645160164550634866357492024867781990097643417128534200941988153647099978225138909308660399056046051616684166665269366414008826304421741305794616129911693075089206854875818745282789690097916805094060791172771178733430145090235242575917717512795777372762276180374983529700012238416623082168024699251684258760873291835072450636102665909835252594408230802130929097688347562074344045011600937084778103167407688096855815326933225926890954719103120340377055916299015236687117738333835027623834225696820872598326847545843556213219651969363422456369165225324590320832976940689453027946209935824610683076011010290491948680539049722438596461339528139466777713619480822579489169872668743157549500884181996498027100000437229049085791968023541583637649189215730672524255258215143318894654842079046550943757564901128653385566306661209402479782702792536387544687662857182173476361842594429476077626270424153199033183622035208778847604977478371636377847712778072771849620050558561522891565588946107516346974146146345518656909890938969857674855239720489436352529021612603570059285926384527279778201516432530979325063597320129795976528379498937947680032404179846663314362912496744464720797423465532532198395756000341799867387676526998714929646488665981177945668221989665147400554828975964048605745518621068772799659703869227554890298074518270773781505575293659863084160650005194714289628280905220045322500781846122962834760964516238806684719648730803581222200402925818322209947353797161960228381921063749276939693303381373311098609833493185813128226037080534683384337494866834637358876985052044071206842540212378068700015483417173127149249423522968342617569430605180823722142294066914958896315881409346778768789180154610884356637310245486485775846169046152916886675916134991339117871333369665472899057383877311801314349195947562463096756015163111808135864583354228532538597137543717359494397926141933590013603837568886390004894267487089866523302865219454202071813615463763040264738760733001891937683049339328506439366656685891192175312213454421365993739530750284338402794809934883917426088459194773465192095096850023621649905584306002635969893167109543146650215684447042162041671403277161540427333596499337610175945667613420668068986665858389809752181948044428094887308191216249821555198718604943403949442422611499563959904883657861413299162889131387644650652983897713524761023847184546529134855542959180123409839289222270779235925935336511777456253299657846016884565585859605045756770263791782889700922314535531374206551228015666320074150566223135101211027398243083634632621510081700859099424727701065789275497725416020755495682533758114750783552205256849926364582763913130478350915686713741058647559108106902358232465612196786192767202974375665249099078791942009494628234447821380050159420592189709337241659096660400749139906477442043258231012188984280592398114937468856909771216898381719148499403464480306162225904353605756858849153074091550624269737053060194299692930557087092522562191852376386461313567453074844028118278060077908490918621725082918090008058070745635950995829823035925997709408647261638087917520335927918747225769429210367536912747730423338462111004385746820107457923444050999188440011029490843495197161586207025194280307264554144310221193870667620135848395799362372331949654049758291060693776081314018358587661838658567055418946722061988593136032925613907111235589234979642365582148496593178830243971271912809683377209394315592677279405066761139899686827289915225111446994315849875487796095346369602060923054480664763327939932118779073079365505034300004293068650083311174482535045901554167274220698929520055196857414806837670405190835950113242743664972019544950621528123229846624484796785222457328144828468171486891286328447500539163567769074002103945891871860768690045971750071474895883699091285677966293292649864311874191803254108603153079138983717944282148492999354307488042676117747646859260123163846466925304074512884225853048800142721594596705957841919187191931395845265631680526509587404512209270489984236661146473784223809492573030020136917004203044115304063168997017438934715460332552586507426894651193030662651800158403624025921175076066220134891960053057134467383559109788053236639105399460283877933925388118990871711879070339629132094485802702401021845919657121686105671193128895624854191761954813428548330289866887078057814456825168660404294598354097673609669538599830602961845227517060086177335992362460811501533689940288788240046703923680594081713405933196386862847899869087987005005068249962192875099001900261886602421668852010484174402768822087302485129975840670247865040171845725261346817991910901355024157594272140553730545102379420337025654587055555374423882700816689961780170028981540283609180423901330586035300612389832642015134576599214928550515665098298901258464581211981537927815381719404814843719654434723824582175334610380483881943559564923488782594688156273926608973380367199734085334019186317278132385640253369719969564931267386546032764181698238304677180272392669572574209794666444066368542648233920140146659073211900877945260638313453231799767559457048917548979100860791861569851006941942785918702906468642525617320862670575821813746798733583037369985340375367738256584022665506497476999997651761446147410782582505028358330723845472566484191811714209253338333528055423077439105881559442004807175984152365129544024602624662637007552911548946565343598508685406872753698282802192949743392947543966311487014900144305025302178800773685668253850255693812410526787903274188241279969965744595511006533019292483431449012862897272131879890753864666166296265823851553699572206054127338353728328794583667341063779759617948150326515661637316496202537275993657402556155100590380485088611617476594012656764572507841049230373053219334573311406388120574554930304287025250224496683740531042719330089680926920094544835629015965409052783731306757765025670457031180441983414678872345604335478901937505521723271104745762930067226043864640933060000717870264939387968484934235808902998304062709288918784644866462576315671845759740988497675025003889167170172762548623131264923636081971773800852338229767972569868228332472557441334984298663060326936971200491822367748516444898667872520613619651989721544453442071141946990931383995968393311186700662127350274213417276212261725802861818626632794917339225351770181337681412648637217446888719751272544869871111533791616378868086341289709260821267919784104267233044184817327576528660695947367567403017477314257512842414399840806786270159812403084372519972174363139478728894777892225362070717827578298150673264945553966926778396389900844401893983852335954120921369340554295683124016044670647524715327441064306498105576474313552460364919536614714259333176417453197313005876189538245511095961094467482242534913415839693738352854521853657509533750775285384862125304062952545564054073144581706258113279692085544119415658634236504649595364659672097651962881936030832173930125437608379360646383508643240973258181612466671390356196661073111054590941547392541116283952203439884209354656144537428990329278815725895225245009129887298448204289086318186687013707619787331155911680444152629163879247602335385210643556256680873581498792347487549950663909506964052991932624363738307789591158173823473864605360063498096070025000628383632700876465185009306566287158978791808507242426435569727489089844507557261802191304594124603748070799666602411549334754082212882238597973908685215815438119048457375466423391160960210272351088962367016855031580968980270624438560921927446045640891868053426861003882556666657879827752707654844913584669546518079709982702786825382618780751924668874064202866695118383699777372296859165087641999950679638287492206307482947730177047819377767577916041877079542609277882085574860058296859328811327882275264996815910000047144968174148636379763691659478534860383106608051384079298894727452207352417368045819916801547144268656882018003709829138970616690485873459467546182553555752729912272749443111232370514232886565466726082726444550801994655521302699465190277270350511889893898687756593991850700050114511866264156999680419303079654268406870801527094437796368407195993802280530963720446338919293444580225286716618623828042194105869341536115721485002947181953520986917292498842907198649310929898300720221164459456762926448886734167539299230695649758847807231840728888914963822915029629537228340064718355789325986998741653115704486567246083026888472147105936353098484107604449322249329654015720512725835598626435235968115688835566330638460927750535304265416294194925088108963374078042300462409585063970981668638737542768549763013004316009676221647549488413901854418498763063098430230703760517575471617872673374308633104230481055505250080946358537636979492622177864710798899429106658469349422643346283186635563627673169529831068810890573364104675056354376753237120703682073065174801380916652698092653115027891652452919350508395769966079028048046788082776957380420378666064263425195495727592714836611514387377143598511978546750646944089937067150128270598957302627183091648224120291012166976068938081229268067205601952294001087081405999934773767672568851475558630763598505534388307250030471459132182235898848140659812068636304773861276169404071975040883625800713159806335253952999908888220968197268312100984423089310503968267352254049520948100014696704693966678218640061387592503445876503634294938180884163469977437599338231780987824221984072395867060688809869815613511057256686339881431155098175512811484662624330753740278673879245769269750654568628294782708323647920452314843678049114951176736605629493889747897192640221839473695515815848034879904800731507136759660059341124763997668490052452393240752110377428946933648868325713880856170632292480902293991539039830121547698475487989044719771195828181809768657643514412203650938468479392367984994789398368644455983916181059539265388973814617107496027069191336231618031065066015878210856904961394805268491577175932914085043210742721001796276606546116992126484273941661576115045430935694051091157683512819170062104225739392586051309301456963366112438119898283166826860996562009836575049289775145331378754550388265256431953320976700762550449154042950898770933691434030052343731176194913525439980084707443635782590264762074641472637389892527060294861454448095123258895198011440767207396769477929521167133068084103161902964359487512846582392565536855962722444449291856329486427579912074863279660195283023860484294049263604062169144044324909751075737751585081044042185663793915327923831793198089267991305120615871908147609962862538508844781717510199958253213964072212329766190070552494002225760598632545919599783724194910830121546054780486651889573713173359253993056076745814984435488107476000457134994236757072506985883357158253538017655764181063851443351030446041649300083829434258096873999712245764801930097946265486383049527247625993637143920575261939339871719208121372172558608816527221982231438840082781207101626625346133966261628474784100765383718804372812597099292326664780720811861521820432853793507782820316081929171831671404690282861830153633527524273142537026985846678998652005402764698523459998604691354224771782858760373104084793781002306982025637127957138488988501695689070070026057729220087311603483440681956219334211316414781368307292163914032670445464887157459430212340400170953962730652116753724735906589561351702920709988552344547539827240262452356817665614631168115773305278322275329374491788425957894068315659485782240214066953609948256905549538451507823920610010468328051316776487492508754692051455878104541709897115512819408490454049664972408491727177816656316714238418057320418200869103461153138650752052020397932146416826835621441934437827489681671923211111965261778744604732692820307905141153810821224530333180630404930352589977578366366176612591299830812397678962209955866631821251035172964671993622640570046832449765625582475367780897867298345216681698141718497182712545599870257367618652583931553541187583585420764456374393539177895545017020412538859126420697219842524490036574024653297579492780190890589144282317761002584221932203507725158947694452706836905597305209924770000050354065489471876714208902933330697775165024209151867268297272867082713458030437104138266193876556695113795382228366203736922310696920549703767615083374028857396131781825537176377899509207213170091201509225880667781783625616397881626752742370152693899135783551966594849423081550987151265259132560545626085520444565964071859763796153612499381294771226975255446777312417763025185214528788026573781234714174884709899975378846929710874859651469859022324804382202619601385743854398191078526433548005672861915859361888266873630657687923146435795228101465452694124695810555952282894943948174641530151162693716202973137735558354618940074084450327511061201611297493680579179526077946555402333016165112919316795195252118035667630057540529862150314145926629167116225463733970662248165850726097827894712355445556586914940559656633969473352749451952238819152084838014223837725911994610411860791670046897565598931358531073426376202828606205355863878252791463596666543641667607465490043027911152729887484634883501208525851867513358938907988648916517596907580647094262709766459244996656205764471428103135917925148022386202021863155928869277420776868231772379650139382706110938396035526374855900462830205531081787837734367491567564948341113311976719077198632972770030096471313596676777344282199591629813196001736916541794306481860821173979368508814565626267367617656765224694414343596724088320808805981431630216542455010950571065398091388144611430740172043659579923366951858707951287185865246366279295253779602240057887120528887180391656344898744615686140244613646825480336075313038191862644369945051191623209589073281589640424621227871892587771345349557841118522892554595455865642901993882506035831937626849856273289670382862349922210119032089777871314415349732269730270639850995216068090683416996774197788495602139954674380126032701685988473714495225649789678255759476068887453023016948362974062661721995687301763248329596706779682295655059134525449998384910297066588404405151395924810329029600323587030155988782969024124808196327069438518198919383128037587778555024078899286123172491936800179717042162502378629756902261767093632138088241545512068127364646738343621803297503321882393889353710234805640213374314571007186863632572489457853965541442785004853092111081776572227751096469858621667765804533149137219379359855631829130148829850765541542215740404317311491514015757707966215436781249105659175040733555108071516889301012875356474876831355408303288934675358153461665141421033001495684233711716496862507100366272611642242544568960689589408151384382857820077274602516997441328066380212131784041580258893372779098735598718658236875678648039486382196838709374710362548902356868952055256441575192784703536262359693160985298579645690555439444955506289453889362312855206875945486044450212638100615319068248577253225177839348517529647203291302129034171048584660445537240442638256433119427157990474153050446281460563675106040758095464491447313054217966682058522159010567508118019942027767342110980782225937799408143081379742814812378398376020302680321765751127646775821867282283216220237291866349642656577222328522386355163385599020563042758081707691610008326008477865483627647334593939090566189680343732729664758088215165568025046157993441398398604187666894161144724651704946041605906553070172909309855380624196523337654274095469315331581958778413276537274541313548007563219065721697359176705714787690532475575548546516633593001087322433811884913232622308315539258353778313396486408551419545689180589848251810603119439131826181477583840828659243966349846710298796951522263608881312293559101136120368770357653066327930972595871336376375283245314712763855024252550461349400939722832292052000517110584802350697314105599875957178794514653643757153085455833096644021180271389551333619971565140975173037304337295820530518727589444162630630658774960323965456408446258199528253608113674637940164061315635659996556641446239350378470686443133923991330128015252195923180902692377386898810225267074933858723567902370930338028501210032193135615449178209040802473022854407370095142292848608837979256947259624726388561914107916431635544260276404101653311024611382016360837428444928319206942264218018231975469700422818377800835214466974905221458066552398962414139700265517063863426143602241495490659839004392694750341246696680464409653977803687820343888384099120334733595299355707851617539755302914595086952625831575502424001706938529411157732558224153911693014998361960147801169927074830876721580380315750437654800011317872255014906526262049754956820897191588030957726354675745345669323454099055068084601147050983724376341103648862189969834586876767954928277520550337986707061042709235551979831764579056860710378219663795601199604845955568654963315736797998025444712397153484268674308006888725861826025062642718742309156669165199185378289525162907150575440201643195216500811394854355576025969633054540653801951216035314239262891520093643250359487369796171013388395452699763700684306141048106573716679008080946591507071760168417607394449708151379305902968593057600381005622083634509379569340571481343638652546673950981621566583266159440363061715787706997688442834783699342616129200659410116285871040910859594017126836724971316591486539292420248663624274846204198779854161367738900230168734948788806988813325219036755673538778383356503907806839603837131272113466620613817658402147832759530572710501711103189712714807179821276239850473503657310601536290340317000223686304505124313766278517657377243113986105654262159172215516457777316379493263517842923386425160876760545480771768054716803024345751622386419578238222388006441218906638756499253669788158421067173651379282841531167336886679473194600879243739566419662720671564560031645705500165650322118153780960329488690197692657038460454977857115359810161200903077239333488645860229163941196797375252715792391256859853539788464720400771122908148644995990017365311999091522998101577120069729364448355982625026138744462631273068639031624174051259843264328348168298808946593549380723057497268432025045536293681045098998559998760788998786531600375779133306503146060805399960492986530500390614305227243739073435308839926652143660655733634884321350226697595845233863823257614801237519031516819926282362971275791588640985909235057695717007909047851419927771919653871805533363590748204642460021328797145075253391096535058416180348149887486326116512805874707365665804500354420947011291489796268709700645553209367687900785493368348550837234522399846920581591181301755850905217167129187417492000026382889448808127610222788089692575474338827170649637043298942882641200372434350314947069117800997197820395579671288644199833254536127320692762899949880744007294374086609092940305887437821712658275977781211559792003087089771040604562499148946746336985204754517005456868052083320445261153623964919339571631113247911226742355234543734294422317473695180704774150342649777456197057092806262432796489530552031401248895034904970398031711765612872395307427256952760223671444120451433711102645493928913358193706177444925091006328076688830376844748926852134143600546658016319318003370609466186205866610618994514014192580553835770711800732566952941789618115250655253266387595254299536108461917576542321026404339397261215587719494843640122419993296653479271206038116921281704150617994736373195418898339246935704941290898748481621334154391903939031630039733939842845758065244562765278832857869821112399466918019055698494337271335368864179968310579744027959263459566004652486744724048320048212750804361707347542771758427385857425449274549060172362677226561069814087651359530556737418234914467213144085016183691639828492280526051827824835950399355802877228882618951678005166485329311005499580338440025488188010929764052120378795282069097724008965293009726389312648770362347374861765060855185877211105520782453561319642661068139023043515353682853097738850319076310773253745750768547368615432085664532365162826554676174369628555160129708131580002373002630229696401064953285634661493165903214612036878031595217441420112137806422524656690065782481278509071116876560150424669943048938799801471506082464512603340038054262082152755928006132749911013040109589525510999069746023889896427230855646747338413623371958133364298040884512117171835147082357512146418451997069422987011239779038568638609634149826094315067802933978409717966915745423128359693669164872795660234211398792154139514064601824902375869357304346622417449162587705412763862723212156904540792288446656223066578046720492510458131776965802533238071013751352823712337965075883537035423993724947323542030417236491384850829915346343953601898779063798008758148688778745841223480035644089984383844690340694566019867349431176600161650339973071472116177322263146484319416870557401734927899026777181927557816762912653075161592969651702141349979478929115020829969218889955319169856487011515841276480557022020837266771442049023215508222764369699332926357733788385919456549791865504773061503612821260799311973124695853851010023151041279947711269130146456871174521160643686518291198373306200001716645093207589861638257103066498792386787906405716853597451258445474306010481781188951734544500091242976245891245378227208580456760987254512421516885378780854998528581610470265410563469558676863757744825491089783897249542521342289266792616637791690664866043452224308152549705670534407221028873728618581400620801086855030691714242018779949888617351735962530365839230465460292286661538141433340512565606336735310839317484721029196340421319528252295585839914684822936368903240786521705168906457748700675553435401876438905763746606166318795138393455703363876691266787449782320080862838547942826504053705545272796776312713889539989570788452198792450004332191661933452486707600051039276393520158457697042284226898845829109594457682841042998651208936293201743319460377673666260459894759929934395434606157720395204854742027925446135095711420821282674141076631519979872136745488761768400305702551645927200076183573064594303939146297655093186682839787145958188875279381782874110610903581552442370272386198196457742062689049975687006559362577479466551320149375136406287961752288260681405186855785450385409729229884937528116950525380717535579594095366664890870635389927597209043402832315634316686854579862544806373654433674255910792285311837904938490472127683021295217242401024326446603475273167849785767212573949144217332743712284709086744360489685552725388234645633182186724917832955992790977448068836839163863061379287171602425406974831869383377963270983958512497067463062162994665876660329908185904503231700287378701090436686357444498242230521262806677228137949230463403946096298419071090569689928059877886564250136789756267970314472436250773887563415976598678977964998882656884216213477112377970246646954721522988498770402431650343042792432027184891782802683836457249362671766864944261523331154685020377265412077534343141857682649800856774375067203800382044426923522652236691239980770384356872513099914200755564507674770084216703005585945119321575919325697133057761045424059462810346557926427206142827233050497379037216861512917167744440024080291365220694645884745026363466234705619669769733715608606255904056859255056480463704235548242391868900974699359674913199691420994376280648698841404215762379744022611983649004625439067233605708364338145212348823994064830622616050228614890450518210819215720059157913181402855447690264309812148361029514068432384547541708009490912473272696648036474287356423411565811480894302001583142480975508399545349386660408088170238317751786215722810019121812351647452586466893325956531471028240452582669852790028769038863464009730734260824740978385402778618206405133286286628933664763140687315582378037309435403212725883912480599256853928015693105491383466418375488531382259318809164412439978072505510779621452809653739431100943284483255395160608952156089583986393035940825287890432375282903294495731379390040681951359775129587315005018254575538393365448548994369614594936461637605094774590376472811742777000975859109696127438757173398720590272891745503814092314870134911457405994957471455878463720284912582403282393684468929330856206484057109173768434030261373519633595774105644302879801484057350919194216462935141584249326658003572728252244608189857585127801255422652071341975100912247965359902679478103236356122146444205435100537717936835297939181187224224115611345518135227831456095049403283865298447125372283154712259935574558294194799432008646701013609535390753289809448447348120536798850138311009212856667601435973718705062491523974777458852662878260100721386746221778633285465620627942554897979656991337357474779651555146072468109807175574782893817948214434333476597890316261146451905664971687840000510727518657197928406502940432709719549688948930227108267407832215123552836584193392839539940498721262385240804054267003493518610271486030285439818738946188143823679098125283284163381397633605060242439318677706349780668450406171181756734945105360012035753440461516020977548164952791198753389414385422662255304261139178901617820365218949358679578056049539289584985866652880756843495086239178637114869540234083482591193843749512797480965293704831981539338222023832171300546801440462669242121457163041180039773204698346159983725076328172363293690074448381934735574305877617452895703056299998857285269779334573432845255873519556246483543217807716407844629842666528744465290675287304389645780651969487040097333296961305045855645791841049606587922383991490476285521522735531052905942433007755724256493036232194518168317392508142998649331281626086353811994689011024513930868998297256067724918693834188932247156912488694664758299290676078492140921981701723756398274013467328692017777247195170743708672391622852202853426886241381470936566911292776630099093385703391768982972920593983536268200299803423457750842035418135520924023361152760330523553689886751816110303604983670465165062103008949810892718532523024967784918576404136994705255507578967466894116530274747108423762065844121867102809472019452264352198259627647335873675261407992731280277310351903631322180621698755469016313279842619759346959924269924534718722286769425475257407751539335997237045692633211656997535448453457775190931238385548799051800149692639706157342200093559887020385592019981109728659564667022845280018086253230088347675393659694472747140654020858790605909905123641077988192201043665230606751287307808551557080303566016914743776605818598338827970715329834911627685157015991248409611513791380938805815171416214846342735707402819104414851892389259538629710005409744716773508561576163209576562153725980517294407799323328323765732734922302120423143361477990141950823396525630571410970303795733129887114747578758426015684889132771046444531278959221668862686105724196279494676776453282818437154370550298088596462971152140467487977256796598340234458859143550609541640327191068416373334551134545116316753280547173858417819144124033818447490956994135662289077763183321963509612553371583856111790557956368403949123335073130147034031545089199160068394937914630153828491507195922315204160997645590871460455680711371040500073968585290436498185230252957535298677634732629146854125166547898332976223575088942345144793859444490019552739158333014978953637114939313057285876978686517334866085886763806969687087568351270910257456003617109499230143491526621223978922638235054281440532828911689032294357001000903301536840014254015367644768788783629768019297462027396155403895274853185059848990330485853408142956365766925648173291080552903057949953415591662040933617300015748349987054768195503936217556303022322132300220307083793471978944156392470199274174773082233836861905475000870254120842452030474728073656428543105186278965850772708690391958677053451646276890644239719548026982254268037043985169814239003582581424525425532546683320404369378238424793680711636471332621940587633113189661044576672974716845383700631960565313625893080910064506976575547733033730063323322883817789306478353934547658634208911953075535839394721766484778353197157406569973716810047870001983071565166538716493086148128256691744713400533487510594136248634465377120111644337453751358341547091168504983267860290542628159062585940051555056630237286631801660621570162510262652870960067996813964984761836986579949601763645402887509460332684071120576110068068124490731267208680789839580915233563587848059085045238257479795795226252232768845347093463915725421729460739780588551222598393115884405220815655111621653989915123491415796394821711338893864803179356944254754005397388700979047280104340593080315147207209704372776049081044895004768503835057371632074738083224968804887039378813277082860216916119582531642816325505877622106982756228647557816768019806900836522532538049588125876889290831993736718403806360721993269220170170475036935672497314069023484993387691929356346851014835358640094666940140898183074092599883073100699423052991307436681894964299943019731013888532460530050450238955899435239883724429247745339184475556802599385765638223387459560592857315343933454985334714682880412990874951914417225322667771121332314688621374387506574395062405814300359271297943973334009035319562629484196963541816737546029627568066418263191855577280909691583790369631853877516391236013732523333016948824927472680657755482562936644517010928318441860307911827929840212568785693026942558802155554332729875076593817069553383818772055969130898319418552858102012094319054232888441065166175734786513137016505357607878064789841504294648846805981115436297804235866473829270845861314632253525852475495601926831386757854332247195954173120710306197972441487716946150291873025073371607283104751329734971238944298002870304803042036803016840289321446876837802694540514949456123271893356209373202084524038265168340425018396704270684833002398682618082721087848904935894433737440977007572008739381393284469982242509619599341928556432813187537714405181331861369008513797648834456040861562936830919295034644121676594898426266151961815020822273612590215851229268108276542777694834211372017406687597028208424905414277440008888551555873325286430342378662703967309698936992761777537682373649910175052431684712443682302600938652000525571497931567905391895291027538411744480391775965893208667612525987567769600520320275575911162644787578011678674878260584820142769823667089738549250904332995979341789162854559929513815206531412899869521106077367968009644861022540641675408918595138162108007479347099892009298496323086031061465431173207615700074054272613905256460658729277789787657543741115666406058854690569919627046894723079761607229803542687623559697280790414723800239321271255603674979881364726156950579493921615405319943119928184841087688413159256091116564871271305705877304547330733432650741653555165413318704205592819953340752958997366503718713122826040639819708590701037643901736108094726216680828499805536531775589389587497189371280321650769994267967042488168631574160666753829328753451453981717383763668385332949465717929143130300399026089624564373346605109330884408325819105698185378015428880480627635549049229938654077242114665195856128052932167264362758320478534073759557511464924827972257992664857379185800456784075233873893733267742299406019591310583669901557872650128448644410193758824297654820303968807463650638117692891116333963493904533903056092509310004865125930382063099749816814711489608939188200392286590025203983525252096774583014933267163394640133588711534877252223122858251068529029479392667724474601433562348030657159980752734135408735063204859551772201449607297792996634896695736797322450538520222364366647378911085079981714015178889859745507061415763716673487937821332573437188911586386362202574148230187638069275816317864274688827656561799728162184269093663138596660355284304074384063688906098783376558202607359814332822607610684124658706391117027889767024732035331642181799475636256520677825712047035281069347729297292144873179727827422748238253815199436988424657929325638170010450927931349008908251990087862997848889931772490711004148755803696557999675930914941764059779140600960641082952375737518532610447106418818357099022280799456075912930921289620526503259724057596088263359879123937327934210275457566009159960236185571211106835955939396489868701638639807850795859077645563189838014659871160725918867727124829375622486482550016701518316357830398384350105889563353595984051788348240167137893961881002393990221420479913918631312781955457766324898444200961953113389047334032865431786028254970201869031779427915391998607212924210090457827579653419176894381153566792613243189021972935030360780618582681352035002852089313637339136435509950429014774018160050318246825324720251228664774417681170905464989367249927907971937875601634493208132456089800008412834169604760065320754018324064731504823291041706331120127983455651372513745783078914427951424170964974607518235618359583959569510701277748265399235629093866084465958655844038125483454003097898884400450014748788236722599356533031660494073654847908672915511757997908710800712377936815785293202997448405970656012978375078354511574917701878094231352578128737945796167808282582827747949936820061070323862564387330396210786051679154625300841390450114992464750531138335417569225960197056457125444874345934543678326992320685592629150977886452851443470853269934126892720113155235469715040724105535566638453712031889210026859559778397767416255245661536454198244655054238198939127230831376328111158252446248463083836344315603216473824657008429968991769367121249387032773098027464250325400001498711584450469451851358831998540900377396989971371988475848224493519927848882131601128500667902364448288266605603648826592079580922157244610401279746793563357728936536474023125889298638727019467652005751388340948387949781798712242936901535647085313404634672194930571631458111253612015614814153147221951945289027631198108913468352543750701384198633727201591008697171658946811103515077917645958117223241121168098522694069534993685642528186464471709034991971209239402412760060749893979442952898448084177939355740266500630965741343181297606492003637981019604373098713865324431328484622679744183522424934004857852127048854107025186530990554138236114670086720291152013136964319018711159755994542132271091289339063116014728853974270349009211239279981070036135963911639323829059289235201749225938245116489455344714937906560788495408690386687305266776130278244277260809971813920722915522903922610063603907875152919174585403608940424618839861134139088836740819015114644491271211099497690725192661737929423581438482315804598157491035370151446832150583204576149232156555486682071398866333298245814125477416098889174560958470565933433545210096160299840874171911807476870825901619353434602120439233253207124351466130624249928716324719813045373412614901060918926064595187423452943183178102169591656423791410740840091205098748257933096142477238326898367868292364304255126748602207596623463975068811570340083927957608281341057112026967612354144018204743124762756180319980134866304420173714072592645359358749721986312377342817661791544683440531038040284453112016404788620074565366950952595710292707509332864927054409980201052943250765883088828614909797226783867462425612438738647696624906733392375850955940413823550147673212357952157973003848666565356302573080151043563908428577035980932397538917993217457624838154889637872812371175867461675642243794291815425870954939287898736586453346871752277321956568899297131823190529264561200767903954367767405043282025103843010599751749104290646574120847447877829105059939925376398823326741360173136490169404737862875451809829595598718149493234859815740184095286167788906261760274795945787332112036283815660409723315141758965795143301863126745188166286417348504617999146647122490492713635672452887194502849557277216098518612465196435831367080837720227598550584172558133818933636181856150718581780825122723267923714930935724833217625804623643985245001158051284397584177296070002591094854502095179297333455258008665996337555914805056659600045227221798740698520527350227156505804355684624941220394808290467204278509842246337182205920571312913365346759749701781226582024220877091777862320935360673382963274158644331131326737854872755531981288993125948741628057039694906322055967181878456030536531487494613032915463335791944056984084072173951504582257826523190949132906533265856025879627065471127577136003965577970239120650708561523120783091744569207806178229611934359997424378373823930364517232386068478903130084134085973188528489616949430477078700525990194497003083988728053713570754862604161704795710898872799142522401419999542240605924577234658917442957273460698423313636243009374312718586573886797079075066027560820699823014852688243155720510181386752088739426913014893390170919562149204304632916051727799750825897828686781164447069974795833868633065716880886213943471347358009486782233247992044699330413129899870644456668910431610009813374534117645216755037729614967627146058817147285920490659298326472443805907012989863127101035027247209350139862897655173976806333568054782948888797633482238263676982044330229028180625106403522060389765368444496215951012590607857147535553319129332740479109755440444840534143712183323234009150532802557091846371103486619389371000689716455210618378491048303476299622019383777346911674034259412426054029199735152602804856323378389823733123005688671232998173435550480814809664891168371099564353675359982679104763497946533307278101757780454615710349494220679872483501747772710288379423687817418527849811274849678617262224360852351497960003547722833614149925769875020549702492721850477820639627470956892403708906133794140543178766843179279837295715524225014804935186587108361340013439453789577463547029286905202680629323805380538177977451899612365504021653666570460119574199546814562702361554002354845160653312981415788984808556771488072175017564906840776468483590699809356126969825314315879719815499702323206938369607741675302820283075843790470243642840492794115258792497464095695595580882177036845589859808511024694227697052420948152674756223115470897109224861726549089609887093673289376330864542336798852867305373757935202948019206327941942799819940988975558103311520393019045750011050641610187240754221239598840682265040597332693337178073123354773502880389390415067722495338076000038792459800335930078666547997617718992197100034384815516581264465669690380411767004127487571084761567318600621048803309732642150716279274873706696339767120351553256993841340865710492228375735082599713513256044595914862959010624089966753488653368627249856921093087900920512728199232547662962829887080706484874313401993153442326670070949325971903100857108917697356014938486660082158328884214816926340264570440324401860050613552975332654220910699889254442876320392370674186442793837697899672699218368565621493247201594757337114463267217835105617382415457490655960569591116100749827197236063069008371679898335672120745361024769623456349697666999126948922203270335222813011609449699799833092616655390492795284087434058976570011418488077898833747674762810348944703960398932548452573328251759114808119894362853373919010389555082495357008442106853650293288986288023351439609580086181178572058005520773696049813851122009767897575184679138405082637999502002999763092249624443372508472778589946983559633047894198865183537991318614237566161003784657274988237438911650387847701275511985262616132106306543765968132717838252213797463574980582378278708513331806423286162177934841778879167462898527069716742660844533932709739738644602839105793334390928952258974094713363036335554380140203206527657801548880479992290691767206729291769929528483775169348038698811073258253905210135821798020684962214694321621559337875038607073112524732670030718219514305352141920199320227534210226217473555319533766791721421042784069995570511754149031872390079424738479688027090153753889721426224639508633097871903047114999337211905598405127275565621061470927310162977981996775131758377204177024181289790036740881438106107198985003743519405315446671872989319276105939922093463523405350944542907243356640766194426025244866454212678809152128795485477181597802529996883955784480246524135009746413839062980651130577318726297827670619983645826847407276655896446543482799265240037848620064823126267811422040326397126412602183723772443775829449812618509339686683840885559125897957663194737032961450428420495611902523806386395269240473510298573081677171718232066107060425294748972777188665288065873204206047110993596443542583124042954157811104995135186178989646828598679448876442250394161829697164385893850353716547209711599133808687788432777121000361266046879263748195296908816416107233348995733313461475841854617192435661401597934676629102507944731134582424699296666490158524647645520888646023495701440782160527411853737634246711859774288549342558056631659638334797530036525242538278517635921360472752654449659693068230057450787601639747349900794389528805090613273245436542272479859377551720773128938930761745064912604515469219637000779321220039579105114374650175624102873054334329789405005910754426798630338707441813621553445299003944173981698364240501409516264778372131424033554545436327603403915073933531218559778794358170058909179049358588217814033841350579339538123593994262868562240431974687120993579097886182450148802513255647981462642626545828471284660081594483569200131087000061789481608410832675163745221155977961288960105888083728113702752177406190495964485105925499733639845316591225143250799930543527195248171506979095685584073457595282450033352839334405463574713947218473910929989032644844757391812837271342696507274590690079609587135488026298742492041776669770967416294677867781418806243287239994334339484207445993672203350404353251608074834095837266945788751502741300466485870742256034641613510980182639023655611094529220323040350735192661881957585710966069930368344328293149695176713158649616417437151336235281884082706283506684026188181699527660511403478932046889810001404086258358216528924047813610023718638172912123110015811278353281782674437796243637590812663388581871587155570285129715384377106063101333684121854969241281354173606775514126613608803011342373956499025892679238891353763385492881880712145125437034531905685846337204468105724477330815251569671668076735853573490091548295270089745257798932854995435379238720754902656981948970594923309720630730551349114432600061887495305827887817962416140582331784435675629382024582072304217062578691887792785961034875536455373779722613919941918634841025643899808174530708561036536304196354534563350707173012936088957176881847890204426563191895613002967040890736871443529555745906350466600478793550618307489444478969804191802410674050073945770543161917107405263419259761050901448764714499635076776724428927468851721160608737662745708543271225367345365402987840641412522776744785281785107772149412747871129856056917169807787136200774483230619996270696235122573992859736841176179441070525177341896638188839841830723687379923533551569246272244615791594765611863910336725988870910175707808829373848039425147989911572923322191477709179122417553498899829815721876799644886099197421961975615979832223467405156974829081619097219844371492084591048082816375475117615284586709484925250763467305602937623113036618369392594188462682091671930021721604515077719947683915668300825060107460553891497661748367649869212159479059628805319150865581272487483820462103101501258122573713347971656648282764592000145380339850210758317987776885474124877306372589442076612061502661630018630781736882387997227988855406460260541113667186986460197155910252477283427259905528680796793623159252453073728199208548899130941886529357664475196556984371875339311452998966378936579520906261817080373209069824805356536007390582181754300352199713200345344839381209228887871650870357025546000885911165911360432578345723025125900828026289603690123966981535119321062410232201342026772914660042359392014133777778318004737528527325259430224129281706276392779461910848991602096482642632356289302879516128678050764139856152857529660167692679783227812493136360312412738428535586516370196825334473971485907645824801553432587342907944462860602531714355009344775880203309244078303544683753857947852898073084012009630726563031166119860204714630416873872567901968557666136871678663311619598641543723987695362355382370936646160797749536667332714196191963551365352731163522422608774021261885178564046625649442141229455452976856641005387990189699217724566201230958856421628333855244642791226134584614394929061891530445148391179037820598476962907961423742392480602441064389387167668637248044189845667902207977154579427371291031919912008082091570470926255506120572813557659540536165959644573864679135475811200940614437074339871246043507197344731440707305374368304938320944956121952741960817550576074179579479802510264673198166155857011101715815151234451061655767759345507879194066472466156078200038487670198812420737557413158374346493202234793341352068297893194025417647162687730113720556024089355221123581182867193091573164386970553872423560482837343233438191774642922733434385331435301679561587511703424198465503027622621680475149399260620162333648535460683524362507751982087880382390086497909400495008215832671943441122904657973833942516699320650707578160211509383641298375852413936056948392197359295292662683654503322675319800446636718070516688692993060121670720448567099446906832016610331433252560681893847318164196206047072885701490329278663547947604937516309434803068197407197425818795945112536505262097545339757374189503627911037470827480756271878362208399736740436800870301269709662245259295159376805288308470887840064176116061666277842401278775904626240376679707194195465606207446344209967093646661123486599139385771982106617160813869732096027311971466463062862838579875788656929589689746332182909274823926705776279041071405207567550253752991813075407079015616082131987423486096353702744531109685031045595490261655662889279965464908290663025006507450476073480951812240206834085252922588952559693645392726880806140675557411039040763512519599404111556666399870196126419624833866290244261367866782613684484117991735661692275369674461048365178564779097703238106638263257420538330660804295446274588376752455807930048017245854184482044276489316724017421023863403033219094222285162988563711718494699226073532533097710694055800474415668357979131008181183383055781727102657132760708315818146495359892792001388862416088471391007047645378311514257266361354950212057976453383594165388508454507099061834192650006721685898215682189344063072512282770518200512884788843504943349108823789475394602988392013582605326653655756160408463204070299022180374735185951216589577944464748696971575017848554772155110309531360586797723289415862941565130357121480473408608541806466139048226035395284614150737913496179109123757652768856718123965190837719831834555248584789593477283270573838934336445501365494384973754658783879097172391191342608124805204152205613403393637071870557867420922659459357303292536861208456815249002038833004753669109384775488852882935733724867669089065108565780803445102828529270227579107552255305700573711349879417027679661417691240251734932435223586282433302142299197924662442648244623394864962534011270568819305252001356140332625278750638668147935659706767108390450188226201293684746591805933143777252030381620059284726889339774125573852617779703006494348169523626928542502421855283191207346208491295167547852370609244672616226661467040599604832519773127793175003831466480825678932154703107161150504981891249485992749535220172252300168025156609763419363728297327031937302498358494622147804853714367633166654060956430682666414820695516323807889394911216253229444141438736854174263577190975932604010099798328632803479983704950881873418772539188313661413806500819722139336434945453968094312556411919905412836901063274473145855377232106211925429906234062632448610592977882797318961326188846733527331972157652826264245992740344801128978555930701763034374321373300936616475672783080968277827907043915942023303682904566858710490929769094227509121253023516659655420795753059966301821809283682850925159199471717085010134354395420618281671776703771053047587400681732225423964741879290286885009102139579806369885506132557408600400074589160240013100841069017199678376922286139095894517304040323997059576349247891340417997360975201118294484945922863143152625238961113679492122762691601321362114159966882408116018197480766518017998772630009199662624393922768782091011732248885203716779981883717443128432290213068947086846411111249238367003067380876358058860881160769782809896132001854822193323434799782435063058021640855892670267926516477520706447037605796752903593332588382762831672953611905457077221276280003509490562647367121435805382554879762204744671155113409358898382406402824076681333759943352083403670949903930040027921078915543496178367025361996937923306084104465678644627036097679114424560423284683238473497708869468046820191543848958217929668439078609525043461842741917869839383133410061532882169698976710793326287106051817787469591938647452118546004510441741647987712422258346022215684996675315091914015845459338661954146058259349792125432124340490166350053476178334622401836473512395487589718992278757153469817868343718919218604753450676338952474673743792406200805953781533815765654901321884928167261523160113539546876304214446781444833110758960484636988154459583132500624242228406790926384838473969406978184197440686729843571452314956220916943431349635478595345106549636364623687662117304527409978932081857672479877022152192226734281925467210862325558764725341342888458334035158880407049768554726618669920303044727889741924557204379593284216751139431709606067185134972795447097863294276917312711882028637286582589503907949589495411342662809391573403788385102284352841895403749948565931966343960454084355709774812044360308413195677817643217657916409145651583800202420758330614093360624198990698441471854952901163715020276613080779662656396914429910561821803516695161810522039107033266664453748713160234026743727855338080933861760436607266223361428263754396740196497707731269706894869228460167052990438470853526155537540639693797771536472255999729931349004750573136233586442646393074561590719834783950486053268117595590940189245629260424935732658635854554531532244792386597140827221011428951504074812488864144723983472537401517463069419962595002962932991335491581680143567010405488970528782951696809473228748852187608044869854957347305069400615732177959218074784296197071512313562613136225286379980427230479289777978635102085641650435618567834927593222579510194901747800813583310101010739230001609315713040263927318538704150781169217042012512004238775719697366830164314657857292760978539169711462019973476998969240573996631643480379177226000263378070723230702700974611732767068040843429226795784473722889765428865688334778254874694625622640067942766891221446406436849602045231149354365451249377083218734798627293358764450757703647456474948514215023467139432829023374749004976653584431507318164434735707324185520983706683311152193142514998300047418052002008330932793355522093110188274404170415897536397133785941423845146712245110834280134492620795038421129958236837373506742229756084258266775715650300941608328558762728958480817868085396136214388778148568806662893301479617094116801157811761720405603038553871828418233239935852120873324531449089189665617354133254944587610914749976331444681834986463041922746151292855908750488948493932956520839274126120554663725591245299302795712733742045531975194584505976355946996612643539909943401381988328518943638905959427328514220261139696910757036530740790416295016927520430897209851831538672383350990741417351615088212994758282328538493650665910881627251115004711823095383048698149853509684679537784522349192505094774476005320902203861730985701904251764160180187685419235403972319789040898374568825423222194491244848127228585168151463722507796446145051811883805926954417865295036388587014174751814444245097542456060607299663576507671150126016774423217817237313770924772393800276359347605224466573834287435703553607317550614232954330238212427596579742169220842192929184442028289620191093602338618161615005820288441815148432859173210128098753359108073737865022331493245108516451267384356265828301139555792069541223151790570524819762391554420896615472124153920192854309967505449291050700217201894151417125380877132229088039989962287674633814080485546955982179575959198447733326173185801632708153652633809323181572504093763910637665441718637018125985831792860816808972371346404519284613409513403354954944914627206580800150519573546975098541976409919018813690926986715466921960198017016756577849652875408470106261408426400676391522784156887754618848792014662611830189132938163146897886157960587413757016975311814275153917165650920744907269417509246501419616420943647116430014634214772645833667734002087442131138112514010287877523973489526070474234665113143107407315245974856283626050215495052601724031163650719689249367244959220504583419168099175750967707714966334721577361805377529275312137113257289223442721705067034523945774874093650518982131981430386341231356994266138713320347588689653912875165442650690518685482275789734531665971655606300520257771464908567022762577504510060182876652623981965229670591809356392839516248763598925087346988913661648828907380125122278126717177801228237483193216134890919324017068306287879512185382509798007528920396275168235930019340692843910159094529668028090109537458387649316733389436879163909093402125588985036597566522403402827895673944610509842922462406902686710722327931849150854922198418480938210729284165557256520725030348416103464381457795085465033220693061759041131464221451066386154668810783377911193075376317002413102574665475116672660588283003295107231557115165198048573805091035072002213318914373127759869103198358220779049193121723414449233856438640413461206368140650879897866938710349905193963200501076212892036880497715641995618110086804604619093680384725091478382189342996713102097830037496380077910603503106239157208527449499124290528671251127696145150476246073710485683865370777093730947202592685300514255946431177940048482214844962386025931103960391846341245563062928441727524233665921646016721489049461987949566984723230525414822918711414740310416482831182718504762834759927264723570393222459372699303580454020624041751889740760771249296997041859929448784423471147249349415563926683229674204560376898323543208686574330426582106124337163150998882139957859905351460563821441221634488230412518271112174648827397664121002280333707353343081114345832647779989666684750318833154979908958108992427913362472970239441729645356626612290269975231956630334388060301187176889005680203411185580443834037463809424015660169915406311739420855570822495980858707356587865392014003562386634855470266425619855297031020709302079562182346192140982930652380358480795907553874483991793803063163217353333133718836882579956493957193890448182724579049513402888602473948507393725424417813526822164183651575890491616799756212777873317495724747664392611392692318056542212738644461253920087987629149942147211399650286282662766220993434255933866924936602169835311898516461150658588976467671784874214218132672707759860279314992402472367843732033039470552666672665766912408689291751218944177065695012575494996263113002629583115669945766863290657854256836929524117524043265043765438223198731613316018694234483495336888930148498759354485533650717428494471845127699256659270673122981297940421224762117350078327013816721815445639292135355955289952102597990954064322292307648696769593419584396188453105948058802225970351024405754752866132501568392912906426588966328560393272000412886830415206266242606112890954364130454293181647139265678285352989441764802465878825475870732059688088752438036538747982092616504168231668329308033571815904199738889457845611335735782776088463121628871609881368992187671879461031003547295071977362461867724529046373879458083743417945783141226094648517229081908436120401671820661332771715130482714544598750880643318473182835645821552886666376165710460331760196635077216418293582228798209580645198908935793648866280257620857694195964253176960572603723541017714356142624411887252507969287443036287451604254488361382382952710612808301856389860912628581902994889443115442282672466370298704790839352950878715655301275963053782073745134291857099017799599743387376409839081043062945434589894125472270403474953755494483861670147147287174432343420591869830233983559695522640658589336944141969404662220692902639637979809331054163772988920859113934709916259360332086008287048760454784038608975147643961150802161800737993535568106065317759232228862175453622896814665852928422468926680690435253630051678302253994191161797932159040878707235729482176128688643819792922626512185196645076013284284034071924058491765389768991319239466905927112820835177445678300244507859816905158997498464049486953485656872704751500587312487158213989722323417269094222091447168197512170866969458061079724892437854675000586383267888799902945935256935110164720527971162507793139469769292353267558804251198061469461080577774299283516436295026072596299049523490302996390757317286054508109081339890719071377575961184243052871877121804321669676722528952239288740623561740112482987668650517516716938313746226657645573882028235365595548482838595839199020934296948288887009641845163256736824607783572447184669259062931904322408138135455040714582791205501595763759501092215023899038136756938348205927464495556609600948616991810669990790693912851006843612079566997223720049507450211569953138080647451262015624578555284196559156030319929657653094813663082596579694701933114978061138525512132272603133184307185097437946333662895277438487497990437904566681070706018798528929948904279196254033081830769666433968892703986304807790925250353167165587371660551861224245767083339551678816906658670930465469883838786480217094141520939167364448622368172943741664554824802303693826899985494559113580806414842418386196851546422969794686602055001779971302358745709194393956421411067197547042440048029996697859330888209809024071844340978557634911332449358751182852692359159279699479990876579382934285436357720447037439594229409140357695378414783256578672624977707587318259767672117449361792343440435571872266069093839276685599419317910648952921481448880180026711695555730932103784831692845695541201567474038385763727000139961670591628449256218898157910485099966666507508507042869705488933635445753439965040677471376480695570004107867159186849209855255228919075759823360324565353673773965420479938749326429653415218179646358339463116067314121242617803195537636842932365893638737227948935242949258010445160889607363771864601251113854561873050660476280737273408733540572668368374098081156595043856342021971963578730616929122139804925529534758539392106544300554575982346134359682840199493406068553490183580480215992723026425067357547683941794522111728279308338194851673104576116547647973384571693966527554793914090518646490994649163752041010104016240430110215070838081683131920723586203772440914331278015795498660342954519841204488737619533785389891209445216792552245282146152598034857263542406314279899747634671248541497547903515087108705005692677662357863395289587608326291306623064393094590078255433492738041518787424817463715651164527148763209973766567585385836366828922120558267303322583485906617353270584475853344080803120636346365962793255549110853979203053073348775819993285080304848145576161717187052168885549667735838461593045985763028369541599864355055348406077920667154782522620798294815677833558585636026891529097647971868904583271063039100135196860911926966454021182096129052446020368761858615316316051703221948551075704118381999935751146517226211465779027784157176246804227261597414172781652114209635806078626286680682731516007110899440441709638024186294694203893342593617167757970220044189078072846504534536165508769222118809808478836338441352153230015352759469145559440563888068653965776278631305901562790209902210552970369969185968686953008295214143713294170522079296812081888690373077065729059110163468849181316946416888707639807210246829041886840507140131903132808210273291074759945143732168476610453507084360223214279819874278241286144810162551300546616069187424953471180703866258404705618760452852219299956986055608115151127176447615609435048946928875306766581549693943047721167781962811856863102602454242833086341299421300394699035438369350343835059033659683384342261864408427963344293436097296131513891887757373215573430949497369263623160337272429858446556510649883099638012914642042915066114222105460788190994753721807607678140935720494587469421591564500955624964766016137550448475900601318848118221404935084642181509679434149757018243567289549683620622714285183987237426152750728909985827010085454722165914399250441459620442367151751143239226354557783597447666974038544830699883654130376232066550504268900094311782099402008185483822240937958930941116275685785453492018926969406949877726380560127117843573975584103166287029375772831076382358994457021525480651630015885342763966288837351426567205979288712116898510131445064750649046227920925405170523754536302383478022994432414522547475952335364385710217747402154868088602880981085704167407177513711192843093554937855819965666701257602478469603130795678440306986861803809193761693366304720551708349039633709690224638856115456019239984735623398779072443089514543532515653192467064199258867254320433874515710335073831680840609875212048826537375988382056009909373783363480397075144805798361303488883190025287194981324802434117991909964766662531359441183855273642252341113539113452579169052678493880015694249498740739521119351246714322980677857255153331661588316259613727913874334214875717344622394614730667314542910728788169398556648186662212944591117616001065824802132179233131872020962966645811206352727055831345752272689471341255299000284398795665550708798823411855124990374293853441659939073651664906405140275936612651298680779362054641416694500913618407878350756918563797585029597089083226207422160932824483137538467122410306005671643008497233662199671022065012246953079669795803525758026627108538982407701231136427489536392319852307782691215700264152710875747495187997580906710567876209041029724461584225980236319442114157461556307569761623099664187001177235620831520873686571451936754647354514428986098540186555048375895883153876350937502109992960534752250478255385144678242250655283925911527263217814595220161582443509511279921509113488356321218735312801613243404943746662392251157564255825233245802175881798422493361306495072580502783311882792656190368592710774194826636489280166966452426702712807040747450905677467317813036971558045761230892514659132553551118308082194534602091047968383130376630941964821105191951200964016918125747587407525566898761509702622389285039149012290176933849132414172816022991670885375498391028828346488944820549204056836726736907450877859792264064857497921378161570931516932966612417606464543817503294094137161837642514633292041626267201161886178675825859915704064117014765588165040812268864347873528263835042952289161564300769999494665467237851654340514557689825078157660788756903861742502798735300469394905974995690586100849514888034899955732288369368807634995069757952613657217908353454655049843993827233371820564312055623132293421390368174984589564521519437664459188296870513229166528352291820658508620006080798724475106411868776301345711014227143018461871282100223864521624001557727752013548017254083414973353751465109732251746932954754030599303867035823886615320625977494482665673298126843821970963496498947419531847834827739455292722881876063921011118525582944816402739860629977578746734689185176706520399206402146020349120237940876064693487480387907158669659108752158811664579755029418334018741790324072948074596560793015041180607590211572736440437261745048809502635146083076091264986356412749030001906422210926159881618336490270334929014779725858069813093174066756302836868972770062546059800484423415113580907350822410459028671703837450516177766188303318699776315736102095389154207004280322209287533985546382880113046491796476282592309353327235986595688820529488628744356725849951560756003838960788574257744930559243211437916280200100315680584826862028322492421892095230307494456432661229612113584877052586806489137720596768997809200235763782504956148768175813270670053589367309107873926384408653519045290299397062999069681685975470144502782081028030312241465358214123797342200821671394002405039436080372425603279789085826545706642852887619971133165451964367359673590997257227866341872818171149985552558596135231056804690112015563645276052398226691062880063958327438201648105081674846959589497190483290723130016810428504497993931693417882785717341186475860095099962736800689432426050788101863219182546675552670153431313807620164216178697195439507224499616603898475683552234522375393254378404912777181821140580054077770295961383078966177270136667133273646287779565572685692741834704253930174219675894554496743097094712335329326570137846245886588540588458265296504227195367516722439966094028045514946162954818222805340726698538008423147854453357606353224937728733117552012997591959547920142686179994570368373264016174536739046102941006962032159182112017387819465853984275562799579644601642136171378864410081921516197057285048195418852927874529235469479826863186168073394636350938829186945138033556629319276939331557916405364985872410878026762874618949790090043686287531938252902464173032224072156896252672110901834539738990371310153294394471203582879560499402803552865457567264204792190804172532292140596377082648933252814119431884210408310247674038601917438297420256749229520369906398084426731105247386558339250680188102945890766826681395321719576534952507524147699363880743383612243754169866787133370983197004363511860943314497008540037908654914818287277822917058387448707346498626148344119014853929332530107483111781882546851955358682190469709642668804839855181781413437780276239119300438927486115966926196931258046812547480389398789900033641954196834565783442385497085708353809155258856979012220407646267318102951369227135395162460005185047361448477968745055613802729160131228468384733310439047819620619556015153103038741323945861934258241432783305338439499968946995047999327133022779894405429113631459861763243171373683094705693570001030530693604066147220880303082185233178862198537421245657064300617508095533915521021851887245825884900650990120768503566863328630938052294119572142430632340894298373824396135628616275849489326786645409065883402974963905666862350408573670714021601645568462477555480104143919674658388619318800087571724548469125818437787182390062753093262981549343544520444197416673559642302463863184156691939316132711903358774524486282337707744721140889601494199479110047708195990870886909144573958099823973338748116792795820069743003552476216186788116597754000384296309804058441537748591620644307050736924035346500867326899627835127201793762846407252826807446871827099030298207754059683397151360565343252380231149937014744813971944749432501955363192755201978379497009914894338244418889433910666024241472634665294013599817090567222293103294839718571619681159685084275632391912502337032714375789519217795341046943308065190673725777312096594059956587215006796257290041617649557709782768364964546181020250398618130724399937303369305835814160459350854208597489687861811307107563137660334716922243488981520577760303126836435657626268562934382898151095166305381137897022569933707940433656295955567638288861675045524564157141532217563476629105218076238496886734448229012942455592557346830920339711943342109102507637502349015545833925656746352858997868650592541999229153475912112971408554716639694238588271220833799564289663719920362284297802742045258486958758058225912930602972584863359969781903102090827799246893604997623132378875901896851145288973106040702972497611987596055232605201522704627114257224126600658301948304274281715908011371895465116394614985921613503138877068242840206369840876837093019597102659877132654403098177681678271646189047611881965399682062328318168810857238585179595834814592486034132173202351390517046062139663175603866290746501664337317741893074478703918290410001810644248439196821086667716010958672571514783659587898015014672424500827156318540364592189903422544430218403625279949933989129560649321166957780968720635468654182677567020185956604926324186296286009370316790475818565031928715955837254925202720335976095145049422664815341563505331927259967716842916294947844580192479426766406105098829671648096730339638407010829942521013767704031351480830772265838324916368126752925396338480330810933107626572506666998015791100348006258378604892927000188531103533470806899032463599182649813284326403021625848869010590465729180920823299873817853684286443171793865192731959824416882020554401592357648431179265298209564935589136064152554511918693334370920813178255207677951655891175452295815341824887411471863107754818904847161301300270318041490875625096196207010924697103128386964507680246167306146690139978767929540438459100202091782608498866870241887710150805864717618422066461609350535329639952996496276440070838085685059327353360503495003072283167521365593954791804849877180163765442241770281092656564072046834563888917729083454299746337770562915228324991464605120552236581045927571366424128916804514902780915772267199886189217796749550878867889955325790127362004308517451813945391192782040450815870425794322718576792332559506419200518518328349596727225863138560426098642932550868714509036857798118892807109967611183242576928516908834730661061269913191088871941659953126243538270217871213157611937613399693629857330882288097168432982888409187308158297892737827534224952828816163417248831197623821828768755877282655029562879704391803855346012140630112793944648207446466595408163114036995169101305692621332131607942119459646592639672549210448490171045424575285253042728193579842148938797181318529955642450299377857952077843938491918790761938134015751071347205941254929030532079788923230950476278282125332303933881527877746425775371360045192737289191084331253699590102282696493970054439828735939367846954591802871125247487763642220084681135425517878126140125414460840527977408138747317830119234783940609315181110968121174456099251521169257149618979767648496373208971267217992355971218047317766841690100500045477168479467141270905685455520874337641457763419874373389778034958537429797629990720111888916519491274361195833449462337764406153369790647645564347014561629389580556587492998416635512160703878627694478770071078366446318066047211839613860607762911593041150914239226777451235077467208341374477107871437501698816664518177688060319574291348866173856718457907011850689570647225621647290422327424023079680892186823528922886411890937173292348871498009238832714260984336310133522422792990657901447178299654757045989597185149497594762346085820007661507795880806445672887498392661168393827758640230050755018952741512587935925317836835819018616392045797193728005424914060680778094505439701107745153193957433448784408127405596330790748124230463687598967607831690898372727228611997368313791544244532709650422294437104414051104328864613534000783151081886731615371924604465113823294595656206154304342827582189212188071342241023212679126956030578028639748142878969739416653325539418414737567552590185025996307715924572185366393624843954416482398592911219524240306735204952461363875037704524725514307672170468060482446093381354749128720495777834456623010614766868468936709222864135902999872221962663007845144846931433055813401724707016601798585819383354538054971311472520023457328499384989154804274159205321690375904398629998134787705022555055962827577962190657952932628324263671160176903246935994551736240810314622434667623361947595853635077644503703312306477016814932373955980221103746504733650240826772003483845759841255629076106228472303391468576712247499931619040738371127980206433654748997023010630812243421160567511344055132284096003787980817768873658744681612465922549775845139100823180947328185262707096644796751050716151062793897466290623546703601025821592133096312763395686331700086038506174178606472767202795536847077370974727213883325411050818463665402983978539121244881211863087816727727706158212121491675720979891569824092300986818597882423034619979289001441313720603994168572634833490689398956899033636390630904910417068098322056903752558045201236853146519878432271410708966242262746642287221896011373433592016053801870165758368543751578110507073297269766272286513277172494009686668035210076387883565193748010404545846190461534762646668835412951046968071646331569216820326635224237102638935981663027890070886035275600556932827195929458766329373586780293704830877128273753960041058285086997385189773845414106490460587259536599032303168817506255826089240539120775603653763945759672755911299904067749359178457848620329936568548927566644602829911317672505199877312354688155007888890205465042941557944230920291191847689222092058843901637069831272930078997794870254162818033821186672679477474942709998279718252648765242999607364019618952889055430936229558937122051109459486375329421772526803301983029622231463588970164801296968924730943336800919830046522125642537642841291451016386926046179989558139329418269032455516859465366603632122975836000122992045510363956498779913423800713623130239291422155404845208948315809061183116605188706169494169128462652377918108116567874099836398945763817332010402560986807870723293610384887218885724115274426812148510917532372309482238601986243654035152771965014911359877885957701757747166891409680943230632269139221449352486689799750958952727662470335016533410001923221695037453006661578126752747212462618547236351334523314579715796959685008770739743503791388787433568672744983343588273935308284581096760447219810860814778734772603737059640869826632286155429722349585265457025828142017927924171685084208536024847164500522219308504004698491172826546401102822487419968261317475252753095978947763992277906115088141995357833069193229277952431353782176005857514698461010979833112661070756274817537720350679652932307444420744571212648500876381489037516386733769572741170198829319467821484860027696949820654790572336352164398412205720750386160919411526143027431701585300431300988907468356488304912803886763206582516050816489020691608081087131094307545945297391501020922143837423186326475501629270233839594819301632084881133596696988253545451636424451528853677360180561289271696667442105320789366367604733841440629938991021098673590834722703764710379278034394387540673982111681115116233094872770338208875498979000072574699291714167058196461073748301822550585625158036099150556757381857164853077551557643078875725114368359727413472404129448354069266558996140967572443286446377052002309728087018100418982385903575208564554428219814560406193357412422622670516106461718201654808778535236723227168373304167439038334840618650911181347549676039015314064185127430117242670427373674836012792872519043831804341678181266816289390321273691840801636550905488110325368646369117801373176889613676783905695278984073916078041751674083816583635704841112376663510548650317494626494859572543443745668949785274358965140537309959223693542639981696724481022791930219949971690847389797113184141292270227328600221618557402005407713033186148557667461942324938131615140142551089999891837038167392202426480766197830594169193180045218024858556825280714771662658752349416637489231563458497979117183680110566098008814638474742484559467901397205668433626611325100495300568444583156528943769098676194078900143631733681109279851879063549884989082180210844264399023093600587303721809162605571601549181692901924733935614041907652998328802890815776096055599060402939168970811898208219552803118551796750219982218971676391105396406228842437373734020972093831929422160800365082930815633122088972711700937078701056108483323322536504877392064057715940601949055758160019736781513190649351672368979858226058293700354018116530434598985123765233048838674685423937257064967308995432466254741885803061710635784074326889721809688279790804149961937916133436033976202929320198127747075872904978164509472864377063709360401361161351633623676924172102169452000582269679642701776273359025145590826532795481185953038685041200866312673224842782992542307469488201244430765781475974455999167296801072593091288551698562610176709700405055531498434266957093024347076407000890463274383342857581998028703637977263166791889519444197711755484585622457485052602124846530153910165438949854547546539370935476535908046070894717213820764984645605508510031412311239933838047297549634426516683509553734921456547922737669128022188318103385283587060680191255348416620868545786455205944653261145593806478748852393355446759701298607622860794601555567096113798670692032039001421178682091283622110667170142421097990138700110556343736440075541103146705830496949117188435709447885130204991663222947110670175233276008744808783255820130374537240115574669319094106543435807979992028725182727952817664940801207483265786746611305588510429083963293901979428430349059549203270477712927851612491674191626741937054001657449824250675850287702372685565774502380953953205345048907804604051804037842769717894365490319033550677367374303412273591720883114895088084779875322456374022689784012712000408568588171785123940227783818648526194292910049585856239088968084499866486585731022735575932006111097395202854170501387666658062954206371366184594630599366250758358197355486786140919574893244510392318331982757043346415496449949323646330780810313977615161717089234367420921607132255147827788603686857629948064378433324597010861839550816808761293643999161846209261181175990344076588558262969514500911520468482522026017606407749843983042009756950963741996908764415891923788934980759780478643962069723814668360721986582754009306209973777067496907184797566999294445524445307772591553588884509877902438156942708249108986207770269830583496034253346372332374549152058536959948767551889494262433347901616602586915532904013134628762185007920407811956933413279945185421198189124827387398047284697595778505953268607608655881072924848566353927873504087544769715024414590060990942024751720410929570461037043852955593655278240011313581461136250926231414347635833722582135176567227712990736220783619209985148873166971393828122384990243465514797642749293181641875006384849634846313475763445970321997388927150179270298256506348689965114865165192958048919676427428657264824243400377333312939668743788655458852430991899117384902327674098107220786218519884863128441067765424619953703933255884751163657408940550662424183020559872732729322605373479688303283488339636682136049188117320903273562640669531236981715390945348545803899490695337524042481850372794671238102797308765357678198040019336923095072475836349031042552197452127516668702908719212874510836663379807827711260231009956171241527973007338009827214221353466955442934685856110276157070950074356567167917497587150728920496092846333197927883914144136671455851072814890209581358460728439658858371414975435013831731108773841239405358198021557503831020936256169859474345720814827474142368029312571632134819261250399183983814067021672339750563531489042443863616118128723892507557083516088066027662585489206578688887566397944835755073830926698739458445402281382012941267866503187284208108276525273706802679921234218552483392225996388305411109501256713408126733067153940273642651284144472860343185742440299612801730142606853632477645349750343379411511125935330518726569789511882427737280705642535539503019319433360263503745378716125609777413314128085340857461034157314619776248891430863420646782719064269620586250714119922315444979565900592927670357094653221878554557633380557524113358024318241978004101742239486370898934163759901463854128925111302082521854720766150587172137373348793251309521533236325635894014374168929075067775167167463519369132915261349568373600599011700315366830876188174143998556687031243434429666293427337979708701419243388367892154505011878618773067188250058302105275735466117349818707269467457102154072163946338605221614891608969756437701885895059804888943048665364144197528505376996094033792413920709817686799002951067082039674810388484642637686213033428395368452010515816937747433519229132009652580589659838874502247180991166252165303716813198328350237832407024528925448779886928269405669424043766992754588506783557522440358608926575260481939193092110624728686162488197474875004053760679643669111668221947850074665749524006608818237559050649757417457236945895323161152367437296605473413308503592395726970593472256873577190586572216484809106553465672931799341187198346309597218774146069037057714461402403942797827011011755064256075437711693666932206680381291773758187926840885358055080148040940250936586707957552465396191691222815012310523112348381618365405013831173297907035581248434153074878307805855680232854120731478970278355847417701400890828211283439784881525201425790874280942309444617811907270496092232384185615189569956548057698384367107509412678994651796501622865898697824507555253300195393873299641502058133908176313868128803312261317446762620207475557592520976475678476370710175671425263077648138118615085142371095686631218205719337580810515309624576672432829904908873449293471788957841328851740858044910449058454479738154471233355104242130177598478607220131165292491426869027463094922542241356114063133937138221685234216220154403425143578193479135073434488920808107284865681563462512688555431508558144248561836564453587445346692394855155306394406732868502261307755669180163737750286084522572332824061936075076638934594117052596532735165243239902629848118041238578915213474366346953018743329062081313398166991268065029376969030969548267041619894791390458324893394282821439237675691108124264589363267572163700506530770625566737375642244538785942717427433805049280656025024105485035764305728229542654348544382513154645447704310633200507781602554011754650391752070480691822849013673103825741005459450264998181606979184506246869677073356452742870910263338536175738957067063134035861207462570470010903405054891732587788212978493682853976735852980171835801683311515320588877433207399615754803383413879651159977070469826126221633213736813255634244988018834973274824781219761867312234360108370796832720236422258285871942328423946907852999960180371866494032473164891959718303982766882342919563051280763848094385807004818062131340548344313090019786651896326034529933962630999721963839313170943229936122925936936162568901501032083496555448559408767312253406251201448033752560284008672122598203326256644833456697682620450013773315885611691846692227336067039588022606304969765273951767189907640532718507580503795653791588146830732406598155842288344900106656096793563870585908866983352972342297454018662703769159556973653481852976916826071297984202032513212848812653343138343335682777813722571844059536099648656523505623130328259712366143817317733145344679551194345001623420367680238236395124715470218471135458122560575534903764055361715657677797059171436549770431266612607883842161371196253083172659755690791492324335651452786476038112359578424344401384470637984708389343566274477399987619995277199668552544027456709165610221047415929908409553497797917384078056187660248123212867804067640541215876716163088425913940659940631748620124707698235020101506404813021755960815799256051438325800950209042796925562084602791985940580477002470395510867497024302439480513491789156107276476568841420312591676981112221982256842162125968755417177519382048941616953752043153762182242434969160345287929973702608050524768609334499683859029385434053095564015819348146819709011689319508349650324121949383963279296949919133628105845719362269381379907772572431339840248182527299276239858302868933613723596893507883189820858687874923650261408328731133082205861209724935788812193956399578382543297553203894435573742302988885083129406551663454438753892481098973401916524321005034443730459695003126508633519954869763444989353885993910319937680534449924547329831378180962025313625722638409951768241409130627949003377878871926961712947242086763734944995016560779768320945103566420552946986716039650757136513362877357050988212646814721296080125638353409805119145185593210672604879006271271968974626698853169710624489549272440228407848177813676405547795511492192538450103051013996277475268081572657281204226368068552847083371379424399672585246739296946323131085063887600756629803222819904865104531568015137202560208306147091026183133351753931478740098704423998000469184411693142937933011303197131156177498823084436824501044693183670600899411928879294109066467888482871393247997796792580227309608949873575762481499211727849566272913294799024864524447049404307112094345641030940690530683975768928685473547070865847582310224541025831456614392961909578940021585721387009773827843728432057206337016677789913221999926307464160877749984364306829957549694207295196703238608179881641373392626147276356892625763413408321326479530143913827324010350780745127155066724212070996206209131290947935878246289206484510534486204701936945922306269766878857189894888776251548347126735002143117689115183787875814704343231095425884979865434081600711038032305531046456163399021170783658368954245478296618129130239299887980960571019401395969326668700627671101758567548314019470371140371764724561455615597658613802947215851049564238525952199517505249734645021472069899789752812902825991467059875508857538134291960506630375532247377290137332042662163319026169399644190419881710950152295128228190512042957771563525373103924563182333107517136526708887862744593123173949744542840074373472044039512067011045114363960627168920220518781554472267109643881796097644208603065719260526565848962894519420244110766733711739143167589399502354233416201130154260388060433357810372068903244456094559547644197455448950732350941215704531056892442894603921998438245710518599736986760183050422490947267338518263578021247729284825437793439426921274181420382502861879541238464560079434891205087635325443646218352138039604263027749918371766383060597915793892485340494864293492364175655495702138419769226017704989030234257014287802816237306549565978426188912602997495235729260622277304828368229803997691454954722140039507978545634168577071824762571521370714698600274159980177985912574148941383434112941814893866834165804188055403139753594047634717133899601247242400550531725488531701119824316972336785589495426278878773798379822943829036871092806453676816220944209231757014972488063602117749854339183140643960126030426611018077541467843597627303728206533226307862311683393511048060300677143846176524785198348187431522581230588648393420816554165968939179137045355744744466673773597897755561775074097444014630323308437176509227870264246770124951364241165939239318939952012620583461321822595808582357496374297704386467945556248681143316139067986717563259465646146811600967206668742865808775292409863666828196480195652536065433571091627186698490564457990428366583708589015937967526819959290623090133336076366613142214683125973985246148667013803966922018893079711122818565034094634525291611624325998401780975044604336170947126765800087971924711137752260687170533453344301541178291091476399002062258519292332450024709398891567602289902591252612209530285388348253793874051537044107614194764895155611322688146372197992725557860068455126083434156922781735364570125878849931721795250291683796061169350624169065394231889714602092951749723806381601325417345686982525245946164276398370892085134126784653468861444794997099226878278400665569318490372755658048772726169835529865582302460210994089146561812247541454090652675034525142780858269722134099588714391494484306250231584365254638239477264810983631375373179390366335677157482023954427554903744578217080394137978320673348082285611174569175344242782199463406103260594255492446976410945256886525929243044852491667273931293699578933788213740003518356526991067783059559173949522941116713368304728726692885940068164748822838375488896031233119478787683218693117885651796773421711198585602188307081155742370567549783520274150926197371462532680827389916729502794668062780940981847958557228898148265312766711045256287207453681688653334780348549324461840411900913403494528904009877075197806074384197732846394044212370586044396134318929411461966496450505006965991508588973747946750987646922334916751066731806906189232843568823885795801666288171984934378232875161287051477280571374486499723149142053310074710461605711241267915475117229625317711036676074099084661940750779271030191632694276266224929844525152809517286607330819316641225792776839343552374012181820125219155660198738146588917725179569824020141134760805538031704607292959515105577462604353154662178292203566051628378421858458933194406799778237203523108275078136139659713654381551690887811527549491237738117557543888333267006914808698394890845543929524548983692618228712896266183073437599550009048914040842379060035559588670976833936058855249357163346652494574264337808886069770582200513776564377638971825505035877991574581526281337344835667565411424592042019669775439757544922833145818631587647209496021840213192325516162327753314643165657648160468493046095162133376103356092346885205089904908387528581986682915872393877427777333573833824561105525866394687087628446059258463504005724527744655410359590694061049290284788801411561730862297211035557618273129490338868704736810113305728570643826764016575194162873978356171848666673300549837732222400875497794658705343671168018206951991178089124552011483301761524346145425336604419691732789331980083101080873597132457507882533393062174281953769928366828395309054625792527066607859612162244088458113485126888534781906165594660544104249948745968100313444380468135643416347254873420473246179856880348508572578724422925685037992091230862808360427584511276152928727052687611705393049192111169449018287342775797915336736780962563236112610162077833547018850031713581622257743864640597267948809143406703731373731248016626870613614543380263459104301661047638833460590354663071107737010665259490074985609557056468704411814485711070828162319436810581803980026715387652825467943152865430615988660100888220379840323294003623815982973454861090266395981217850462710165645555682880477226833672382016800110404516819962237988673058350384606564783658756797517424669804840520555500204635747516786229325152598712452542128005375113362959669160170361884269801073632162653319515959975383566470882763164064013402420394414177060780176101928792773226061284479314297613332279107318156262170791725425517683344400028427052598545082729947438803352245710507274984912886681143908492431302433951860842325532759236039629121379627792173210895111930563172810868089576319600555648897693889380884747871934988634719375008874103337651205402854567970677660599477437162237218031456235752930341431236022035114946996845836346908014489498295436719381560563496390060370964904120694180141488011460125698388672042207968953396176211347197610250064393060244745159080193426965316718889553879528762797283945858560228774849349512911966387620807381417855036580193980591291284281351812178844626615590843481765435519310667038070821191507835772662744595684170123656555394029697887670397099127673212673430748489242598383178107329927152239042952171275883602451893956718609451453260367659539828300508853018360516122820621112094040720578263017090320874579721764664241096453861049330439116768100230999509428682402392123924154555604699315045718838428126735428129824000894613014935016662394477186757150017697091449289639255774282178645586705026671096622227200774475642999056630081680821144660742807098227758060385406587799152264832148016337877446281739677358947202476209327953787878045993291734035257787563825666951508091681470281992465114059059705993437833332966586363183998425105565135144337691068829146655306414723073743338906543240748634960209159104175208299687063797434810644008866857719115374002397324598393963314476033401692045519123281797072314088401104573378915861029209347597658291109975757946484441925036793686730002727771076776209715859421900769201374609691062475681786768007908937914086606417494541991657266132123360744859564374449955885314105187341019793066131336044000977641980271556172137076293188974980115336454472626793291098617366754164494725258292846150727311942340679664289208715981467048500970100675064686730645744236523012535645152927419722052651404323759574704628729397813383387955144377257815378590860869528545044898221708262462371129942431576496163097519050258180387701641985410440328744897254156970442057549634091340428848037954304088495002079341901269774544745590321724186234829041390212739858792561468587047218281854186560471714095288042401865112731764201213915837255575539348893362966905945634495512413513127128619224138621248977933554815488886131296382319844835405260822953476498358994167492881145247208116033844003822808268461204759427339678779240529040902588222048116367244280613317120177701561578846029534735969500387724045382712541287211570717381171015644970336202361889866216295847847599321517612364772021215249249531093915122327798267359804918610912486333328109068102080447933347767245354768936389558047858545795909880265060971347184670167570567037512341844454315786990842378322903858632783638992169385999096245821389237608739364002534264420448754779208991398276085719012510262504184069776966207122633012728158344747295948620296255122332540596218752230695652660583384670726292282848605454814340547096418711382125557658588442774564286480179815992977989303160914096321535274270246453780468270608077806311069129676732697357769447898790692618421520976352078066701270740463127011098915306116168056560405109306432940548362926679034529907358339310117146984867439833772979151334649170253046816213909437406877041954806317655748755721423382016850045189302996333488633643409674131743547000660873983698660443719818734908212273544635324781553045888290017760491283506696982869043261213133652812064107494160300554782450187897624259339925759934176411068030768690701494475760683456237495191365662724954651711298827166035803205832089406022029628802246109722497373897932829836770619090216110005662780041080823380708000439846829361435895299781318356690625271004933470525697378356515779594397142818611284866333138196767981935409291790489284302918452822269472078761664583913902552960918340822927253047743207239715939327886298724528403913731162204855970018634330884500402942800681755208001652368076210948448838357267226430080058334624477256302895383387801285340841966536348898747390030810559249525167815013991341405729663359985056070441712832579019988120871615486503586508759456852425416448202620186796876816872210492832668132834055321855691739319175616760945239328275442879230326549370110917814268020940549076782333924919179969389531918419208415733973686910498863357587170401223851267510514790287461995022628101064062597773057085247595465011862330016114543796079632654670706256425399562294071197534793787386183870884120484425697593096346532431524285885573214745776928234480064322668477150738711220441759994299466805695464427323494064561573788294732094517625956311629048408951303859476326399743416102646197300022807234534853982441425956256184821896714254387046390822324790577082799335976175902888029988667651492063660405378528129118907553795737507391946130136538618289393331186506309932233235823537711659080974123633110196294568955831700680551284044735847552841647933225805577513347651194832858478538778274426662464746927131791195543489852304139565679871281068346121753040974439404165745381980523943740780014709428167197978987887688633063724367037100030601108503897210611470452958082371558781757264561032696195635056714857374240385430400774067575649288646728969264747878454120034642327213208245474088888276854025465837196470894202007586522456365568180203289554680775905752179734175031964482769036873732981250185803410974775342281768364538058344717769321428197198155328211884355883247183086666905011100803169475636406805207904210727885789150410349683999769918626666244735844781337498573411238441545839137052396093286592310412879619449015255034591379993963727327713126872612943515028243956971910376125588276461940036678865445995034911337705193995984743065955489202300304630281351423302595132331833613023722800974334769977866232373766067607245718707394830687619128702192872284019569337037540667218891369097661928036352330001589395075602103430394379967421151257110249680552798643273399100783099142408429143380538997003146002913242848367250892328289300179742050754485811599523750446002415430028877508182095667869953608130116849498081413373987574519349092927176571998384380773791032625205583924046512524454880704000351863657477186316512024787745539531932934999619499006894900536077076474842659819270717380086089717879153198060993465445675527541542707379599953557191511979492413250609960711906553734161188304179696013154951723793431367924534287207165109324739739546291466926069183416238964812336617788212103035382328274758032453359149714145108743077499176184423878174830407986933616435790659071365022212060410125864955898248830503781974013793424154412922353510253329429722892727943964048370529219549752909840987498647036757214438298966891383957178379641909899093926399179048453712551855426767395836968328922826099718304005690207197764703768717336681994919097589616867454211515666539181282254718251756876316094471801186242323846072898674928208005876792415993642809063012352640727968021046862327326863430397313736673586900338757621160405387496810231691278181524035511493503183491102004833491648763466983303492971836506971379196080513718022719246292220367089118277642602420762004614577164217466163476532907252358589729629653491579958577536069973185919680544582408204646475123993019668570997247210368019057815408185468436596167934150307956601296685669654295198032190193362811402887219289717116614784510980592855943764168129628829373629565369199732473513190469439718345451508675680404360554676044965185508498932233469877503235565204287497156285294030332730652210162088168634309131678577302075477317075051881271307307587513662386013543721112248601073030500008794697083819345938219717425268518142991559478133856221871638412514297071803568792554417526057194231635748308183801747636378860366158731689512291305267498056564051924569087441230310533835442062757640920632348067987904057009589150720799181161994325920436505060563876909546903655524308159013111465288655669181658345893105419473338471995578534039083477602075265062952304198954915542889226778052542631476594115430465902663600286382636772774536637450047059508895371250704427589152742830112197632207212315877080311018467099959072108304430490136170949213604090473605034094651491836892559100448106745139521383068460595367571644467919515158529438699430235204426488172166752496029291476832069999996797693015069202986614128524345187777088760070796037464298538301397366655616957551985798179509703915896928528053238608717331070082514037695915857495794925791466227931815652962698691689044485945237434488603189858124285122358315836527119489153165825023447131511657807641980501226752934408438332499032263883272188874655918914194743846026415786893156150080813062387550280871244176624409758427761131217370461222537624452053689775233428896511219039654444043593675930145508935216481000033331270563679245989404982647014972160394405519881057115711006846167621444141017955429640683629457770429916814584509059361838658380189712160482550788602755073676818805466789399513625274036259351800790030367798865485879641228117329817409232365446860248534355879909290372964667938485731082379714228564165556533839325814638091992943561004743695883560052545250068811885676362803094107615061670669447330674630739463643958844132500924605852780310651436440938413611459192103313018808841988159937367505152794768461151692993066813553835290145338111918016935276999254869266097020009158900278635561374882471830873350250095313568787457674449121714887374437191382784695072817661141745393195269086739515398721078453933516251547842964633201825269849592769048406896274807687406402497462632685284153238474048847831761287338934774339636933348140897259642829498325235191424407332069385826227532563396229306151999622926845256209644799541198130156189683672754282999963823373716564082625175992160851438665224481203232607931047562308059789197281690823366029093161620774496454728992679207634651313360421531290991901811706422974806023671169617021415530942407331618356189275963636460431053032100231026785400621559854269614023618321707077781612554382528568197771779845307229470242369922664698359664064713268762501949320214371746713551698796050103139593540103957550964446512862292823989710586406937336910717799374682215941549209347765709508046607491342980918306284725774404170260241904415245946081535059467400825107416790469994691823605550081307469151766054134188016401719763580210084456778919756100807693510958277296191719419925103202220551269149648966315486023505489984338164788946202984269056640262856481178154590846598673035227508018888263292608776353061604415160524259278802156794056105244092406946507522168622916160638522022833343464389458223426746162799463404444664519057567633093406090057856636514858226131140132544351571715028857554485939804747713865905588027671232850364814619390044885511940028545135945634539249500307225399241304133141382370743588797998864958328450221436640909111900933292818666146377369809498764435001349327468924748621739359873033071640365190657394490492127875318859112960582663685336733939733131909100936314133978523118398076775496778362513981826007368007076455744491420839422178600473533547658415022552532512319844910402404176422431249108663162931509001977600453050421064984478692329081140010691562492765371832998717234205387615755140182644473262978523772280975703787668708921448075872895677410338424852485922971098029049865708855625803849013473232620530051926382999322222433940540141625753902787390787479488828611544785020251542947619219844016510937748946456286708025175243267336394054765259646298309102901431938153080498307136491359632991939835976211756733982968407807292978356769841515274704304175236711825021744471634358099277646168797048664402843201879889294946481869933976322054935170823909163670371484543790282057950770098390798462007313643682854466525423079239335618803526704093606768317646636958364529091341511992088639657458528368555902257162347673082711116804846988336516687286175496246137791437279966133215964116840548464759251734835182662539662074953589540674029008374236884178702571764874658795912406494678878609603418648895481607703531446623370627100055351450261213574105080501770987471458479555152449224267488904664904777869551500962646754387352871129359434243977355456982169221692880568998054680184309190392309113439982240770102581915051628334146040597594030160734659988261482171359119098822765563873625658339866396160831753154500865438244375271431523847268756925392222887333860172132828186946843256095220824805567269703832199956711027059015086551598416873406449631945065015529342593463347546393767765653138816417988110950618748642523495788299113990657681911298679600112718712763597515084496527080403792155734327431124898825152509516480555085096625862388610374382398330528971745412310330620299464553771754373650924457203787594499649272487450131005066092097286190251683713378038813090556186530559100469656851479965888801301834562326203298040585468673239546520206490957897529735045041635376565141412841086847564960542671530312308136018560536599475144736720795915965522492405837096952051446856023333733695315603551669258161410072377445237761868581477062295048212878982419462236929274482147451240356782932607441084393879905514325695282307094337298468494764226718409469752393755499225808763384714877034512495415652359708688278468544895155182324229519309167652783785871447711410277654673507322188255263312779509378585705800496204797711811340972766141717822864969696146060094072873201137154317818908824135717124712289842070082541791169291785180580425139456961399970834248074462709006337159787662551574912583050392870071636037600810958847203375420254267063806097135331324904231078996235191389950569173009651324964353748800480592082754514040956780171043312604805869925210473702843051945864087907279795075090034334286518948937051634218365977544454070522470710843293692085247554555350178021977049155655901650468769975944313829405872008752686254881144912038818842816444589516995584050147615453197709023855329794221210311695086743122477855550015002857266430636103226843365543108408118305385721218570291266005851873906793213084853542419733531960968942174213979304355752367089188615359374903975001041397897626807286357014469643815833377560018860832943094709369884504696444048398535878337153096714875221945489274630012258007047182086924603489840900822041839671731485047648308132989431192532461197454397636300592369227757689360009548836317643006891136703776002855839336187587071621793672922656207564764938006999288044094190039865094528526232968438210430682033363672266260047266968283395634351733069134281562537006844144710548016634462764257860965690880421753149703010756954835980745734574958404600550094879740612963925539046974516277934343007400322711210545236475321652639592574710812227431920410474385708487815581574619804092170065848043779990210452244421230096872577297534199534041195833431584697735426257521613234947670042730741520367985441939680829474445255006727405833733689955483016644312196107984058641270659756770714026496797794490740423044004655176364390984907260935002698375111983833748437924688292229020228137524374986369987614347892792254902779709561019666433483316349083119130970847641322340359032598790663634643241535998309565748124176063727682512528273530277928235499981444073923921823817246349959799845093132290542207190823012420103419829576248064675928860482971320310998220147376701330480841072882843673373875556882009607058064726106537862678329561696674193803897721471779471269089871972083423879947450213732427623133811369656824474967757944159010608852383571144461507130440222480988465014030346359141036424539624113026098508417902412483060314269027372201316067785246492586520808201840488509068873866947827363453411677408803208272293940741770721125200960739036906141873116091367372799393004655291647589860473170818070099791196342696258711051871515960820455567257137808896274008146143402040160674642253478743799485470044079485364512458244249180306435856130568907731347541579190725679975631194231874124330396188477260793974063883019266573197478343767532029223854619544254157726581366185280588448391426463490489030340597856746961306435311871070856283550242368584684898471939002709326022103074374998268775050290956273740528228133589987696433847926742309553074840629542358079599206012826176454363096922843260284482910754090665316007597634915716271943716521736635237852828102186916789352959284143483123277573031414597600113668453009858118992158228982171370424393058264743357597770261636786767007853395280896161192497832285963308030751563343514724522745595114570160381755069818539117363096049467607538480588204703313723485221729947796179131113779304226568906270348065606452148995657799795628934734979777232259597675845929107835254903283758272875502209046317645723600605787374714242826118616210486791584956451681008804505916233249785468882783516661744098396410032558105710023168123687166927925721562848147421380360172733503528988681989174952893306426945100571862470129027284907180527513824778751327993533043034903033648771148638643130483296598254123765203252589194801619197330222502627859498670049205918739369508521258501220763100124128282452512900150117273766575873293839664138778154901485086663283172941359767886570670535364995654947568048228686985864344945795611929995098787895268587277537388855733429550306404127342985465499806806152817615253239215954525704414383502607775574311623324649030536191063842513608245830425090744760467717139135128732809078455254283089742463729351801016614407923146177214072920978918510233421086396425701845699506847347094390655803735966609623753829801979715419499672868679842241246838366700954647594763666005100145534226772264638185081829761703739412930276055384529898907558386921184371969542257320840352324700538798863397399369157442495516538292360898452366776103986802653804807822722358630313295853050654624702059096669599761046398431381107239334198345337887812388142799671280699695198644577969993062370712198627413347133878401740314413308504383137445342194610507685974102562778760636317275740908153456170402180437262551894349691085536487803711050309862726966491230288637848758606324409953982104572664163125235381845500445404932797519950523835014906041950901645962105778199330816