PREME/G/MU287141
068310274492972814518402596235209438347838031819616879611416511770859315305992199036578855700379507582435740527555107721419492444766678305618552299153055886432778187193496058023491958017048866568226795934011864391675874848239279473641929769988687538173755608374119601929931347593067342000493011214629425916259304469050396899666979967405249661181954022079890030611739610864123836550502550769453200467877694008256270905201419934810018996938710754569587968728576486328998183422584216834180623902158136124675688362721494651516559598320359973917017972767276123677223610707513572279749941551901659221971107355754840420358956083691228324679036148808489266384104967111617944514240762762818687488541046506347459976262000361852381383073593777754605125117026963689698955915706670194480964114687329196384038774147866324255391229852980225002217421004267195918724294851324910663958818232367684384869086152916679053601641957320461735278791107899916837009438820253515731611578047012774273639694762539757930572896010710351190022874510691745191916727569976448728733909628695934311371686921780153887174940949503030024759490475188341706639776813205871211496124935628671962227425709627823543574720257984738891126834166709333326584660424790877817013838618637048591568447357612977219620728637359951883386833170645100574295563737025040369591750794934903497214286676778639602334836134510868762067504506380042254044584674136445721791775568528547902889351636978575940151209303644138947746452767237328614992619480064728364730928708661817824434540223957586255439387447975638421273718050741721988476295087992850535195397763301123859891171102312379322586511229800951403658989214384276339637206594337289891505869681504254044476640439798986702510876603056083507889800385455468601124281757220648191576824869794382046949577099655987440156468897627876389430241602636531290562082789840032952238356352034706579074372678607828552671226520816681924476414622681213305118687637787458095618736697159564181933976775251542740745008187699712079821558072752254316260742013252225667239678817760030520607415265276036162935237703797431524589139689104784701231526411625808054556591589996605153282878815940375016793981042952610155065881067522217521466717500095558925315851308613103467654493256539851924009006909305241472529443589689673058983016337625835389240942006659291379503368788669038895996111619366466215625884315069754206062919162099816387809289092488822263461885099339090832564813604910987203249316318477400170399189124280539323039511545793579509059051143453471419421926495213766337571163268553018751098704905922827913179077656747332506165523047625731730443385464707221586433917690884247435530612999202706143161431014010338923421691816507906608816990142906168256151168615453679759527068804796272624934283407260461782757131117465370578508342956752088368800473998366966628356999584797830155546350009137976979490899523368128414638248218859197054580619381240289211906242816065627813797694353609819737688391429158633786246173416283603450654282541122353219296094804359504464528473615826062623220003146657289167467332544416362054496069377758707479275935681454577262091259043317583774037542345268663318985555661450970404398039236346169661340860813271887961052706149659847983697136866381595814739268138699955335620651955566141670197453690781210647770482957904195907963181649567094019916806081956914438142712615216156365138834307484429909996978760896854685162724610753233945284700655718137948248951924754653663115776507352347599039068062879822558014544107245495974455201964262357018152616250752130624465611640281336616926512186667879138395437336670495887341786122430999106983860604681641782657703438111144395105345471137621433529769245731680980834184220192667629504104743362376125109254616932453580436547326418725366812749097933050594346914320774104084077923698740050800201358133346111804864327758251039135306528063219580314998851955468370950487520850318664344264581000423740657039458420115957248778510448339333949336397704774421361767432018239235852786351691270956735938210691749556947379264928211648013009005762701784322591256066751261367588085635859308494118842840888051654416685497172978040726446805836211894601587113411390930097508169597048543455877000867276885184748375156849268099472152403056506684802474311307004476496991434656213536831467457051872313439038308241515618037209848599774056347868189050496332651526166756816950200734495763446390519946381653900871021308673381670787357635693118743494162594708919893672848263772738763093490622329364555666457164760566842915464450071821698760118744163159584258689693815979816537666952285179335121059204442645668170668576942853690855643983157061998894522237541174831828736789693020789829345881278395827008559988621318459207157931681716157821278223095435262214083999087944641976289156141698162612562260052926900618774240158372434596230619145250521021767405794000764880061850968331338639666266975122580183435212925801885244170240235955395859168473183619626902975131969315531478945149425720791978659277545393835471007423235489923852009300922035834439248652142242285666982696223096507000621076528857386553560842450669855738231380786329119125020929406193541171014087002562345425676546866704584956635432292797502928084581839355732729032140604526212614994370878662004522356022647695681739072393293572442902159934550041880324113163915459036215119879754187953772183699100417984754122880414771302792012681385589784327124894470446440275329696210766465263777268853797927363263692099863645288856251478984658483962366825908098178266846270851223321569401672805808088473712432452763481983918365619103536568457586461143601302536080691095169411587132833696773193256318386569006859448805663027797842429356933868148122879310484704627694508884047256139773276360042538432617282011988916919640300537888881488803681041146067168313464784645151678486711712111578294171916599879102374890197226202362320469724646986217480177328186521106641317185156725016219241616679561627690920436825847787115209246344820181656206002072780763174656285689078025418637957043156520198913326850463038642546732562999392547317861029492616510721863793624895012173264086020250282651429616912794029295637591974180360877407843697290258112059402898129351719829463932326634329260268357609447309503138557382336722088266519204872937627352526051398066844024616812899610126628094521893984184553628580326842643648736610984494639438703593834010320190330033593179416582844396184836654923779939963125747420310554704652967618072262717988628016078315455960920563562224467540615316651759645654674134850548059052453303341257179302346372512596861616196158483159192477491362873716202967606878757436133299939386144173082831708097951112750464347266954922004659500791659983376422504200541635003197188480546953794596757963831902141349032280013552948003209729174180336682438948597725144583138715718948066391570220163248033770503714414889267198069924194791983093906586765245462836519377752217008260740542340476125681331375623929859637035749076193417808088048004267470220450507063258611778915947553984494459346343197206405013056493756302361888336452444199356336136114187260149894471694850993734413487424487051501329719311835064326588383053723286102583330734721127122376116101280982348044043907035912726047280406968557406018911939050840824346588503791868928835426773891931061531158713318066886888247434417677273727199148127769797314600217374502301662365283752382027376775679416473004723253563881461897149926102404502476767439487684232212622436588118245204468367568119095370626937395319811105378148151669130826500160173300633021248317782126163163591888869629892638589864510873897638851494847371790847992123068179865770980584547139819831544554923793217389711259489775410567691250988007952077414981394485594215487347470034024014249827751917996954748462196193451470935171763390304123526640530752550514638058169736323761421726066467631987148188619378120619789371316248305994653750871767589147508904160032350078483740180644936590639401844577745929274514942899763297559352512739709425874612638422824569189550538589835238786619025777458558953868291633553966780356841815776485696248754426753843191907537865025850516523613116575053998331784524789394616604658336271120134359072519903687464719474851151845755251977120406449555452571830673392637408898275366664193876997020407610184106367521349264432910519967918448375239572043106424034860248495984746315707302570026496848519429554696309378212472726551862797955952512339691674100593231159383017671170630359190850489982252606966195312134360978284801402792701028531064788276251019906819337158479728786738235971944696945835400157492577742774804767020874887040308507271733455291177089234335695850893751495280774764773649900366682113176613788237264990841445639853471668660312188968336249050650283468444951619914411683158050152163465955152137149777400139330112499920869417368809954093060665700531910121620269538247680496564034194859316804058114595741236231452692431370567639281772438951140395537550146977864321138538167733554755807988122658579637461848663400901892466903248193947564813784364363614821044068675861918895055900050346325769054723974409561922299717491488416845599931173447402153002351604109615436628480311140347547074089675946624284860077599800495958402032446692771015508960450027335101842798112275637616161898022450308690810548775345834222829657499825660051158287753407729671314711461647761284487227138051692796977952993073717517962987615381980160800789590702036679650549882220927264269618274223051028030603007610373324531364741103270243340314455381766143307527721661345057030711702123419662451447093738733859630543607605210572793226625019796284954476767610014801805962496838541412057449680944786879146979229565548226187618254289552964627941771223836301108763012718559931639939576814298776223995439347615269399757151878308228564792953826136900862771077183250651932862745244820867344707740152512645454072357651583457136707880816441149199557233748196696276942202804516586784835904361341920582392161717428350927580175943661849980789032919826648092873731181833609442024228786188598278363531987972915366384196893197938517323192248339851901970415307152885243797720431091422183838114337540850625928370910474023424132863114944781023348211600508933944457975118134592945904239419955618876998736513183658181861649325569011093418103205399220615376600696556668641279547176823514709865957337035572386272991462991925270486254972730291822397159641097159610760111516375488672594292348266519361237808493318012173029283895182709643987124986918148316084248344860125260053870724523530931086139764289809897051119324132255866470071273957488833237379029155645807818776154763765298187083424084393706594615880190774656011893873991105619711235988239410371684746802742292458615659359997525930813032078253789888194789664604016596970747531962844092297442566339028386800704711258017212706644379692165694302865090567571365392726090381082603310266844102037272125335250142597156266473940938474911736379409732605227795632000745591870262055616945229135412575321283537967064784651196338051356267296015576106883619471884265295376338803662612665066633019825239186107653259347540473223270700798210963826540768137632265217955000508231444362837548219269749286321596376294962844732903623643677775774796313524392288141868011008176160638544919112432553669023613231033637557850300809160046551714298082388137568087532290855063218539686857258101528854974693511347925473901819585165872044258732775417083345683465974894761869932946367046880854975684645666771783090169242950252268806133440713487161959056402344895392183631142369768667614765446822533742117519552018852587302186096294824400398548713708716657270714149658774081224391188710392095061686001363433293158914823538427360094947643458102246506387029967807119074972579154404296808515978207969463979407808964621423170118126745596453767067887900832952269207847608329076296318465459762162312378389790927279818149875206819734510385626392151682495763846948317791299318529158025767131711401661372264450794553122046823677068934085028011976443090855726940260031274567211806341546556236066341279753462098028034003572388537057044947205499733667517175533475559115645860630712131383893227813218365371030830496934748496149037349559197669795551995171560490033372913887187524873247165985103177268496852465272287965819734738078102197046606111460027718491361256710790226166602708455466663461726594403392978698124346960429306920342754240384256367766070973107108461171857763318813458129254180084447024401522002778336242013229029849259361064646502372854451369909158139189599953237441922942210888296845256601413949874415385230131406735906403391425539346843528339306795830612929522671884064507486743676563117547431726641977589804659203872118379206494324355348545754036501518172642400388014645848439651676364405894932097985568119305155494427034040503296107092173872014800585573914807037109476348780755460489295297140045383990481428583920805146398237826121119612445666513117712289994788248902626951110973352276823529185618286726920813612191971219942417825970060106929777197326243162146394450612360531776856372232062796138108193633943952578162341758545799297215680491797188719785326026273262261950438042404787758755450743293159919434501241031032880569224399641880288609951972587173468781595022298969214859405654090479312766711555615933860471421053274153599033450880184726517058196608600679874641557456307867662986297282441642932059303318403365110979591057518927166556517180536886770093738366361192806774621970388404859317117465387969782435673568502777712321557316088409523231825878214498042342005266259135251286698810652463326578825747248068188221827735574321200521041987859921141230157474201706868248269720927891370698193660218911380730521996488551691700905489222179972237568254979922694832781879834020163316076621516656674587085979498426416998294176484970192204907040702189266483977710863805906995723936694347614859980586103557634795040735504601312204013241762667550942150852825362740873178484868844295899446654677876436694778776329881876181908172747016559079486797518685335911412839956127219391134120040680284261748890494324465014398392492776338458937187236987963365246029889468333033356345023081686304100764327239070661067881621667621549603236500743580234385858628431115981030784051727858756610511447397454417519344471866337295151746249152200977910655927620139365395840669302199786195347893706840354554896445728202216918582465356525410551484734721810060654845151795165776360558296840305582175978577494815914116440162611150993878884912714353041620310709934380362338290310879415762884718731818389956374738025469077728633148979004109811084951323214235399773219722890562027407845786611719413328714577941535860708839283115515471386015790053404254711553695959658553798480100168391219578410092473276555426207175959910098672576943188040059281322330737654899295729447229088125363435804588901915069856662174858394277183838926986004195499044725714352280169421297270879708506155954533674355099196105311122714048274890893619555868052628173732208902040100009586291233617785010463957540162800846162395437907663078050839988474735685102372289153837493619987677546400756178955129017617545281856756911466582031406429715351289829481748204373985589440449075840789477019793496768878955329317048615705118050470765878782364986168006764967540639034081462355840375949760251291071727590894613894397416790097000217497353814657079690350588289586421913384230741159566846183148284774624006068935555055828422137654194764405598292414796367798160244245568111807859388076839591912842277654890683334042508461777766640295700666072099721251384079281063584784762030813000620611721091860384393910113910795556416504575435524507166462775301090437148594480948068762222050686700638533569477736990998986458194591728601992832728506233856073033330115265461689996650077550954134674360760815199501143908588326502470035105386125534790904123797544812452638969370170716570727679973404522386120150830513981727553199998926201504842120354262037775586006284122466495213185366072738877730858507686545696213113469735423719609484139435317511273937813179329185391808752017540552681433736495573416809909061713931637494533701331563050494254464866794159888616807739266398082627756959449458854671724800677488160218731283700606404465527199998071342298707670497363323005550075984736998297242926213476517785644084039703060108343794360220957777950346047760856268464790307328061535811981032403446360703878520845195316118401856219092100887407198210695576998567926703890860414587067170644464524514391151279545547848124082538169558523976438613911408666903210227429513789770890529483053101364521349687132073918337889496947815761395738079246936828631339009686175715666998653037395165674600649168695296932454370255176815113399967372502489078396292167263348458340479912413661009541035989645750734183846781170808934999190693679632136125364284204051598354656725211712757028612592230369425962991560641880687585141355339890737018047757098241498680774244606530033791661904434126191730760974909224710279188307421611948128267292106157073046512568959762555558754151367989423522553893209477300642994042302193681314494574061599013251574113528827375219169744220462240330592726481265501536976592999330236789662813820445875103963727992267347242419907822177389308614541150377977144770534934376992671115215021667496976780917291065022859511502541371774462895492520619818616387591244139826067769405807266434002978413186568747000598188229301887438474891251292748375041460367949513335604075857023876696540294841242997287601371725344633931842820974211707686501278036939510691057173520560812821773130375286419192618183845162638317367061192067146159347805726169334983982188317835279870427816155309849328473029071690346403796144624794406001882163216308387216388151778172972196567298326065874393406317859824113597238752433451096211634463650521818757924900341417507726945025642124019717050038680986009115526451207249190345558619832038424520278117052651450870293229813046340705279580233289436513256875793836596641242107837096679974709620574977295510989661523421891310459533394752448711177804718956256888751741988395204105313026025634076018463636452599839158943712690815227082165009945341879364231857583399040936149715910037344928164840979787167945538045298376620258413809286462895666599291759224862798716415161885886312222089902110420353341931801936902522753634365769703226381855330264804113241903692830402173500596391738376697135204633826833289692352176196056697326377360559160224908116118266027014468204335460274767780838940561420868934056563405953561721882697490406707333596280165321832941664993035854077935071065521210074904120546456194556848227083925059888208808411637870391059898069656702020951860972672681565699082317296127354557299062155329660168780487387046577764083431071189260000521780587773594301405563946937214678625799668173125082416568677659970370091449151994813758865906368961389462249202748057371172859560586669591502974627800230407662057517548278191798153733572036447490696128383248715057148759213622563832611127446011440595784865443208289699995907342322754129684698598117815704147608983652938925362773906744401925694465660488595360981662902648630111975907959175353902343130986618932448285995323048082057362245530148944758633771959533941500376182250581056050133891349525143198406646029060312364279560180455118200762035849377606880311018102007404654139172480916552727901872295943405766255757490128354202438593779804941778186333997332634482104249836941064553496485458853547652886539421475483696167772403466539458479638926699895006436913411394229545746305243076039886530184213737695787243932356706192328503332121149143091710146875085979584044767352257879738644850114114144849027536937375073561623324125037655934297126288489976345309949885267872905606036761709572871878532670181514237065437751991711439015528671412915555362064325219186067274250828160542506705374163625739780757192094337707103381057211131612599646521758645607301807588308396343289514166271803319641198242920267767724602634149406038132498992377619454306515981024911501219012091859715654810933132399826353514864994438275141755200418123406461001310229076272114067904572207410854197997515482514951191119603561982851010880541895386544107426480806512227790502523148226395512973540904967235114504938476505031743455253895818789488862975937577992646770974455441688126240937532113232249418867309251214964173319375563505198292695513500210656878644371766693106683264600190291291126468982630129662938315788517269275483866819277912591533848300429375680896260588723795389042191800840606994253317967499485416253893944671891132143780117629094283297902472985406256161091405904007089327229579670217800700018560667844598276864725503361856731331853916239812589801972924687250921990786309795912625217232152666624982547831446636057953191545482400611758698393519405397584168659937893077656572280799092842718973963945491185195828108974119493323237112100844046115506800303690072968528211172043336208608132336358845334360800469625860319481363186095487434655461773903774858339395231579300607127281554067223276388002780692041939894615398327273697547615178523688996948695587914530485758453160860666840257190815928109705044720504985650001738652819841555032152881776547342101498816330520455977908292803126825356040436284812172422412998419563692897127477804666864806533387900488510870312012958444684038946247851536574250011676823874642818838685138007065683720618433832005122521240973895586043464406732576835127411570572398664533123070836014865665915805571936322525172702207805173249998125890412890522125113816352519284998271609025885090902524133762455739160074118693925725483464485215972999875221810905116308288224999260977956695717671817551102011570125800806694169124574624439358041401541290707447662842224390598270830756510422826637715704152044227132650294879405033024381288641747806004679669901092038729696047640758478098364777023933839649154645510511339821848051746571394104681675820533123149243820568875152049354942739025438085366349476951272526616374639261027315810201454956462643216183435113026552160008764915138998297463836491870578491312485936314001449480178192761960117834701582768897296843002084077663187841122346372805334665777299032559995723937784930031966815783031348760056546058018815440871673752200323840071126843889825603324707662372492411919465548034764056142975997301202449556287669794174708712860665111874732075319866803537104453814081061990106491634519661093194441944581509134709924125894199119094441754838202629207587467073056572725987095742237877109646653618846723715307003784087925943405582901052612828407744566674197554261919573718300509531726598685959954257368320059790600844611164579454770684123455879100154671308296776795380725565170332214006764297826946469244609242592829216363335970452131631451824375741063131368533276027319844482946477767987468596113323067169016629508486777538682392139211466230363558439538855309675716073851503570121276217485623917077348484350174760412552430884714484592861048091493481065130427173613298034554890001079176432038779290672490049519001105880925189089784903717058143229726666653063014723550819873353972159688237818529390686055814408486086639185899282757369365791002631202584307566749420008791302170325484478332646640512498788198524790411360229623805441265750373985442660608418718444946120401990587052975181412699291575689554686927161425055086579570599745884040789862584232841287721200193354127458911411330450583655936044843617649319436930554747314792601642275492207206300226533745008546055858800725419231104445251855549493702890027074083968078910872982631870747812162148375130414121847504320018348451467914334941989192759013932657779298434731328930466910041005961577300515898701936240645950112324698583911764068642867127335684954283602176427106685073066480425297309413865107412633538071097870891178628708156554610660874083719410449890611195400636918744081595209782138594113117044127123782052271321878114217279113133682539484869266530276853613782913344174070985109633729580403225050137790279190779675077832871366272515290546698819865952769626998013926829644891570920283184320452676107555043118085909607634534080055170365653091519722127603017532292309900545311865021666680999593104732833038004097672874826280737823487304767159894634581765101988960659479254783634547636364318594390786366141525754989194779305328143630372771862756934953541604139917727385484170681844420587578025109098654522243543097551242952556986463720246402756402156506386050102811580452173872014948061227319153344625550820354956037225742365665271554813429412026592773294011494228754359391280780858340698302000641774995997928909256448148106877681968016094068100252074661191762066808312215541029664483355061972620534358421262941615755014533658495096104889269043274460965899517635022958677561812089156316768694926631213583065923573165581450065992321477741441628138237200386865911398693134818951567371371293686788103017659353297359032651721767318379380268824696693285690579941908387797841255928426964606171336068617170660120908820657490439226263709128928267737380617086545331044570447036570110207522371197870324846528008368285223312809618855936235922271338963674548180036258047004171720814667422814609547750972334511316250087445949416064984695338991904491362331386713510240104202610619954385208308628968812815253873885276304119895683777219413161700369540209089822570228184190885855835077193310899726328669269806502068968272914190936906738079287470184813746595367075843494893494474369607840966264973823120962140720161201391315474465929912411471553381237120232327918800577140483306546220070382206940317933053726368978821689136722768028385551919322148300433429769863526992767035657527240347329607461325216060610595862398415490621079409889017447820643986163777621852168595940305158497507686578493506535442290665220537967688804636845371499999265750813323637305506880351618991564182322314052556072771237018788700775894716404225210729313307082877284361289119987742261455829591250707077146508935389505913719742307643096416696143851392861070851545323875441834922942983729254642849126064224118060090653029717386007623187291058124328641597272115375939806813723771415013043237966267757974169302612291825037400931405398823431090180845041029901419580617873294611193291921999627938440680595445745025341173091947784073732616849398724399984305975648541740734807902302088483754749210495165197716200189981873909838132801823383850005391274830630195921864865887495389059695358269451763347864458053108853112999912948372938426353038819709669829255252263235476703291611939508111812919359485502536159979065368494424295549463934265029405769922155991688312434927421367832319199941439389850150758192940067206050026680266753647517307906526472286432556922427875209620891037954710746031728863285604089263729194166072288080034301723030049440740028638103235042689034843289294544375863401224297853262261475173130118629269937671132797852308387730120493373643000913417186554539492467600511866925769387765790794053484600331856915531164509613833506334904388162626868603434989290670969726931777826879457149643699581664976924761911104686617318390085123714561349059938132758608523329322037199235133950980158058103044058710741752197426337748001804810629656349083508398919614497702195373477380658279604679098079348302016107335983528197726133629033085736073117855000368689466509091436100368552196299337260076340623739914052298352420484891109947634065601486324887788414350847351972198657147945415009302234894185212494828968805277364554275976909478270582986536001525581306702582996019529882679733955112604499946603227295773644284945891538631089308179386764889837908410193762604238201355536758997096204722243527142086726944724351548220252926342972393293496919774568230972639036123673004269554417165222972625219818091739125407489059394176487558767052163117412771893290264944262751299607262753483732568727764459592508493830891965346334132900700967437775189767583799754671012864008316034119466378373532933573543635983171716193088145864196791310967296334345816873305709988279392547786394822370615015255680585847696685603270294140437695990898001632343570642395262814726190915542168637790619770378066959507422707747754827940242826263466574735830233638733423237006845105645152963374290504303112630618675664986316776382973084168461827411989823353294381270804977307336907893042043841397081588928162367681890599828056752898530390734202010223533429801512566525674266683984494243823553479564686136394513535049988468880259137379247561035813691830231623562773017616039931869903945278496580571223792900663939215891938572366969423715830697964721288459346899432682097813989427501120549015218321612664769454011401687544851896798076075135566988757521103736397981374190218135768004727943716852837172592148636403706341482952237873836147461508506418053475239894913698272856175864958900852218854987760555904518303041716949499249536224995542554241755479100606491033315588879490300080409935945231180795864951097225340073647295219685296262731715343569558731085545017036092086624140211901442517003280757206195655696391238446321714310837888768815816677766552096587342609690802731221332377310332690548611091149248110092600532757677321518505866562832409427836638441904099114825091602342659586718063011398644865957554881662927729540824542278005479687114509149201095504833790824426092235721269398504775911021557057513508589396125685636932763665161348034761063141311899670755174661363384246869881086135597350434305643040470682694883067628205001967751254190820699315736362822034231602789256640461457886495887340689639714954967889915590477156938088383773778811685991229217631756478183900112925017437467313053414830436269263225096618588380036269387721068666633733309950100428798825081149229704923681799514619657402016915535087917013999625593559737395929698399652543218019692901608607480671728032572878281979839440505472257128021276198900320656002640095726372158787523636247399925807682307593845147085910736044337671146803611624920955442299237427048442157124101890491988936934690411488227846441923713956503820222059668521828986547323342017788827667074798114418131244270618698457552201757930639050803646505708673375665892745380455479418276249918294377389835717926124172740660230082180395273530844667564117685578644362270719243634656422908107503788547331856850923758747849096500996007095965584138887634100973937702295160383598519866418723022106558748367587298993262143936822755645043865607757268720309377560725349939322289503281861593495005399249377737863800240941197741338200364023844143138638009336158084275823034444065830913518364496106495426278810869243725366931296732839129477476275461231553936682369124079370783843318606597850960739150387254510716945354214010707466483351511639992909972018119494726011958804875731764883774448200147812584669214736712002698844382883302967868830217918259740662303442812008861372346520905122552224307287688220802904886301047651296282266117208087308624577074852947076289074619836778236306681558276093107718296319401156623609999923630023191995735385361375609572276429677382612631590428380282340335960560919897833267111683545821939735877281614433532033282111189936415541836505155252657472468696185248544763234573263954876899760135397036139750615060177576338172989523082276846445085370246520218864916132374874445043658478288231701694179854098371641550377295602213587986392577398282502105685242467119160188291088073912786222719572991841333148160012556361502772826510400955492875291039255779289750755053331150638535812607344007439063739920450455957741938717714247529736997363706411546150561610070750499150349603994122790859979584861136541567245541850291880471650989216130251062003330296792705141596471175168428501845968394060372447359840770629078358258807212287387641310562795945672433916184655773307638266511998598072241281666113564079062465948441341395570389510703932062151739908986920859848780630485944090836492518534821565326845657267461022344300910112116698599934389887789954143217941115775698994377105579009866549258923688211687401292364986795808142897488728223336122217477846031352404393484247989785026070233750314422104002284281491868040411947641001045131556825546731402227887996100952945452408272322026536158932539893867350578555731257170316089161986215031578049261861150372638366153544975807527630993215000283601312207193675855614857158352382094695851168085073731707386240802288545358504098079165477749133182086004447210175106800749513792089334551130386249749706556612323986196683441022855014473214932887901247892055064510548433192335421845554512260792984054217087190420651393914997452092193038835960304798603603594277401731517284039850826800056437487204300623732212297012647775317416953039700534819265066806201848132032635850310308895966197679316906853686442861724250906143572187672972796721789623475402637321010025580787090236702420397121635424264792193947785563901508463123279344136974588528044177049984030594136192426631082626171541723135910329216046077048342935737014888782743456991527152406778964172396430357817389125529288719460085773156717492421709547242692310341391137004971017230456640316920344976090159157800259068343620193316949687147797907014343920368886834755676418867695935604579091826830746918418993329925255023509340296968833910311950759044131273476875758808704731112384669322053296861998792249613105317481028955509972201563519895969545287994385109478268137123855289376034471025281599507766663142824477815043139047003898272153546544903921807438158812621885953818095229494813590769986423060052496907336170500772297827624073835578425406593365695908088149863571652179093888681601301376297536658724615226950496507127510586489998146598356667196720392478049415998331169217514706770727447734203698734089951571252398725107321529246637743515328129564917508817728853622535698285036898980883035239380537473941102367328530000764913608564339888498555402515731961546609310318079860110528248784685539871357681532228921176190787801443890149908979233487856641965275736145483165297104356272894173125348003033331350005089934079775870688555690221462472691669328277089840625672840203386223904636658535584130825017354733479508778286658691678634758413060161962408252362998246646662584924548400989896843573694421122544829894864733439455738061227209619066122903407445159509047441987899489625385539575575688087204764395930360698199629533527354449778723043016009773857167295716967778622935952907660452562973493945272949640354700287268131590724306028955433894163158877508213493906032295975124738985465577942881163019968944132655629703615418617908601444187914868360258304833880256089561554352144884114660896899818879683817082338820633608999718637993048865561510174637579205711240272816562128481876127239391851764385935696066470612388660340840257447151646138153458337172328228766736504158668386010363804584953883025255739792057818483704470519217714101650986589802967790691687165554287633837886003998353111123915997315030932503687476422823894153944999133244265038210269321336413005579213968132465835101649828407167265683962909189013299260363061690888347089257635245508888614817913795912065483575804038191490914003209697077450964730779913599822665465665717296470766453484699199542215695097006811781484963860690807680391222996741832095715868233393936764030134798496551247858470684433764690867453493649431263478316537377113674001307900973528806227787570833714221523746972199632510890270384887345126760603811862302365247393039053570634148515711775929937500844232701317367362330495878757751078096513722311805574481137970309335708398049652976351380445805882217779807748490343341695505504971961995194360294431314826621688517119067201964655572116234627803528694462598349265848385688220411598358629059935917004746274742718576661302174199112349887224536517062957402724840900687858874425378894106284436777844586566686277517855689104041631120353668508504517097166257694463338236454739450374028885688094359115953730952598715351665753875508056733388078616415163102304605394470358054317106247915516715587225953691925102139313921772737448283308130672670367294726631104562753977703904320588811023585476285747798663127499636831378240126485834997879928152801476620763605713295976055580583465932977242911297686210782448190966495789681579765062291449913568198615316593958542935709874898588172884953933893997015701723246123969422420443027141171884108548690798401800741184804084084832081027796909399170525524381897504427586301054876007231399375126397788395674682713477801355910182115876086932893155255500935867471055936606941864618625051279914823453986542307329299927921150922876420238685399825157766329089887737474510409048396437807165080388455540813582725357760262878584756020448508420652726528407523999787064299650714315932884126017040522490981193384708723376979434754611052361354009307477404409053301597721861593865828134297327435823124195333135262916815782508027105448810936729817202156449161459852539789765368638936506300316062698093406909358573008972661036959446078282008527555901024542751698967468775648095590531710289901136843670308891888396550235018859477645766693765921612241401884217028376027742188471943098430271759053957531249511075442389088647949722520376290122367420688385277736257541472268938882961039998648821867993420760708724947379615444666161292306012258542211384842892459430072833674793607142139498928706042877094981469554045790165519706632803507294417690879886908415042432642034440365105348001160593771218949524604475342686094164486126464660983093953787865364717662051511628028409938472223571244813402363002688746657845971411187286251273494479012739278573605159857255396113573239225922548002635754042537228434927777146471200952004379001888298493118130928470578112967089044331379883714063685405692087654473906534261054402410500302585375622113533269275004620905970135033837700530911369503094127252226119680039620793171918789855915155789285962845450905831190045979338582270571756144819465687488933543351131723479633453921753507082343399098410695082333634634424171955339541504795010751287533098139874994549383655372000136496265141790061203663763917814102729975035476408267875058501627473607295286236816797442722182320731603735756424743005802299354826718803287359769665954814255574039244606258573903120528914547488828686702913503177636662165062379767728700795922482487219191161275325110927083210907579832684598615061273201295605610810628064290692942063021259700226349574094339470852156426977926211176824353445102220637925011273273237211271063123728845682955203828415169543411734291999848720323438687788523330776591132269013800270699625579178355576565031212220646696050105946801120363626980748085144043990265975852521660642870830173075116628542142125600762540506518273708765199709781790975786242701854239391593565041203672421405934265811067739464843192411633796980776398670844395860571273997873275026551787846747279143311187761091196314171527665760966281781439245877050836849885710320531463494917799800158868732228826124436523065400958987340589514280018256777725470795843747068993230265166405611801068392512967667774976723315786636775090244007956292179479353713042618691278634082555640317442693247428697954368387655716379236916066657058703198788992867302274163873039200905814848684994673371825106450014409297047643921225904460536065743312591508556715119213265739630784959032202175643355621913685148896711126349303818188627501557696973762935584551562931703255422027415039946630907705602440243999758913777964445512658696526110587587282003733097442331123684725781447677677253038376415771052364114981888894264126755828243376060800540006986015820492192825318560748936801782490663714628556496377238850044157651783266646559254540899866338025639886050753104610815364730749086161787629373256365066039895892319109749689257722145612136315966229727610494450761636795377182598180564426267724683965734729480889944949390061328480913982557159687278168753145459386410809202268806857010313385801873309231024553081254645477284136608814778958265108183129941940874276863203403746993899258963579869266730867288211546085483313746419528498957919130241214216122707993441052668486774986587048500802725936605904584793673829950650092127904602699459993535681345207628621991754666746706192463404863620063086179564896115312976259590103016142484367070985144077046079659829386066303960273956881606750061627851959570321816861661862578856600930197905112515112886882921204830944200996390273165820293649109096976330766470668253780365595148115646937787597423106744159837668894472761512259422846208074572615734324959231883002256240410158832932964353316194646028077816198390682817041539298848329359705392328447359304908153761379685607321808656169499474969197541445765018302147344322659980364673696352749186769912114042469705895480428620442439432095557180509510495941835126088630427729499165358836491134520153189640547251781024290985103219771540169896834146704371253658630106769873629292897832036802124930719726000311004483365060721978633599672466193645512322418793867343289845729582042708780981211630538493647921806315861878876107990453555690707787352402319112984611750222362172975810609921210663677708278474108481725349080401994626001414627471202184060545189592787953411808638566253997773021609828143714677100247158389531118042798216395583858831183802464513652958195639152362596143151543958536090235728236585119945491502496665552813767151924238128312699567598295060819658515051373080826999976403424272480457431839950289070107519909004912790407775257771226167178818458135756108882873926035190944615598249732049288703965601825779244970731998922571940718169260871508374465851139023903379548969377376868285692833285427377762505125394500945289815583438520564224305670940187412697720378649532321247666405521653292270888001658957552044205482067602521084127942784765706731274793080475166920501418235313631807360513556339839837694865832666363357356591977968523113737907058099740262308317485300264736107377688098561816827432478066843789861753213454209096173046068344275464799068396042762101469526586189051142430612459174868644453925576702659802833249499539402900395197466600439203832593369443691886459619598944717663507603426825697878256707814729336413873731342802736370453662251228330131000058922247306154578138527532107026258329730918083030656787869179510400670830165505806561433782042574139334005038655610044336806865649219330544809335141176439170662382937423302338891303161335508027228997430870037824837904486288739325452707903764224649285313108071595858257994736214612370620432135238186258030177179351022711355255928721143264128538487794169458081397682238668677597197821166028264110563693933142432641991139184694377727437503144503729600353278578838824020579786423785761722090686097022746708576837221567286314678247542257213591184498692060712146101811122420453741930531022345120342946107673266911724959764263420674005741837082502411514025514846296871326469743338182199411270057158048739943775260748341839521155968762771665966399931124477266454736569478259224123624377066139772822960665387487136274935324426215316461710343901819118219386985666674736028629192299719832166359052943740613955579653393305733176366123437726070086266715231160149355538266205939989686751538569808892655067214185332290452243925122990047905660607604618877267794511460198353749598342922091894623737611671753246333887499506864507594930809670480916103716008211976660886534322468640752197011181010379128486809597674246185927579926240410373993371617469454728444434871800052115486583735117591614750374195205916128416293536165390342284772126426633546282458748908330673969369731203968531289350418765634338377058624154763836588022669719393107305580825952127672561311257401885109841452996305953759182733680376419604950893365225602500561054060190630106777068188060100765502839879916474737512442512356347504785448871201831440249806204993548110427437385728802110253234387121766439601233801319151807428136523664349250941297343263660005658553400560482906043603395327403572252570850593546475098057700017285867338332918252680993854745961177601819420094610830315123552960213578221613004015524574976337481179279407809959543425057719575385669246039012743552696646432506590495052832816567910949370703474246170582943837549856720664547678006187201709711101601168130865443028359849937013092616608655543663974265213628856683221035594017852417793409950162549292851869397223325606578238151466452813281927451797643975339752548791506311102224142688194718390593336919203381613469432454291663911896142540892496820013583073929416792086025468825932412722151053406134172235348083209083874932463541092379330746237145626615990234590343463106656668646234099258622399369465299737878055994427888701354643682331199190780401041207795477833257367461593163900883585842366309092295258818734040726203172640073322284524478374309410850061319002631968153256894968495319274537720611315837999469730490131178483848974390502396877918937450114989750801268784758454240405085390581971115458133558101460196809874536367676912661601414390327280501007186585362316103651528464166328024911984229037001172417216337481980343640794355767369056418948150050461369844974036527757763695640653543091463263874726231314366269114458030252210954663789924005621193177373843048868212696281165766349711957341826082153611484964277348932869770617416025074072568512633646547111614236724310411402453315190445996239043685909425898233549346955661051119000520135139596368900046761566482641031404424600328641025539571933025250342210921689539651721846015147523622042428897922692294486046442773556200017051908457544627059600712642888225673117812250141494897843110141184581766199799065878746596329133490074081949910638707427120511073067512814936724709743633628811274437587434308728138690394954164247406511662612112136872588997349110718111197967921299051470933118684122728129079755479310184700273732228875834817444922084530082955191089475587220365612164148462893831967306913891679306875428981023733426298445340444520299468960646982081912859495041702510725372248906028224695161500044926645740037576390971286142674642589960206981711353262629482239604535038291945061065489350151146361512843549549173307605560770117598684045340342032828009841824835218232491075028847848649885927781981562312914072094195236865659134151364131970667425182841283955843877562558976440219261298443087357607794090907032461474916327193486788329696341822732735070104744745380091656504464947952619400363717796139086948837273216844079705470001871335471228179098868607513670579019218718440546264425942219327094148398100905040336700507611133519766326317663539640165635253950591467348430564008889308148687458418309329405116355013917161683667047452808213622427518546094986130006658005566693167093525544445689897922367744163180383723868460171182975069942325779807151560902470222095488173135159405754733030388704373594139866453830560698882342168826042345657027770068203535187970387618671172297826158706013316953254646739098440317563697911075382417927217198106147663540704278593338056755943412652454606947387937169282786508619512328417637980393708020488020536869325303281501749983470446537295530504804599680264167680276359815785295466858057017713371254928769297174151710690991780904874531200176510756337016571324825052141745657590223937755426253945677016592370046439660593820547763971212866935242693662817878232624746754978365127912044334690845410417981352267371936581804787501807297680695524762751186885864686602740893755427269060960838475106162647877544701101293143893272716232800217167220454492809742324097809128918117720646330592295054396266647716799124548620969162194460107947358076433233865477956929417363787638395243089546036158291276828401810960396372301146725523121601638450700317811589300231015679129554810170588213620349054480215958249747315576446496751675340682760879177791537342112882916113447590460732092299770757269753573385169955298827399231592882034954605391272145842597684491896689662213498849706940091931897841006011080132183428408094675306005110699538524911271602915590231786202857323127042083705744880581540998681855988168427394461363264335535235542312162663121165780226680174427130325364880701600203503570962187905576852275779620625734896872277398377314571579056203677426196505852476218021069643718598043984812715607289490710369954371521977611557689939698383587603826852780088788605419439046422830453614013666115340674486718039718125544469322794878760215834712251310334430246075117264028393336044541430393496605676100186306262801160990310046385975190239140930302844112536306723461556798341593491275616031082070728159802192524034167066507073190873413846450321482464941383278722050995266679580827638753246589972397037432787046112113680123170490252735919052192799704614546451766502738381572125190043670233695200034937183771043240660087551655322528948510739482806397818590606494771579506540773370187365039349827144208473540052821410785449342923836589762940410294926361780208397710316638717784101309710056737655874557783323363935383284412055063149843385647360443497488259902477858627632548353680262329130198404113622904529693301548579798491802602832945400008862639571737603741555402842325685755424535990660559356471417302116639027183587239947935883716975781174839932282987114485447485702547898212792812120870371800174536598590351734065906353635153823614829245512415738327153811828394966202531410359559983455572208631213882561155021153902568476065175035014288265175208660725367347615553274124919966333781910805815631614253808752201832262306324679247056528800004116732102897465263283977528429946020414324382538878580612320396289954246429390903069036984051059470971205831659490684519889384988982458383820286057269453661911912417949664137743651265829070368057529168352399325479069349498260065818998196182015300330679979068945468004230242907669967685002123950243208506968440986504775404281046041919501006954389907048379196551266106609938148720658207097453756359456793782922613845519385385044231039836195166128022413132185733054318122984293420956373164132731595950906664046765025964411082306511249425514015106060187305794094917268980725238726624347269654788740083279252872902671732876602965663671248862138668676252158015093519708955218256990797349130280324289213518053769221420255710976345253969482107897232232069341082950720858659807140317348406506537179726042561673651199052501242113641660217803952899755880804221556653466219294858268617150818040143441477047993312272794235848455330966370364296305857347213083143699429362206410882922079410387392851018526448736178610690445325308803172270481958678674982634485294701706383268807147671683060483085702037547217453710407753387237235155064136117792344638322655891711456758726417505311878933160863934984050613290652019926823232463536538270181548743659338491347821128086395778022099267207084530971756266127723615883483364684641673674530871600182352706362350082134018614580854667085149000405469548363186880987853766181388129869268567886838446610129029258999706301018011093412867232764837050316640185794664905156909992186783240331583483754728659932487150500578026309964572172777099364509207802589450099199534217932845608896619002315323370092409218696395590427885270263864359758414482725764225891885118052935310551002818355527836731764791122618911295074587460597175212599754833240596799053678795254199536972104694910637252264352498747020666925185868352180184512173000328383625498189632548596521731660879114209250377095823873818889140738813276169452264671216467722168586484570736372955266557179554068197680189065487981892046483100548526751282976001103950706351568665627195481812980488873640877426131107652239974739274310001584284640130349806715542750271846924333415930420289825432174615239522361095831367763152300949959288206994212386750727650838142335476126423948348333156104858956055186910171975981354529565032358837166316512793869361880403260518651928106343577869776756800696453401348501588049810033105300212321591688413706272188006663972026515693930015730958276425047991480550407324740822507449737256882509208615602472792419140803621497125132604858545998259134495351076938097498033725624944448693906018482862039079033360005927822728002853839771268820802287772732371976060602550075744624057235217301507732840870440753194801136197953000276322811974868852710354008182834446589946435979724544195317430612684573633333306956415899268001021499827753844932683279867557866108392710976239335260571004506243473741752554796844733143217592276340849097424225616369978261258063873219674291904767222369189370817587196163947906950590545071941103786091401516629016244917548083289611614051913081182020805465349409510402948379554863726345180385533357190111653182530797015739109935527818175259127013184074765337710724770102708545614577495331307041791379531674595405074320989084694118314795746166098183226499942432360091880004078024882545086077921621139851625131527601626951923398887625590536460841381473827656941141029539223131175161152414969433211216312514775868533690236175917011404361280340803963250449859121127868824966892626075663332477874300966811303286362236075136963213014145367426371818451132270257570071426336829091794876736290241920810647924999804641659495782621630638468278932089548876887068567529727387657494537319942789084724878975636286395315210531121911561494316209569028558739568993808533911098359479712802082651963177301244634831169382213804102794107864631316405858754922476665130533307866674588386966427487536446318673065535541794666912939238361368471332535297922820333920673763389792006520494284356991093074383518870926246889312266028944331238951238898114696762063350738285021429314605144912621712083187269779380390239296360729392753810424151942086286321733450608705517419213395384974226355973704215361835741334021638771026530308297283339794279005197522023071144280098395954301763386370033140477212361019618306313317829696022841888036254526645270201269485004334376328476080231111764104774488725635763423855733980801665218602348201275050103995699338600017191809484789025320816154683989977271126727434657324366879961405918559779810057995682188606664387620878087623375444670119488828394042051351801226055319643997196844009933268372088095111028450538463909579488817354740478068222557946918295073958249363811712863837810695200432925488276561195899884319009655005599868816306858341852927469102778782555616062011550540109191782323188292584672848957319056703761287228046758326847086333171497048890744479293451350381367249848062645805432897283329937653431974840071162446052905474879451278766571688545592110325715115127872759071459373987674019345550331028343966406343045818444731050644049116567523788268678653194981587519471724076963142466727099532889529810432460090475220824515205409195969931992658051955322090551413452759959048623736587356981249971425628977635007988252557052495101772740901777155944969001539648975740215726749561956530432506383495603521478539458681127529289290578530612971276271188099221314856326908584012697390496481985573926100038928779504221393194221709826328525605997092006127763487189457908754306305695975242932383690388024178258870941036693974008937248630134814326509550398253364591648749298427933630502068387104543664440637319217711621397335601062687072421924998373179533804997611164300978613601054457651088343473596912389290596211424187193973305353960208341937825557370448177256758974276840521978259769888882132010660798912722878760255682617578741535071452824809432704286808887415220976930919757571789453508643287166096889316851717838153449544929522256729971533086534254408189298731326917566829406023107599978099583304884475172188428006949110224893417849109946304256689473488073110543607937557118319374975087315407324198427042752188817458038015865348597619965052404854434514432773475153729905832541538662756485345440684378534329603249472116598073873913955569522829110886229022612551550255245107352130561311401511384824158578752565140822876325787059252822167927975126237643252103961990903287295212382788192882979116434637429414181350823378012228991148051117603293590572400221561158971708539002662117385876424744414346910776329502689669301470426276548310469115970376872768928425660605546699431570740649388636464520450776839050351965470575755413017226578374990894962556953236782748137499141558003941458916804719646212179216236612033086445476106475612164886243605830166199643549448380124009453190657281417786526099640657293926044426546320096975216244290518605842284355757584640393328171949793921955228907213688208041872707503128342972982242707361213458679047264331733997895314594543082427579251175904800270153817825927175462759515948220252536012424724137259297305167289901617147638674966753733240291354920066524187299628618474201850884985102531079721400037601526288885366334306610551456095161439386834916412866302532920985987990654554525842580799812473625968515445062536738342828226806291040201408813025002343186983263752640640794180275224938140480319866229088217907086681017778991235073144954359090256309778632150554679058810078092425460209026940371970217450729110301325284510063360105425661634341236263784023534086499593318113200633715923847852449158717822637002192487221069405831407396007869244539521596308732311262566293027531985572715719482856797167581720154920455601088560912707700514255339680760057676446153259099821619206493929082901047920566195886818800390942620588744186583056612567632089525485363051598485552583903199144695495877442635699236368472530309902210556113299915001146169947933162069519660668714292559597229294360160385014261930869774954772453596177185921856552832213281230921367178514677016796914096512818104692698202685235564311293024334215608939074003733819314686508366041082091402143170741146146042547106560918650283791259678544262218489226108970679366951125190344763014368131014564908717982300001606643102759544528213727766440208455740887071894577569819093103526938774377204580715932104738568538840426394365745148794770742527832105426212684641292391235218075766187407716583918976016298838114659228815220206731647235363526199244619406866044917242647488969944418126808024053327088859472621007072961880829430607095436190042702957532669757469890189219752343815473098670658378448672044433124643361021341034128985420984999725529762951290665540875665603222461396175846065831754552691349773382500943602922970119726442087303244148842091048291988370016654201696583211986761313982253114594239544679632791821288158094734952104409751661197701365418400691905217466459197905281229189106344606543590195554284369868452098842002753773814527492373114694359994722445500090656560363319016782588823296006597753885699942008023549673379827091224971285723716197096657525010874468965431732018380300063769295977970134020612663530018546245711565993287793631458850496379691025651775706255024244767131156712441601690827183415798582345511184510390693909396780476506155162920723069953615294081498144688481086942377285264721370941099132389503701219227667146809721318313333891978024116354020359050306083901787778700458859295361695734741535573690657645086281065388934129740834630783678451758368885302055737439232730082560354031522563934586636308104516731430177594311986687586807124519835189036462470791843405354225132371858414244621991386713046851653290603259181242726788739627878201409210524032066134684440789497772212248903681196325191826164309011415255675709720681467966238350595708848345115971384695682862425287132099118084755114004799225641689516790877082235440839996150275307162260194794185266517093680550184647963780915728098016878517670623461447487633840878742146027303529061582831215857174730963083165661900160265110657671435312115155070203427990785653570475437445134560545743827100989846792405149994481164757931386302980705086972343756801916722297545191515251812765334005565524032675270709283447104678483763786305003864095818275448431248144665086654550582542550395261026687954360865140703289704783170820878565658878306704822062138126604065986989445534673317722198265330963833124982486172974597072976979827141061836071086319288547081909578473945815815883683781927986770793610326462367142746085780900490760338711919500628744164528142210748030617529647549254066446163304212598033945567040878369885946038914515305157141103069549074590824619509554147758550413027086059102488690537213637703366208096000327017929828473218712981610338889541763795108070368849055197911155354755015843390000266016245343308727449014664094391716325649181821167808236944615101616019192828733772916072867176613164769371697317896933478072556625839118775989311860599200699883003816357854819990789262978287512679527733479238904133887147498721784317737323227672980285432334815935188710607535413918042749241077033916047299101863246960932312727265423177609061914928011325740197817347004650890286834381206345771765700513667178206190971722911243616668530018651631711207490909615567898511127659425092306229300060720354530313122739919864598538225829130620056565061841470815708601235493253091169977529897388937138626815152598260729047187817276951748443913342250501132131284533246197532774461144418818055002088553177578522425750374662914670285955954164318353019945631055760030282531430563683007998384973660365715842463353458546302600903711415836351088275201472585212685278916304256194004153452839358712918491216962560773502413813446018404294224437151708264206422878754595548983457031311251277954999326045623164340643156863466218959028119782313201723747774579768388302314714747959654517341370344871612338956250480480043176904429846264869569960226456576056060669474573276798460694330832611326047282602154510438692570240867084074621139969208296985656211098078328695454211267918158831633895458149711926328025897184846079399514242739995778648743944869895111011070935286883987854147771589430500569589602878526987184604785436613825704456905848369056916206375045367720769970499766368244602516538445062655453983869735185122139555691858004268580233220989799945711384402779683829888426725713780120140714183906793674391413124035242695615015771156186655088407798581945877595885155390710893630631200754396037098116246281358410674825842848424015213468509947168231065244560203396921361594126684491975478602706272927180841786024083077955959464861690827093355998367523933739667110815035459897888295209911348291478711380222212812036148613830594733219559905630952758489709959142223950996509717323711961327810688389334954703891294235908912532891854183329693375663796979578893319670535206713628885371800550356656234524985618605131153010852850589850042798110973146389366263929607687826501564590500593766054477836647401876470841017524823357700439902746203766904433177180239057688069426066139886289785668212583914277850088240440905961023137051937568399748976838408074360500794249433654933145131893693399166447077187719488345742487469675950861832326269235520827447672914445787262889399479965953273144757609118107944625034208449758191512618334843689049558737433866561843627523526931058622201421189856725521820295465922792583808512125519130827905888515792809821745807492181125801992932109521017003276165909603353708548597512220188417100260834348708810677139124995506193411481868131571413706196331470720729815638801259725444018774359149383608758266482314511392526363964041644081142910899861618484407452812402027803441751171757696987471613214997710563487512620271065056670384235228655966149363251218526420296128059777720365946833285534634678490148754707900936389839959331790026548639114816212280195561709178740258527480418830210932780886309908002538462976688236538175287958351236049086843719230910945440456334898007263869037963256183767724451899364856291153339903574656525788508364294765366574848154349246711922960064582354895169404518916918914501867999205996559989074945701562311234725832799990170620121670235601901669517157486420245161860164631993610902790475028164589444198282558795609408603492371299410674912210068844622407639382639690995556979787934352652969684431094035675492313723330936691893859998438119987813756591057295915086331772374316162710013022042220850302067737722990495176147333467226682598057609997065156923014675054248456075390370883246684065804878332172580807673541462279623290340572728079943545043764144394247624949640866300247130888497589749252602842631439105905372439590863930043724358015030069453400992116667379185686846641089997932685448435045942902253944577439194574774452297897240115980696812160722446911550859954456691591919724020340111847405927721817833595123354287917068152478044313184699073924953623262888941978594868590652484106189123541747954917201640263395779379316272646504269729837489365167768132618997035683379025411565442913576102018476988361822684902228126085624587904996509231453748752311797830755563231847372432067273093631028815950389530423440313548389799853722222703803775640510972173072116112062415969764258282456191034887152869418565065156324803803143042416108535701730108697346320513602184079206722191299797471749231457986736271148871612682788533531022899869327102498470868416243467127508433048050258882064559161605478543459602087413699922484068471729275743598736979483119679434629939522295309433336637912195970699911117561468758886278597560100024932007656026439843468812046357638733090595958662541226792950948780746798547466781603075457229693947157962400654329938767208004042626339996941027480459203042630648038801452718366892306147325550084659919218447562390692961334147037934818277461449078665626825812153517685556416208909534076208981297621379749356935218283462573573070053326239622421027239544964201274207657029863893482561416679294580872706933787020774702956978577823000276575253989985376602980158284442787710754554774551787532321829495677850529310088359387581733734984850260909975490922794941865100217667403194062461309759910654521591840383073829313512355519615330098643918587135063193297566276091749290429508988581703080634892495739352875604555510111670716374642857513995716619748603401887520332864701472763070536867020431222970825078370312321492601742467436177443148512088714077703848571744531708211022013834972994619296977398864232829708444066713957756746907949309637559899981736705546557059898022145551736873743567769374857058341377644380265427155585217834377198828791475616439792506240772838378641535885186303948959467088939718841793494508604771331224392479656771316343985278995142942811446977137786894534565091247802517306369654894718274356482699448145426713892835784551058739844122739278356492251640787966292338891456352620474526915812445584760625439409480018278855463268779945116849397570199088635996690357167638937812521645547895207871703396242181864077832286003373497555954536951676296403705796927162738256344905228942999039960811618322258488412425368815835846482607186653328042147580256290913218635597098720999254903506982126030139388650600418228995515862270042335803499571512763144640957936405754028991625276315546436922685743474007281276176887529269123498108395262870505311339965097097572081157374999872072142430012059074287703299312609182574883967838113949854735386840519662885197513295832697132323372014471856124203486887544127423044966262622496409022782766944460807680498302326355033100059964032555486530040804203235413822117099617064177466336548382904275853156717247470118511318797768340744078326221767605234139337175792974480869725039586520950499974878999968991298641179641339374249497509412813413934537533402054150514401861586132345237313756284938093855492731919192487290913383441084451276856898496751011472061426042161047594068723404930441256026135517882043556377644048698779968481176376488464516919061182434501946384485404398064820310527705878407756986308337498984381600003424390840273148391016408629159696998615761028331315092812010107745413333016278671677385867396685204147241149357433062701225355269723790348673728861851185283026718222645617576691195679889835403519959393912591800601290543834097885538467587302133336101210935685069484654516095909294029138056773062363341356681576053707426689520430864258714036321870183735926913467305040379471418830543874634994995760825411970380273948034070329057108763288446519502052343001630450438672747291931522178217722495799382249180409751130432479789465762138801603984200838902181383393073787535650895673814313681025627633917425332191401931461270426908493183099687885987515989385799316250464500183622716508208953724689493786261253092428459448205170973184740449356155755036505273462770182059440775010956199809840834874010799205228720300678603504747541795284161624993409208346199590165430778473941351031886798122124798129626890730785896372721672466654241672109626500975120551379149077848950739862825321086032604250427810454978339854451925989120678855117963367052550487641200458132411062857568550228665253963709539129029115136574998359541993116561372542674453534355469337719558156895813057301014542133293593723813897828124549500949917355173185511239292122760393609912596350089489267185978505618753719865883750880080270300456165198542223229961615800291893076768855815206519285862912470847374864320585871353725008478491532694113981004699844495729479602125881071274454648509819098651729622337326548860007022674813182220783061348203108276331498941499207838623762268806490775866251383838037498176185266617848238085862415760480567250604095497484649114734519307127245099101312275647633312108920982599636736931110346926023898785346241038721100001192991696681236009631626233738901776227882808928402467549079940934344282927403601138797352489049267705708350502324550092558947959574877862308197941429175964511463702579877724016909714283501877304469403520577366603593450745721690197689095988884073406899711793946216629562300091882405049136834544169932119926778125213700227810914122609449611707221413465169672544610172480641140455998972902688228410264868391726543498871610760289350923828165079689940762648670697583240157698531941761972340751418958527506593136452032384705030510995539502476335458175590794940767325263009783954784809024286059323135753826165973429373501123256923189838936307017772352647800968681370580475256683433408248123930176834791455502212260037238558734336559485221931449314125217478724421911006476114805554528659741971231750793848121363194017904774185705946150116067062968047518895881671835691914289209543717009699111433713228832609470503933902347441413950976486958261564819578517382460318448787995292804101148706719121761887390960474478302451533496311431999944866366262079307256337359721224844351264860445013274132961536905718862560475267536056184302342841692237532850467332819083193327081945806886654205480919081954927038077057183952644027003724688572213052843295462164168539955412932784686832043487960047574433008096066921551520013462624384897766353562861704047536375053695714959085849211252008530159248557649092784208563176374324876862984381853832775684463401062359806433303324371894177944806387440022108142344002323566786870686347433182831265549430468377111733855414135248948530795534458910990214942598226837545108664978767554205934083779967892201871509711962205285776014722999756012816118551565520051281296224211987452129907797314781362973175256802331280658008065646287433219517410999657364249201367089933229912722385037687483270104140521330745659549457842596371284245538102780362834530337459372981625443473087489037815357426564775502773458672044756009202131194866284314094071070129053980435356963655579551741865160413874400557806361659589846403717080896714214381512055463674423250732584409842847579227035641422071312339244652989002287307149689112513313643671384203719191990457060389929632774886571758766782248027167762125069658289653347708316565135851941572150555161280587924573422526358683224721297997544773695733248701793647372428575382877273225369339523888217948323096091440978490942715021074435081117122007917875548367639235176041657046792885926420669303205391825527494665260650871256352565092471429899408685082627232275341772282272783473249330136109760919592570646076060325931588387818795648167561610308563302263880495596648169092365195222583448949614824463034030271229755505454606693939101178529702839644297138461961036758480476687756987791439877424138594563357083696034670838809875813096114696263558921114424660556299633027864665602060390378897916666580516562335516450165311488197703756735927304648354561837477784647772780981479954670117461380973757998293665336132287980279354924880699540297942995967144104468498288751908477720392436646093438680620455447390638809625193603438945968898264826271119614736752225535328058801357500608879904990304298646549668592144500607036558543448515548340540470615607842156361167088068109539845622505265400546833143145822143132445232125281825647787400740172518392632390865180271226589011830190288532639774268469036244962907665017777456444455573994456090120526235193350014813727323142480399156695128149255776647213165392168043425650365546432033336076270033577731241657707997113807235762278373502169533173209880468955670195714747260803573977325581476767545150168855220950343471374126865348375472775120540014622991180920663340419345285053534387186929123557593310730813215819197439134199782260336234562994365537687389799732186181719096467762228504241762482014401402854296380980730661884830639016673255637724511779090033921034563820300556231144586514184307180170675970458993477092469863317144282836686668738005540003277041341805283443870951606152986932805928948184839989192469227745255758660910670994968881895108662442463030250503218148370056523808605823103598301798662448769222178238564023392733689611440382847522371564145957367009193718196797347183813242080279980177092313330984240618380015596267172202743401972186638174940952971390380362682898587792428354731734507140048220326174745118142310368320833918327151807726363694139513739713811776279199854139219047728113878895983525195493984853542532011762882679982740718223047068869550290163295906202530306832211402826633811062907165581442932427823018223294390228168716369241727062345699705682973500452441790188995028058273412094514957845962137522287527934140173512170264698706426330623151740879799787522948291396913905391860036416421448860618766415312076945227581092863081740989622239848541906942256732781300422576794201606419214829522305699798908283140162013270632497913807544603995267348393462471558696834961690736721595414083949754470851951943340251413318290150688488929983202362658547472616174491261694710208039888577628883857436643684674447218872970291012220187937810082769828925020636548138140111882360748271673495285639658701868079612907666754310339863227582767075865234009657365319976052163507361092305497825612072732133284467738622301992349864505927460765674449487632831376395503049936533482022496133017990835822383065261026033441947019189694295889383577875526492326504782950899089874888255843700552487923566486407584135598031844564046669975226014101858026924720184565290206709767722629448937563502349840696590231462576574701676111682047114719406121047217384733247737945074854815829347885554487663669901159893620453757641501665650014336132033221765667032912879327339074748678977043533630981831575022906507894850198049053897027089281881313049381357413884209446669062589805446769518885401216322975803030939115121201634520957123406679238200155961200197302000068787746487016435074066188071610531295150695531575229316725224464402989883689666194153153565201873133713780221156438206228711404583753981045499445921199931108362931976703955968549024932520814015927861017808887692789516534755160797314273214172367716737585336526232007756544846936846054785029880249343572245409782757349115699078124700276634707542947854577553400817258813892979692770710747308394805108344303942232808325677069026553721674033144449362456492146895530145506345095107222851934857265821377686874303994531033911075105764893001544360398537911460679834989176531040286210648845725946483000817160570614079055022797590342683210283600795219192495115419307755991358951217379948657881731679697529564182703844794144725852309733533537406553830387787203680800690129261597133548583646605449991542839360323182265258350330782924642075535777789167715060804992551655590290864228903713309698378034489745606263940558313198906265970084935943047578899357651138345159486224866226542272501490864501506885884405587238624854990177798928782131775581415051298484370144346100448698501728981458603357842423511476140507365488892221136040832932548571402465658354055970333074117958269293938637633498416978321384367735433171512007695386248509673203726539302886046250972672125095156132927934471229197569398057994558081282724061191154782969436478392473607711214414620034743214066763529432829349606906839635018204908863497458096688856145557802518753767432915576511950188993014530117751763769193588253960911703115660843838263522888559767755101738582386060602028364389838190875925392213246693049341218160699456761164041798124812556085110425823383164983941094075156972591993539406144109366607273635322213198312382709099741196907293249304649102871131553763454544763286741040362808326834934379097794260101380204101086455450520943427181261884360611861412291324188738685550108677138888971750164751509879689428394881230902471282777467287804225929753615752555435023962468900760579164111861359927693443636189408039620805789196260662251979206235250722047091882163073632711754660858014570865219164108401955430656058001280103172640039803793607893650431357644476311869705971528124108589091279637688207690959959056600509941383890876886480488376987774380506383864081649060321719886686338497540858556229726044703743739819423912137469003575139413177467374672971301033296767088759529769144103263032662085329639138509716742934956975726589925015673891041464805373079272935911252753305778167475666798600330997421604565410478162473929639621859510566184202111797807836892030945166991471432656123619834813001211812098541871856989017864633963658137876125755638452927540428534816097933219257405891916938296071983886183619977160150823435588290696698882891640534773368901747467067263665083457033425717941787247123603170390773008074460931691293484997552704321514344254109465683248956362209914996273900190918391105310122721867021186378190583596337339227128915564882803174672172538019278970825745926766837790759235275753925894411629983178067140923736736205838543859112713729426559586461428494747458814731640826591535872189186583532225139110154684642299119777755910345346537163587659217500170726041775076890453109298462515721510709428000828349075433764134646058789731421666715738316495012469149150399137789747799311625858936568256629219961786380205075425634214555331349718587391828291620649369701279689968063371282225823896892266514558229601403378323192935635478908234589017352324569795287563539813033010066630322856494083154696015816439327961748549180149017804053631793265911763568809274263702101362030044588628667720697294261392020198149847680195192631552290259463227096837566489457224878326537308015326430331806710801163478437381032698715092706129208761881863930735414015082178107931300990568397588371112094236924139726472752518430980274941099663678967764648920742385867018524308766759285162315591552317901161465178708154007000785738482579353041565387858794168624397340140075859032831840503060105453387024255228581301289544840233671071949479488366122860806523664260025577316814867890948623853836772964467061647401147489436820435882163792173620556126672099683555000575191007374475194357241827750425747064867410364140561210077867780256353839556799165312428969206703733467913193544409172080863568127291710886889657221383991690374259336403163957145005411528370984682024057896099058420767555922610726806612069907503550054842224489305857513832950526239314532859370656834300792495234212856271529344823767448157503962521562513418759519355908730949485351959902224511754995282492127784912760370225335057673464708036534244009657888766609691958993104463621420603544866850812559094617217179102911917883155942865252233728464350503882808842071370486119070359297676274439543043903168124754978143569497517172660798855197439548113259508940826291963941774960294744364077689746243679121751974837042144463536723638252697751727907290625016980862048557730949538741357359628816440890542901104460446067612742221575132361583280495898179509037750984626594475714257327619432891108918447563680636172190104528603414308641865414430805364594341288829830117642248467018719699267335309750161026112539651317520126734837511257820626103845971863430137353110515407947072682692351939061158438556494657657496971726142389006650814962223438893372332127481490777275451545664246473173769563116560001943950020006116212995833081682407201978403854960683251072903117159456556357408414014709668049493224385249522130386458249971919411260371755321949439549529498923193462753621278452715348714864895328748971099944327117113307531940599323932016159031069011131479835335215040346410559481549592286638578026064624990661742549003257400885645652888955427747798634606556172212735590649065363347663528010578729164005573258066090140938547941447283283600930634580266505482808106171208913301664458391056007770236266581777797146698602294593911284750977952837341162339405373214319297986072681970002803318272115600392701354286714632382436844627210143436538983928981540487900580506832352060052053827244006237241744575893932548778676569213287394427551653073152744551136011238902653624371218482319789542706122211296646906875189098260985327659922666917228035397839827786786426778443940363718056668692778953775373720495470579600875387918190748920566435704323751844485468111710312765649621931439455638320989639782846874752025438407163871042272690008291580984879159264502214365267444268027568409631738207351393608519184444214892778072724923397165936727991537504182881216065118421412033916627691914244770462857116134923578924989640818495789179886307651651369191557382356328649522934712708971946480804581763687115031369244033506669863250629621855334317644007070871425155049534428241803653613301117595448933320446650678900387562043564313825936206780343246606967509333557556825749821160012073072625478226444838949130257061282954144853875230830123895037053399242974468871213189904031685447968277757497177979601963440505645117249279742260189230460672552426804674425003033353920034582971868054722538392315228154920396429583326321532319013569608774321606879259060696995207312138389605173788309535848204013603007571138579885497822611161057003366308825219981689169087554590773299703041899599274602881567360779570416768031553492193381230880957332252145602330911468881423652731100266342478807993153308245495666040012246303277428270508154600051666349705586353341765384533084878976159503631031964661331293692308036845261476778851076611594933131471467005132379021652755685315197328590637777411544956980219252661081145109749131719485709565871491801456345235617052805694720616221632669909643075251975942752654005245881728766500956066889122164023964867818786676579742693797558890154479574187822339006547322002734176270873364112350362648668276733887634863518221710028030656229349408910002499719958011377075225761003860147758529218695952936404363456728271612999078898728749015811374655286532826341548924879932735867534965113094008691595915577188385326383756179148395148468930630040107376305398621788259140495017048749415573600089175892539567943918155230218685230105069891663904501572241683454592817553949381153763377777107831488647573638196583642727252368620366226635721760069383104324555199260980998971154340360234833528939890417921949650616814431489979537307940756710749870097079064939433335276252542830409704353950100117233714845364922332165277448871910774210695573604547716794039669371320643518034824113228812023171697999490400017577692975584726299677987061236017775174135259595033640852904931448709508140394012232090065418855625507500029809800449975191484753176493382993277251581488379058851836183956810778145852785579956893270979999184224808695887394686661846550575013103026771232352498786212574974067454140564332825479216495319692323313550235856981327022437870312333096139070032447154858790214666562513762350604559221704397247361195799380337654119494875814037337968153401739047063208441441689762113462114541947167007728026353806359267317011758218133247983645738138168298417754222193403206119670538334367097395521764087296828620279222120553960874643069782156476412816673186034529137723987277392006350172936330614559671704484611587559936055744068283438375036115829165344892253558425909263641187941518038617751047259207976723476476796042558255607468676505220397277927312915981805600440794377698879273912615530784101311735541909148371797645814464752109059879731520599307299747647069385980011396283067971011822293971710737794505827578752514335672090166395813319841984214830703774892104655801972768432038473129401805499627091943461734473617817721002365169084658363280086198756056110132445149500888401308875741589253019733408332774304487852043022566012713016017605669845648832304762661166638113159435463444660727446679606639851452109429547938939609024625044657851368171428876446983865556834457646325740367282295152057089991796857905721191873554850918667081158454020775688398661930966430720768350104334256955684766081254841009271776593633772616194983361278826933260202718005188729334104508098634046628053629553591812613916049398379719251670551306624721974769197173891064584639127196139398811499117604604342107917771887363928055776378243888916437891701521091347206211597603168443607647542105977347499826328547831149545733275979498199717386356409895483054283812874089384782044925049759305109115826319684153253115574232570283066205537721997946405679647172569329471499785634309837153942219568408897795174709412251468368746745172201613119731709188388897750787208305892708831576037659397950042112388709664474517953778080158156029274406525425093818758445353896720958782062703910741736295766726009616111931160660512885389990939405629777122071304023141319955103713057350561795278853453240174862536158984289127062808391652288920530539699501308381478126657023889987823655650656549972114880137760027966712029676316154683037197360262060508054497667268571026398517736597164733025372120692138001130171275646828318665708886020292449058511660962578917502193275083632211548476848345129377594564510976026615965984194592478236494987726096451815465357490829967559277138887516528723242054301373960882051415306128542828544361538680943848712564164485182265822298026900853496702480704618514586938598852425552993314603849971999032420399162409041316886971827021082666750702931244557197049437022333145692712476127586614894581152949111916204373124686629981660002986130438145655353713972709921596755315695271209348823022893336806650138340879610277684258270635840310925956062027427577424680796383009504078669188195391401020534607455421599011919700167930105224356074096983753929941792574133389222336715371984041037949897770295322632477178441161268018596552443505872274184732951411672865922115259335872174673808980516936294548073306328596007236476736140351734458592933448965112207488233399432910493296056549061646313949183082467001910637983444520543607068022126236482834217754114630939001856147718931430936226022362436196060127026102062243265939450863076508520357296751153531099142649544905517265129683121485484194805865430679601097762430206666296797536065407826045418730506991668626504216774317766675835312896459782054825910615711107258274704896971262465129374005956107464651798736447953298837028130667060829851914946604264618406645439113334004005747397970955488373653243356439764802488023968904903775535426464070421153361363162162680367290614439289715251734597424042640553312110825379117915054116779852852836595083640541099344286560199805990845640326475388600583158850175794260535803526956385874369728629507762352248853481140823017568092240704049924746792821489453304352511996019858272964129091545311640577127668334709498547182295342040521011174139385063722210138340209575870541480843884219452393226096709060256322675628259599193564372927329890518843504237128081424218558450282200773111358166142889573064501822433633613949865860092773350306779471351221226195912995960872186302993734195802460942240387687708739067269749978905377287839112838430645364780933336441069841522306440207256202057304159316786998005675026076194667831400071464149385530128265170682138589281142113074775359917318581435421652506693951794004659404184187507808713885504028230995980648904999059366451794536831675781382566342439468310741060584519534641466659237638190263824784453814134449449582152099995657624260136871705967743057504451729431188498736051045382849837436694666018048180209924606772344693177022891573881952790204324275973743490583147941283799547056861434093031474783628644370382493392007243662162879123711978765166666346297129337296978491350313483092204279862854554132599648170808004153762148567529626618143239175639052464918284052923982741806971524861550098463333077196254098860750205022763502392999129627886535372080978159219368692388977125258512478934937809711653047119543863885951458504096128796392858115902268061274369135153789575557142338078725157291472261883367016667085145161423095174307500110995999677819018852606264056075729559273213712999252848512366717916741453576759835927317999284981526504935516473728104273044577633085929814916914619252538206027932640282875828757545758778777907262236697521667780380696393596972771424180495490273623090795760562494590311628592391692684132399106984514648243669259845044542873220871180987280210482909233109204308766661416723084534949453254608156565728957649416073500963786506479511539477120204803938438278335803139260253439660920465489983655377009365065080653033046530569330873016330087484420605758459079628580243986244276778166955580508477522570081946509041963282348359304199552683688484332249512793273242063324777006547089052863526414681014982849584866801479024608213534804776943006541485294786141193647827335133149174654395325758453060765258035316952990003521085002479066132817588631631934483177778091426877042529906464193656008029582763836775712560626408626232318173263589495543876059983491383857123656210579224123074667365876898184845614799877385348323219364867155575456340470363717752010448257294055270573298060170646591154912620150853323735131987345714898536176344709958065758306694926370690455450433354054255016408908752699851637310416124233706338933665508342745401441091145986431159220640753027158283358186056236852598234500796923189717743587343525457900825250002786439872805442383891385569893029820775786022870127330792160202801454520272210921316891665740801265824942384320605486594945067866270972475529967052953187184269034547463430593336451526777055804454458503063671260402971528411516747941675828793642480209312937327980351219769225962239045953210819334836496316321931234246003313794744734032093091484239809826060061892955030657867590455312782198141961337793739347042717295239155405829137168203321163937285010071488611303925079368473225565754818422363015975846603590319377252140296149057439088479842927936382722484095451094131273356953804578666463516516729994700452456320438792272730348730325570975845314891558835897695400439801412658853968409026604834257780558515390911975011465379263031610252522300183182567247533500679125660857623781410126310479095904137799146658430979863748693668965766601966234410981217813603732650022597727571794771241902771893329437606677050659714742305408658568019718761900606245831857713600138993418159577415539256422219715104001050383388872920837508402963979672572739812386751426861763662262089621945726135185357238178443437863904106206735278328891063505816811441059606309923472096841277493536462027649422610968578647060766050960803837347749022863651563836087260860005366439182359794475754153571385791314033899269666407582308162323003102884647475895167248019924624095669728964730192831531611645868180049852126067827751388797637676020647879364808287694766764719652209595386382348237434436329991341181349064679439253313891484603270246415203490334063228636386464383060260135234097124650472676629722456432984052647657600455588821449429855946832907313694891899482811033592650612175209653669966170873645966978693091929402719100400168303900604807586197773960845862426447347354588667096125171890633251519624759587323619397356167365780585148642566207865112129437242498195196357249636460388654466423686769159707443041515304652646959580281267180846696069244024980093069728620140414265657486837066692630184629727234366409285287561210261775096541128777992303259722199209274300318070253746960516070387748171810584419523470035819984143467379221672071256076536030259726450274143481003810130911880154179542267699861991012105283795140817067408250301548630352779118139717643607418433364141062646575422892824987234539541921236286579412295157960085764768147601508487106880371852404373952457615769162812728683031267399952194126083670883252980593577003322356800517905956379743389832502900655941427621035169881661464854087027484608393099034100890315227745719049313352227297905034300499174384169519810135533522248089012873939033984517032222551358214110788788164775953107841102720587538827404119371008341503671955249286717535762245157006366290608216489393182348649719996468814483960966411798091120700068218262755341538098064232742904227126943283298922555595535735857568559361348738646448856968865746607316592046349002131980735155489185970127002165353494845847552152774827398231502142314260326273049475019640545852679894196354992890406453382561488696626350845118333724420770954299995052648332897275011351697275209331762994208231453092429316175229029889734969796098200877451120653714826617476560256606776958526148048030586245257021271835995079294604728038081813499607885955628903417703180585218391979788702955050766669311485286065070490459256076517340891120042436227177599710735197595426172795977116120044278835837641522189828386868827171874580764962223925390147746430153083539290430336805788181397678300372249442130007233320806611087586121496123172896361444956236957332846619799000539737231069129878019980880245225517681222981356549760628223909824285601670167704036978523413631704148451937320096169495624086389286488669177620055568757261594974651961444031744057619298318237772531322076780072674640830843903974410081931647398098358038243629225345787302455132508167931563830951474281439126490808103897282015871206653975055930459214514827762643086613969778315939385579022152880880772705993951047893595303555241521155516981748278901629298432587111061600849405338041457676171627390051170453891562897849967689180283646857347393904454900005425895479654269174020965270102374886313436746977131552842881722558284483332757757378967556649136739559576721080127052494668175257097161128262000609450483220186804168242284960594338325301832880041772029254782876406036697551566534265817280168040835121523178708956299586851836277705981167633584009563659636282191533852363634730115759056095073326174646498522328418722571434600291814038941035736207224497765079029940654551064097924527673811700734337076197010412699693827977380970507163029459173999827792138944820794257237578912234270257595013005255847692933605885363428019451579235531528686662798200428702684030497869640430272014473876766482894415985953683264281822251684604905878483957439798489285586893781717086760031092116484937533966514864224384803226448036860392940711888467687871347091257918100782807251003200069280719651302098834434809003864556879527141770985377455940706063267921620934746811632605018913443342283702104088632530136161953402968747451570621622449380464624407522816155832801471412796488306662601128715997729127551120250105803095854091494378230299370227824275842550835798639948093479440830212091834873838718306383483676286099693743923443921346887747417171132002868955727225327103014276997667585611898167232356556454200776310854876772631828942824748395641155772504486460130725787595666414058449009222469693018793298355142520825302544032861366420118979676525943180830525627199888040563585948247657394538541560756897394307549522308010465675006433159505914754047334168067053159807781914313048232269467857108178390748643121110432257789873708526485096376544112744403067209510370029794233833791962248343235637607418819900435542167197689778487247088575357306458651247311313040252830009398718380482475887564980794616056484842517732145421476479142006701177798715388804182713427774726595064743239843910135817262361221843512532442981100084072163792608462221885122645830400249753994141871205479048101595052915872575565427027066727778855554077394335117673019476548086675994716996594262594085724943766286542493115741004724096510216252674208980654998008661511411539447935463394548385734055725931276553808962119432078595565586606721515594191213398231667451416894053371320159637309520773680869586297083809543658450076884385316372848686993208765762282889498699466962675904913357416716312876085076930388275560520623398727132394411855009289081013786772349189079343399456731070540570705191632590800363043422562669188987778803211356442187382066503276688081410674835569808155779571010024265553529817951375541512295516425091499468867743423187508725723804503136648533213872046117310538963999674908804068982126560448958357400112948991715839143306335727153165064583843447959516599151637232462291877445335580718189719819627932076352606837904888773265387263076628329769173464356270107650983808083240810417072740066193348382271628265338232377492067434177421000593182472145055939108853470462348196170235982331422479451503336306038141021189309972927061468810265012836704742146837378980265627336306850053117389088206346419087782061652849654347262659524535366392350264133888565881128446980933513177928898381725162906626199238912665889580774010814443721546922497750286907952270036438193992532191007402287243971423118756654695483559826178228565862185898670887259367378481151314355899904190717656410137003849952143264748214452052872306940464800982503365607536126864208875713808015191277513665157978422723201802380951217467966622234889151587155940953770614060404379428700099797949823436978893605666371907902779903101799866043219272261326260747693339119459505644038531946351344236633936882440058000581694198454838728069764055681380281785269310003490671852176343806818798103138729489704905253243357374504410657874453954579766730766860206200927530234152635209528998734808939233348816332105770558028523574139899656955022076367852461123459668774872276391528509669620073192584803010527962698995811151571266188395836157654374683711094923262843038249189195505586382970243412607021624447938114235346627687750469804592222071738426292265596135542134690817447238851758035742329592806303115681814808488158359629242044164199673264441463230979170321741400250362203764111212260658623524436117515361033384697238303890483850626104515402113947134126584625355822920311201744585597112260133955147163686822025993506347613623359216738027165931450471219023441405468133808488715226208886074843359136809671934358328119924500075376833468412266634366490504955257903128350301336539547915171100101041183529859385679770092026166408761925476045406883824872220010298447007284629971669110920692125067628802186410420024348732721670353617633771907790660361645477645299388959430307715062535732160285848597664401748943522671729965492701026664821360713654648545448871288781969065274528640033335376471278424208915991368120733858888099676037696969877492815571548624451764469441810552376287334723367972660298622553993824523337960079876650482010416100025240649355583146303073144298153014088932065427591322843591334792310423707987661388247024404685985789306355181163590870206912103498332532384150410933374838238019310229628080296273825654299176194880484626819054177093808029527485988056109883730916510635476842119561634469373137657334698749451495925337193386139914113854186059021543429920042262757713343238044148135000492557136931641779400507300928318713838508691806441455403456740063781257174295551223964517285137350328449796551049943650014494882103089893048309711363423085247888901026117866322936962831848300289216635841116281763491902128837128385126144555814221640699868659948876874979082739145659138212131886903925343914554225532226870223494668564839123739528698840650576083178917385485625261030578220040176665737464498407875488088466299522180913613340907380703802539252435825462859149715636953196606242947782338086660600487082353088318695327837505580197888565611965462134589593012561577576277782125813834446319703340860391474088920672434969356845189531811933754304463431599012051984180699037248531274812666211132903277492138413263529150075953230204118891360873481788784563714529556891538276652878075453882576081228486255286803565640886850169550380564695446555130392718745024832967267589987377823914093934329409869122517679298438355020606889599902717904718506949594637451063365769924259738400833857909887717032166081926870828275006084843630471532823626331748966475473082186803305708997282926811760524715996502256352000235406417177275861774972256784587396198744809853458439495818426737675941772427618676590789542574528300330461277551969583718612135700777914635993403352936430105622965999880369701274275742472832801087078236998517440495003266069243866897406402902029872827720229831571407503414111553159320126826692424092777593777416525594473587482483834652012363046469271574086530591778248308754603521579831899466199277245832055188438159309573383142053257725837684230559152869467771957585012149088815086627348409960524134190388191300575018640553691241732210075269383265924001414775112446925830003326456503060802467323898358874786581665750481091423638609338101428211022405106361884564218459499346394249191332108532294998900572774438440644835679728800456480781394318580201677084376239900073812440572507935766068023121349527612380010486692083295879451172038551116910164940504278619425796547256857931718841384219103508508542601732392161719674440208660840957534590489602178012054359598119621282555238666303039487936772309561332662008583774592293678394073256312441927283455440933334422612017972504930651007694503950084301770748670060193897366753086492963639654769305659257719063575800125454385575170769942208504042389364766338393067779734294581661144385794681024443144802367919414279745915784566259129761413216510032483795096086784484092587550013773688793313978601825850047395230691490039753983658161132199229044233122360707385676452789138383917368087374264287363642131798672631492114937105776217951558400266802403482007381297768491551493722559700206605700595301075176350271500146174782011299010077975948457232994628646322470543596840624255752881857872909236522503167223214902992417936800172559694854086636688957203689656469960710688786501740009565701917141675930336801697710561927512114188074200439049286710373706458380216771039887178943107370695323514536887201214072360600398498197032224960129072882500865490244103061540652137008767459297004951395949770862218157567587277238915275740266698251487818699762246742796378438589901135252673561474086816213097189879965957585692775703604897151608319657749755237890565435700393892089423068273666415924157607042398026148173964249916490828563993675326952474024679977974540442646089959925556933334524739309711517365472719335857027728913745164403454297552886460543675170449757481846754698840263437700484371584942894707519132845534279438702480648367723457730210076961895386432186745661055499504114420870211617079355545444323766927870944992392215239056399485506591900043615284257154364817696797324869068118540328321935750671218701099005274178716743595465036954100330322488953291598644482146565173844815963057363761949201224296270500973195849359908423407289845250375079354214130469026515541630846483971129528519391174053294494543368870934687361110784973468486097266492861860965965850733978256289262760988930010789439072559350089636042236330642022489941830662095776028466236138313318781306657182594395465426632759696042605575292909656902941461112651893905771467864682191216080430345938132379206279101444038232544180799035401915930357098346202926491926345027750650888312429792257897006262841020510111383678693071338700636834420241342030153512808979854109138727542243013879814557408675595224586752539979212149307414290007803327082585228037671149656665930973844391295344769996743662193429403211788796978024864987899494227507771028082308172453674200369232067703269340627045733341717948571010241568091740394608358149366590203261282603021466308414016792000469857624705095212765028474356547711352320636658441528550282716043666280504124434001985941726490261206014720515366854147465890811753308506933163725732976106936213327767944800062829628716815916698833437697678981780957701912089339479676518657084191300954214880582145061969717103794167467215508969855134624229098277729788140977474893326850366564348502027752125265398851664257972005072338010269075210243931043067208216073076063902081199831622419268543984097603016146502126300962930942968095533751910776690785611821831673470592590498237062430429974079231972269711632475592415270450667005577531797644026088813709728488362757651155635098174675721582434637248989260923277792869457634714358405431033194006998387649583162553511837670878357438969810287664965679444819243985565844206348918269094362800047274223997666560526760450864396942975207143312963765549498300406045119392741134708182564628185504644861003805788063221495546471485303328752600266109229140409938532727391201142722676127403706578773494756331760993432860106115229347481191430280772736669482344155730593424012344665130439581398919498629399683497855671899749886419513005094786261443061029129844654541767063435115495144806424004438063627510300754387080807152110356795325651811128268702233378812840826011573333943214152026281586427501439467822190168392184808478580546425443241922316012842064951841247452756358063319072952492285149888296678421993318026597466952318371460614760038171758272747400047146382107400063299466050777753118919122937000329606801097286370178666501414987554701220731582198374200923057079092168986676382616708844267529274591477143873939698759638811296799974357390404187858183551485337029033101993547252950115018349193352042255762463069070758004445171401638569908602098670914844676249417636445436896717515339641456652377163886228963254823047149949069987319499146528229506283834697735430844421648619389878973759082887698193110721051923093217825534456503839081454839832149661329760266536275311515896544622478986290563733312192952910759782572606455090228038731845034578616821272358418090373123046165681952036182679336507515939807394018303951926141225021235481722006537872955652490847236946512442399085860194537865845716459193683851661009371287048813637244261716486923215339104802480496321516398313499124197031381451382252564420495900707490014552244239338239666890541488430031730894229246627673566281265142448163205291077282187173947203633707225386179327628022817105902173729738905288432791739764240854246440161742247772258833445341700047463086585765352084669682505222389803635662506118872605995814071508400557805671618941658018592098286997366704340424939513647579676441536142461261020980133235846245913545946647485631183977768498369509848339858283112772890651478543469268178769934902879143125131833299351754276499100552886065589013185021711551095443611456148684779650545421674801482129271205617626581841433863084446774147669360161816351819898903508351877848402003838638912146167051509800298568696545378513933427004301743985743360466486445464907245313222216643419996459535041330982262707374102671750730354709581538647691435410015164754520003154878406739154540723783192391633194854336855091159341973815346977470374946032652436814864189544170298723012497812390939935785150884654301729397508931504075339193152379393001487940017418795687393300292408139249681536085473037323254220379108451497204131869322393771592733527308409586355350229280915571613915708239509876223225652931777363026304880133322027817037799498287907408480441522023890164869385757477138275682783948811666697748315194577446415032828323080839233775533032521200807900434450897976503857261665708940673601125270068492816330395044502688194249836573923886896622332850737582567545172408999160206812581213016984844215725052625356246404349892422815871684073699917917240528158364466752571434563823185753037167840887020869058495316497169441828523881993850977702506740822472577072628336526480080868124198484094564560586619103176271534956384318866748677148779705721387807904485023932401507739566189183053027319653806204153066350904206109951927874676678944936234637385974513765064687511261330603513533425886398237069400828603123745120300200828191445093233031913696984838050700340904025580317232032505619759300258946545830250193236165316124200954023128002122356354064592919403393438227524671304847526368442957425097083935543318901401662260313375892026982986266936741081463585959604302355924862703831853299831529766299566736536305286357342007691683816272473855768461795394717633244497157539550280834878294013641047750273638208016590927975323239024680311148863048847204094106619377070839581144444657594018157991634026081862981037943869535349550106746012684563136959410627949856187168063360619973119536969105592880476054125545915702590369425536077956646206735400835721881557620295024614810338138569936183848043902137504484499598918370043512091740581854644472909687014457778257525324628484112224869247774869150518302204123528300147126871465294881303565974723195478629299142683963867165031922465534875210493983624770113528831079371239415339303812024278803984285610407209866270043833445507301587074283311048798354512508086811021853338714988719501405807152250383719478155856586642918937197569973501996503826160433697218651707374936128673414085519270011023601585645582359443606069508611609930530030929437978942795170161447678493098927572698296684047654545743303319745516782626828139476202198957255876104941165835461515020330219110329202578310380950945279642867470440157721427709454404094709447356900639072028530694410296862646174705062714307694398317637302512466453237330444520333009227436195923363185988289803895868197499609857009973344691616225724044240596682623949950750421902532907322164964249615845661950157183181524371672387724851352244624488891418167187283633960924906492443021525861559577776070089139201380150196592798401428287233824056064508168338788856379289869015055327863250791078977874300473318047797260101599632278433589262192281942544103304199494765453859266950332571366704954627853142291646314737194684468532151035113580642763561963325247663254527090713089958706099814465786555190882407888485155944832628017201003011143642472306849949873873184584568385859317701163264919501048299676817072417441583476389288707656068268411522795910835842655900526086391647487145236420182657149555936404158191260019500458171382331195561912184499191057843626702630357640838324644819080423284188986032297069797230237993163010324772880974130777850590883794115702316586344922682607903837730266131065715433034527606002436954301157622805590855847715406336050144920373426971542105283304780563385099954483324658243446336119640979229530754294559171097928799852093823988730801604969656006210260555759565489234884638495336236020349446567142492395872613272070042484619964562747426719195067931428805666365352399010883260224554661595069007451356265923876727982102006460854836417601359276691866853895789607853173146196672383825484038120328095862546389327112366889849345228483835967821684336139686569225167779061617163573988899993764201947914957896714181384069805770174032437332005508117482843421666397119303623626383303267002736331028215884138408045143969621751618493811937669260938877655385570302197144860887854456866248224482261263363010804960368528675973717885805127972929407728237427255260548886241185675316825895245035809247236801593958027916887246977169129941354632965696741627850993994063416777447564359028780686690132723461746449766018790715745671884504704716706915203575777716166444306901040249868532840771473873793562706882401308326578403766009326107486757669393360891085135727228563709986888992593722063909505178131823549140229828144183263679218343586579862251871426516715513933016528340418887602722631880799149859357837389372961117547645508956875341506516541143824350481284788170889694032562292874982421345149372967907427094275699902836835530947482380775171413820716276967811252063908224543727940347061438154734414156417540460328137798362254372200455537081562997013340896492634045116691290664888783939926904263918358240909503642776692481661230200501669681322465869607825439091896734207983202081262044191525148598625770624988973161541361247818199491423760337926678505257682011486962714693635709102597294863533132447130694982816508846501084227207038356848182175093326807413218901520985667478584218541571881262239300080436567488352187946404127129461200425311302085046689368451443900434923736963223751930665014001970074438169212827984590743265133997665277687581522699423404701860337088777596255943265544442860214312210013131163745475464760715504916934735024049267933151978136882769031289432976278234657515208393318962006763579336445043535216740304643991609843396538750027893773989263446001693766101828963107269136977640055924852659167516975636137616762452323769757158053969213007538372342626671198261501110181279501480647142537521066552763527238151153286935036019877279260920732965480733719598856618721745646216686280790580122885826888820375747006681225872701946291088259833721570066932454579485934220206485540041602091654745721168622073044845622452401276026139732055580718385672574023741061155640739656144595616112758121733449103422536902402795018627206472298075543826238401366247881686990881169112987512087126915722832838363026461602316227521947930947199246875834521498190435938666703016559091808906710843990666797473236982168767013896358236450386959793846668073897326856792759435712990186975648919023619552475668394588928701606989534935520955052571568154712124220018147291490007000879138236587564629642927778426420989932315131700168302026234918558236725385614410145161526250445876972860587022047194280926954466068443937680481158820105614920906570913422917895808126559724572362456688191216529215554341754328841811664013703459006462025104836273261489760260843573242434238166656674572415314782538982574938197226194440146303114981279455247976286440663407116539648921347693773774941012435228549189036636141060443488134142544903881769966615985410914938193915082111911571652206541905216152948816230047420612687996408149272852980830240225362458277867127826335035090274413430769888503381538241263360183268886030862731341163981424656065254693580028515176814315562137044627303557359252853401293022075443015717916456990983945865947698023645943471171998573228783359906821887752110538138879904259726612781951941344302280095571609001585104894516924199109759664581676080159303211760631846389408678040951120864705159692462413137869019437235942889848996462082931136061907595620349161535714123346114701492199906873177690128347745939781082360363670701070414201839807269677139666118201311738380645215034222226018607145097027594496933752396322300264401525251135218620938672654105891402585929804286543652957012966275484064634164679348310122360383033733381015775343364027438821919165775197342098184233499153359649943823136481468549999402363308325477361923050281273288330181075954923603285780466707321399217544207068147556389589763934481087092039481141760087873492784234816679102573425935319153203669483790189684281550842425206482018538221060246653158103501129939484637373717370988493422143096924676257277274050392501218498540733735800103826507221584412730930987243104208943857402669118909717771715357037909952123355414040054701756431411999641219007472281279831108080715796762137383258484375214590651599656351737768343848051993337235616548507789590582350906034818186988465282650063407548126072129442066853997167721441546428501551005314476882172396544624116385969536097404137233190400883299560652720384422913721333985567756679750719047100776446875317203028713772101532873395686387953703468859785449059384389618327558193954466584995144990765657764447888762584019338401388966498571077689715447322488332531502950561404437096306332093610693589417742530821094972865182219069397225842265497792817275535995374956482334715217083311928407016368783064953687829855777590347376683892330431425587495178536088589597421865912132948432424060727219820483036049445776614144588778435984616227354007267818470942076942849871477626486392825761775645276547857786369643752759907155967777819322986557781352382457602914992958786355646381110579607954573217524821477778217845471683459226328172960686582469311186034700954908283683259519986463377271217902793030126406926672194181286972806608305932358874035545035202883721134513695390079273927012699407116414095997899858775677069965885268137842127783790738355275139656748161938170829766414139482910664115701458189591341817648900865015138859225821980749175752923424708857642135394888644744458548122702942724583226057123965724219932038051983901432550945280642054835023906136988872479825521212257837044492112707819442555778383681975904540923642678505954131443163193031859044269588723515588977190954058707735354576850814942172300197327501751754727106415679141088594801357509710650365899253370581010897949876080528869287270113891786460835093661565378169854418677118031146898171566867057708311892325529516145267813027412551218747243390619834992982206749055756426796313836810942814512431025709693784092520757991320393258796904708058142667285836817782076129698987601158885705274683965376477341421130853107671361875476739400816102915743757813862671239865436488608376784704618749104614353861643757160034146177015886397322339550230896710793876979903641912291515967919766011253937367410682278975603399230705171071834911587313016230190474985227851061621011045764213959066900285298565008651782947892237730161912875615070918866998957150307262730642187069041593683691369353906628568565233514111194938755852581471186641980867327030815387935594864215127942342000525932278144834606287097972602878929769598632190999746590403975406007931280651557077691594110600417590031081851191731944635396837528133478049682677941985671344333714384793831521332259879860114373995972747216978214615472433967795544878258673144047335394490863574341069487321227214280968565736770948759100491429923578395288478141821734088595132304545884660534547172451942945474740476683358334606538437138449992905535822735383370308241065886996825441311824163249049750499993417336731385389385894724900049723246483342159546151815806279194443300028895046690351862725399762095810941437155675132999612780806988134474004780648622134807448111998453355929947070124983940324346012712280520001460022594283409849565316021425637866234766878212573203026585895772905450940690756844991311147155322541336533639499450979893677073976043612960792496901925635398531387530663057560703740357231944808568354880129504712386491223369843777208197439371464950770902015675700248182740075347996560198970493885111166690151043373706137666761625850582821722119000639640289817253473183270349977947592056542539973200242038406821269440395677010531984750300047944943126666788865629053808387335450245456416597918170191975634117492573991574431338930083103814328729286573660658400185432603455258349555058259331944976860203425411570268870356261671106159256419048452481022654838593959896883057499304015903886047666819024960226748571522049974460574128182403322237728082377819217987897684308480967261868330774534138318152699882970261438460477834704219845218689168398701961068248521716345319025179071370116593427424446182571811037358470457023502996451263850093744856571853765032180478274284937204375520244006197925018750714755630014038941228269283854812134530121397361170767515245044707543460375263484109386736698095654959783382854113525464067023734891862904240789777183624692640668835929679211779197229855926937113450471641273175467452508623821220520418958888771687394010191612033839782535488925396141233025340010419891520787165226290532831124821905381424382780666564834845120014764671800852083640375288247047601601557877915338630704059070954683601990887986819028787082520763134729157983867734550323360989634607387843556594854708398280492718888205120734761953203062447390897947765879920362170127626086170987450408573772775499656109199588753514507902820501826224726345954285658095237377167684005536151538980684160942248540565752016301211006260319376310854529792373090005911750167849633406095799822581804818953938107516344892143006509414477158566443847995081970893068914081323943626605735425978835826130049436467369116389537810582738356295417360032672915376255581410789624885913475192118203408376111499256399992820169937239401902658574309594337407540644220869149894638878548224755977224011342859460174822833891344083073308492305934794494402484304592946984918495882161413301722502023345100580251137842375634167284535292407667308699322976529949462041262756611793702278801726815999294978151731215792734192361576211335661994183039681560776671378664192259474211896167405800958651084938844267577778533784073833340393105961375110395432331441833457226316843689209537877551266230568996945269352152277792665932287823617459338038250583225569207829427953915047360940403594155727730039362814342827082972801260229923279750266458725123162722326753675853075133199321745030539599926025548632707206272841926755174638341709508954487830452270855223651858498529806767825468156806739937501482961839938845320486508981804656034919963526740123662051844604655262547584745886386528697157504737227905277616122560369434390097577740852198663550912130347258580656733413128357887089172403225257408527747029563874773955719877667158509427873213037154098319177975293614742012060268532589052155145499925621790669208952033774660036041503919261049283121547936386355668703968268923185248253066545829459739647327218394410371728279836841799552319141481269778418053712163602294816285343007399764250373110005621411712129666856897165061350286262879396250460320918824649248634273909190728926922591917189096327204323933469924463154600506980324789925525862120650484464644848701682723808963981706346872919983302712489140850946786142159460905493828900580746560522252263111034478467591078635198421922664584840185877944753708835043606714081807780430305753188455091584962306422197812110304657291725116464377913938373947012775517600141648598584584189173637621898041433466086898543003066032460011940763730551401865106163899062040868222117608098768777279444513786302878140628375743129586347325607989904557458146835547639506019636356918883272168927861240663463736012445169063027652973087987595849222373582552106305610728763567530292573764925958400628506282920203221123468703697125378901016902857391470552745183750688936484202173140273991764937835296981805272760270875054489015767158396799449645398971932341514741071261681207666619486741028358324044423549059134792276442430756360022575783750600267612816715124416517492409387348417058419005601269188371533170192264447601543174309083193152393705120195161657931414074167321542893335103828657071602792018103653131538347221431494501756026179147134465645546931475751093310200497351222270381598060244427380806548079953202932672962006588704628783167214366053044512926424384255853218324058611765504398754468535032067321736511405806394874804214342701122893465247264386078065221621333562011159656530058987404011347588958769976284275132460269595555053377351771537165555554297939425095343668844394937526060253027988702737313640598439123112620276292874162803092593528076402825576678452242213327144171753735321968411276080589945560968787724925322956775442115956823689788111721128759716268248135688616221924693412669186256759398477783185187414072678530530048477163520649054220466791837110755525615593764774705616992193612193484058095264542190502759153421305204258254784687676601100645204172424907694824704301367489531798582229742126603204628909511258372563414178371332664703474415703643353285191259753617434547974476219079200410913426365175012154780748997900251199780334421611653735242115792226030890086801877095992971367475222626898246131439013549182952310416665445313758262821761460803896406256142642691371292530318585840183579874594910688844049162303187460339801631638448732621613933142225500742762141870138043843061850581096426714992555707086036276616375551785695995657068310834410046998180162509451806528917195549255580293495695076923169245328259438754690213963348714313132953437183068842640876048144109109046641819562484717161264194469240612556123792642846056956015225964227115523594277484622018479324629843411813972740145463797976499793494233415544637739117564585932104619764819480540004927466115158309677162000994080694330417996636536176425522897040740470445176901467494407044074591814500427755888159541221053927958077774313011640007900213182080938994610732949648183406205239459422896718589821980059856640062155189171575170093931858034394150288856379869509800191132747743942218737665076026633331037812988943936487086651554717955405119066224330202032876139234814446775181765663449495747154895840934121469455296102999866049314180969794227314178103133936433961123575981532208752160395837201926484236924665783427797750480399885905082617568868480001803718848497934647978851633163367404974065452401701450772148818653700456975858012439791129845032678450434002450175031059354991394997129946954055602295848272471272389659666534374768771132153738825916576672582790988549418121221588459473856253955892764069544376238326344548261918522582080280616442635372068797089128909259131706240005345087065274381559144809985857959818265826004174036950929662655623629357785499958530883382556923067456279490716088356589422034343434324329961087450691758725677925164836412131243094938496570583535103404987587591932709989175800399298074428783043158418488048055667039877334287810816673340648876586277798010208439811197287497391424576705327725536926003271825400035177194158628341566240487832256317210445642741870116485707349869864307138741763971893147014618991518781456364579333485986250947589769047363408993071721236052647005845487625800912756143599553206064167322501231846249270304058155169393105922409568308571962922387260740193054208730004895433089505793643584469586640468894739977058832102809053663760644288190271380301059610421390082714881294414368657406445958067618757895184323238880781201172630319624106217134296437643885244158395555106286530449383828168255290604048691157803262545515355591030319811291803143766313594689597724911829784505067262366388925049334882854464723276346555913654165233022046635460718954617810700940577807921362402361520387320141652373495396533246169625049267687807171657338727514780203721880023284109042387936347764898675275449830888841084819977005557257600006265094437215159633327213155519742657800639372942013492921627622646237040378980583527389791200424826931604477643277239379815806119450636082500348636840556640122319766545816117604696871618501867786073194885415956210057375739137690824927851424453702314154341165152947790927784023110877037566716007140689292626012386027718045644849960754412623866378669479371408706115752245021303940581116439688381215872934433813012541209628066888108981606567684243452035904119761444082684890409794140111402967879742400553478051347541484915097202449390264512707316914217469065363822362492884616149981398782300805177684313443677567666211422313684634905188073215950072244362459605192379309183786735876443127230550967827384084111579260438122850094760661979134094775949197149395893869064325342211070931597057007182528232521199383741201046558973963075919285355471131311625043148704513570235704284277944790724701293251087811650268725424030147080004592474014969613171780006423912627709159762484979670640428202559249169874468072866709979074994566053085015563705644745392936848357094369761779359760421478569084370476982386785163217063853335446848842584607075139320636217997378480564776175751128054331385319065899452771538921906935289398201397705606272585130537621453262786080680033542412889015114658280148821145566279045607567886965346554909456546109736998760833828726470669562333584106871891871368723012954161645290374826495647774907594598173385514808581586818855766327640354097140842534210750815541968841296066003557086279247027611269322285380222990064847797875977383293907293347994898111394859958078859698505724274537859777464123721935208735268687681808030456174557084398495090426325998295251455131347541133038473969496728940537616707772562346386104757281975196863319487548937598859113991431296230743260035761370396030995335245911477689020875533144730873431638379659171907081365692726309226488014536224881407285768833446800536031945396525276193957572306663596640161000997192769109414875668509827875137897069083472736409974194226923867723366081417085158449289771728555331544382410013027265858763002515435209086226298476433233369322065960514344832267203395454180041563112575896474651087103694417326767813822782554027849868017123826124062695668958809608603224403834002172805767469322396684290792960423775932711562942190530712487053689870167298141601240851520414150481333754100640655295842312156008077716727263990335328383657577535369599312993984996587749715115219595159768639933269965120773487399728457497239071176851541522988677357166951892182448838389756688987103312396646124298720916662254696059994765385871925396800583239391372687095313712604546569048462128532352282469804496118490945216239009555882783882473303475258849825478342095334972460032383773330090043070006623686279419409934475770419134399486067760189860227563243318392298751884514866065862523249669439319184954311988118922618421652324735296561806290494907093741612531081873935737581216728847168682239394928043541655131234286036740489008862182731241921008270207354302849060000418031155544879535667410219932216810026268918070915453168682655824668856659930241370609133608618554085154986301941250684680272097472142907494822647845349842041316922845263224744368860211879048433435925416254460299360584734150015494215232747609324293198354473071131250713383031737818768559929444151707509773648842748228127606552908475783129659293983126573560668363764306494151859981578316476999135191147973421862968447555420584353793793719559809040847552113474866625303700984264953352348027387647090627198340398540537725236130898067105144507869816185001079506395666664601536154665096381689880815906583799653061429951059083103808011301043979265633013422456267855712075370841079906861024691824437667093658796253892198639635287004747787808370105807195170437924090133981743116249434633166687772630440559189939288195142080076785853891832455576006752716176193558679025896642673531219747254039223111810710138963606010365925702687119120590650763665742856810856445551448114653886525147312827172803581055203741521240319739735024923256574456692496471328758973633159652339015972032883703042965854269803125788757234584415994272037288999421104650629342444841822324528999578303276239581424531892612047453200697774786872889960649170738926358095982324460537757495767970135868018736655406611406050560693807311416120318580651043208919712952352782550588086618016213745603112590557060833733176988766442361039988412507714680311827902383762984542501021535682320347625601037974045936299928107172039816939566018939755594613096277628756817827906925030952328068281336535548911437490229941596301015230978294350747376688194568185869168979487623357907029676715520545855186909506374807445983862683867700807786476829190623044904934365689061315881307519434680662105835543580431866189923815959674911539814500786855640294825373005868938608352714659348809958589914471859164046983324428439384185071794317921028119202963612942265369720187214494420032742054896576661178722435893589148524747316813778986357835317992800844220991296117180002817412209252001582437817512146615302049246178216439104951162749658277442175040674945668590194483326491690498234347479328153756763764481937378950506076457021244734490327987834994702799146419067881254661098351456981010164111604218145000997087907827150039643626447324368269870469369378492095764880098185925758374974106292626036047176512974594139940361938875810592877394447633804680241476816300151174036989655990401957422205022785868791762095833346861514823543436693971902621770437247618414726258929026054211280450914484275664568517871462096309102198094778803135433740353380278544958851404177705686012861529724887480572588089099851845321722600667462051151392687657771749419921969976453356152859900185693674119786631613024829896503774649895680976975461752485440106179142179151686896711007558709390003477007666520737879985067412873879559330928676976314506938466498750916256958804134384909052452380819058749735874931650489136378855799879660171366496207981549310804485107912900128484664513042084082866584513256452588159481825961303478589649267264934262098119077512920254013636381408985053610894419443714628046195255746042858010042013559766518545405870537938628459311568777529207610993827649042157453320133908470881268275340184204013743753029661271806711448845418165779920470869627822152114485946898054442240074721753798487931178572538195958378377143580335735388324347142847786374137288085732870211319926764125097875441627052382650318674448486323671323042859719005653209595498806526337159313340158840169226101084942087761882106046687946767245862450931867601857182460594135295139629939745851371992418155749074797151115225929618336443162641818603507319937557199908253397457197916909913041139502016154883512783444172404142506343972257049554852544874213593442495212096724930558779791201956896538623410516354196732938899917180934564979456115132045768516014322118232285409972979462646894029837232936772269856865740290163232408839326822300909167976059340971971386226685502011602755368970667472169739819686388972090619449968629927039533562172214053669405722370310125627004002688845277341634413728241756049643889579188491402740625233730850170433977611816854806508422803828963034441535346196545864347841043001274302668663203134633563039351228378129325330851906751880611591978676468250496779008084777829185789376422395924657191492452329968542141864921565346968938027634104249455903125467420018672132781366908103621904756307610580171419375073053268253745697991466658770793223608750981820632443165090037065477207792565790257928998801791333347140259985421259658021120726221960211605925580116033814238641704242922623564957732646430426206705093516769739296403907016059189325919827024548123516271631727568564895665440614718043920135298236517239285934066362702389039216436108708911224685129462974804528805751354599759748594551986918666546299795409289044500956005392616863811751632184175734042501573312830809170470184348534270069573625670695118698192942767512211195803008765423519319121947428859876389630711612491952672978351690351645218268553194040272938982767770836365961724392384321344295710826605821537429688071655944194787612712137816890070200990471426339928025022130394287359344222277603710134338062648865712587759062623018907634920206364158078940816126242095296749528048035049247765970450938091580708820812717349161636080795797480075394752476094092568268217583270258896871876738639997010044481364059030029408132237109742126418485923066053927049667842711609559256422438453668627288944864784805321092213304520951539312136361587349029995159828852557866611549989175744157318449303674012238758231596027470008107685464268527000410385721956501854206777186520467819755647504703777045460577998161731983978187818592433133702125499968625368227241694420467537332679311764830265349512510355993418909191297770592117863686381910845166329633275086907529591153089856736509578776752658422953570698508108333607888069504569305992484444105982278496212318786500184189168416646495415286172196000851628917048544090968312088658338217762425176086165533065952542159193270188158240001731706400362701692178526344986242665853209601090370616404213617191407290170672815168896713490132378362605880944750365744933844428755671996111544400749446257155420594137037264705373334831638633903901039676836763820621648276224069913197864650955528312212239917858879879041780366559229277382241025406353386178496217133048770606507904158370027988832145301953546762310824374865916255004001201888676766704977366822778199849333021692089109675172683274457091789048802224163262877525277342872883176885072584530581518852536838520692826608583574888838307646906613847047780607725422915138033919443028651339753418106652930936496028999911708254797968490408347743906417341616503343604584742245735771529524800904249039559813635696902321120378948485855124748702912897252483726689819299887644025877984343965232463324709359787976661872085947638239018208324303398965738002182210322211515218612926365265363095153542515431041324226527820231028787368724417382652140643340461025053962384631995879263953856906392636324440459997595068610549277913948973640508458019899294889228884589858980420986347257266132725662767147438462131544501619995954068410659237646056061492278006055568368830561077912913584219510169734040981974772421729302295922323884259452922588739017033822766697518447512101863150910286802970593505605105125080984188416420497194534522095280293440859858367161866936262026908648710422314109175173800827430207347564874582443481661534239886469863931539315010533207389128745110513330011042962559176985796935708784881003223069848529251579246278140451052814546850164940211958669077905430545344896272454302667029669601967404805028152217489649208813231325584117401050150496383773142674725048985581393167401412692965891572550460634595963127933791438788248110532059688904667012890477718425611469559122745560016482872713058959626262264537832601464164014557154093324128301700841404720312345867224861544531572677060447339802849389422414908050022734980564697953924286232451254145330601882930825162468143628528991795668917235424816507626342102909514562060770120243281992499238661040258226428656079392736201199468978087723767704868603413720846855492264826624204071955920803116485956265258866942836084789934627158583070311906536536665028919100486590923240029866420175704967915742927494581735510361758487390034205668686639947366348858198396907439547889005058974427789539266960411640696679797903062549700640113768534066733572894253413791523781692318282865115056255322154734190005314991068810552706149788331167973459207012582993354491111024222891191072498083260370461271144267080297528177058315323265169089352284909697479465904331956352944728438160130290491555452662135707429877705406191506847948041731254231196460657203482534624352267022357739627413289246470863726068399375780086301593943853452310686807962036022593882000656590250130307833056536884036161680530803352793058915990652131594279522872442151078121104374706272086036703913721839799556715868620420064528931247034238923899397654475372180111899437006816325454756141645329480991159500919060258040926052025830205728383017775176503205574149014928680825293086208396864495902631765034817205958829847077422613780699933009713922586044561341815629646310454585926103470301113905689017635062675683375727818583340504798698612342490225003562068691961634465625243240053960944898780572139969441419153992014141622381025353881362907290232531179246109921327049189209459165768846598532765106809310991295432495527094246626767184437818963498807533728173286469081343428191663259367811897117565970476280164430029664810209271637028023783115274708254025659642460561156579838208462479352272087438895262191364801767008880524448926434838322192930031820660826146735085541722879784935479908884349457812935581060800476474109801497690494321955047435135906631448341921072244071894419863415347253192473575398040553837729174968597205447653787595954492362940052581983873537378988567033658118659006080258660101515638083163886135494316912679249829466233199125622151360555653090692641414868217621396951915100936047602251247485948296405394296777770304289153995952143981620953240179461281263598468544306184328259259644326110996187088621703896337899997765658641783059482061515613147850217672705901042079451995207756355088662763098034923131429656784510248042790093334430208037950569349943165952324329175246346428420072523180186543436504848404753070574539677105284614892006101319040875580367456686389065612286300157321228544371722406248464087138861423540948281214104575472499019873162826288129667315764964184864049844131612485605068422419839641069916591848455782596932763200045460585192525186873982862810758604933806218871242308049638893932676868151106071490137385063636388198604588590772008379817287958931208423780673314020848603849325208827807736936605382363729987027669778489806326780330453347728215335249497843041760991883951694395865824074197231529949099525857551652972301600031891383911771002805705084454359515728428445253353630728910806542900092456925790839408854248632105167757283006063097936252420735908837759774137703757803203058163423279619715560798822322022860847204675050996736715130880953556299684460633283059730186403975041898857670465775687936193313955192144487009186159648839123413636459986784320379231698383986679103226343522862037759909863656177376688969934769600823544625598112679941539399728044234198715051276876677293545689100855187185303078642300140891724616330801910368057642109193507470372938728676025701414275180597701675268587615379909438963379601883700326414133275211912643550035088366561622077836337474172664444496796838560369974090081595479302103293127032212146771755669420885468317146652683363197366996141055329064165727183598490866465149786379907915201299415455198141036543407809786819576376188084800069089984914684700423129998660081075289728844203535317534759909907706073558817752277672161248432655665385973864287716908224354180612979757746778088800539695904193331028135090177812858163392937830559891035231309297128628952323144407662834228041425049346028050018288516673603948116750677428427632057993138668421194971838754512856024417342364450828565963242056422294980057189508948604195793111770732120518325462728119875828332987971071021388683922042879714429437327366555099841286510160083661327163597493063684899925575580284905024390017689717003470263959550184765171226337124822823781312298231623793898494361603605997288895896892340236811565909063379448973013028981506194148345629420736780146996422774059501324766378350461162738498910729791028337972469760323912734676210999737438980417399245603639709926863571278693869038060791644785024337557236612579982091233059183559497055844304008132490078122987126321717981194585153945879234541099790317960164076745092846496619258634553439066649869893281450113275103410128622250400697115760585398552373335824792918489971602035638406029088330608530793648437457524077031769436715081177372085261950544648749730617297546756020313914693812503748729251932303941990439744211089317535573825568419637593525669816122492372914630895930907718033115233009684835211298914303309024196284181086695563807215152294658043863586803245154857450799914867722274635996165889339989018950487499151623439100725129744637435907451930612271934083349692720126286542404746331534081487410974954556225427086870637823331132577778091658124257082608127478489764312727796170018086809164536866727076000623045354881793815817193768964361004276212470171821751143870645469333460595676535705429977886122060307932396747897805405535594899707102664213109672525622174775304846310491980149024273053795324378019410606074312290657206551553049282142094754236118655507739951962911276946915510502103989027322446180876087892745537312074848800779146591391289455205767703237952949740250690809943711690697663055155961444515385823262571823778239021588155705920955696304461157520642176819040549341757739571411681036915349588554951973760821556805588216270127501680447910045210876159691069152910333060097208128298559256889930435596648741586890131173910862959293615073217715556920560149550274123774006072928529671653207491620051397831406762856954055977247026417124888694762420597936564147702107661517981681567445367881067968845025000260934154679250486835363778724214342373509490336348432675227325799248170646502869495691687218529811173059225102636517073061170544227962088388834736116436458892660456925425728003518910279699730964529409546450140800124506803688683776894354806420535867885345481411137354364131685637752169959117748336830102510300822469514923253578965165044435280971368650034115019238593000552659055546710670048451261465696139333663245342025752915439452340479859658646686247679778639337262219119475004028703823841523248085683322475214779041077261315631910340799578792700415730701353457226122439308839817411913482415794669613843642753386305623503273775894666865477087732914881657255501102262184497956648079961065830044869895434889025635966145766799036428344587423773766880057331297427777119212279643776035381849246353114342589662109940890118492306628885937565880383892269129447259972494363609446216819218450650697249753086622812015625616105602854872930660384512490524093165625653232914852242328116398090751706281090510558369574045826694845025309264367363239164777117152526570351025471094595004439906189739099900194619095399739566784156035922294740260636100539784487822064339421011738626423956008349769311375425425070471374342711771882324143857664024875275012139879651081066073135037486400779448332864744886995256955876712091520640770061905210642145145832400305459476422242022595201207024609759737056862450444949625576691867305009823336780760432528445818954799400493956113755706666824753519766570177041183883369980062046841290243360872504177685554053239732580582770386568230450328045398301294681697518199833588467593048562885950657879002510622478913341331797144378403134614535902591801470114034410649902745008622241201869398463063427025689745239036497937855279743037414561746593180590768986280195110286086260175095303419505769884663522615924406346765459095700392565244077519833903269434963927819350723210624185909466257460478723761140520508690571992946984278538177671932285580269624132615777461388966095602001259079457080315794639034216460477572676175406101332125133269954047085762913809784320939763047448636537053118883229883227027956398378962763763371134856569196332958732430062826666459316780414573939158090075979751092211547604690168498600024043388420991747083160875532965979541732201347870455131056113013720955840299148954495517572383063499008645440609834313613978348746053606526962487756386074748282478003670783126225816837000116149164156273397729823341456511788318760909846456076954116000051961493003617898576012421798836638468717396758340527571813551991485679606694242798338610757583079319284267209351856819443375144995305715563204710037263850959160523291339488838506662823234310184488577223045029046226050325402379728664585631330557111535504519350897506266969406830952342037096075099285840840673304328771723358130752976511650857696908407746475626058544754403040295977538946826837717044796673374648641983382078971026887986693273617483026381101823107921163506035448709606878566907112346637307315972827413409459192750326653186075984597855903968146812936024634104308689444013609956593484672523267540068900188463757130417480657149056126571152709059291579752651536353162079886014083587464114346356405180589411849856007037640951814823245163483726215604861539705494260911190526377545770180897822454432557192063529958266981255839511107736184988500623598900001574586183031652365199048689836601220650504471180747119589292382652183216733719853077230824610227496581517114292008062528457816819381759345826033897440573893066483911147160181475124970605954085424953765276049471504077551360338518324302038119856458719542261433521818886277896382157391878643003517580617584680759557734779093010294387398662838580406115359972999164437221467998136039461041499305700666314043090857276104315261195083355718352500642066712657821717731175629609349790620457337813029334204444525454724293310937006291451954895922273449290400383199805863201501324332383245247972024558825941869468461399877317729326681398295102483826494095390491309631439483030842489611395268331357111948986864791571380835690543274945512503826446526270416156448238682344545848673458109431028433974928148544419778963608607723782615788852322746867277007840953848275194623273143865587127994101292314300958680228378940546036128777202996916941094084295477680449896738956760205141012019127074333323426811259685027297722882608658084794860747211657238957535869911133412559249559845446369391555788871674139893108504518251571162106350608770664240963831885775928211032294036880304543853191333442369548273010692522550929422411661442815912602419744452103776646952882677920444161069997315309822516809313062124538037112732052871601059557051521935685854205641535861971754489729584451988851316038313068955720914600037446517034247586426219582397879440928989170686346002306715787001942289235839788140271879014546804248349156836615034496018851046741934092185274822568542910716239376258671372275705755505935625440811015741567475612063859918636020886044601654814298706082791862131591987693405814278763563150251102589241613662466633441259055741627038271450062698386845190368957380839499638478772373828345634209992765906262352989373189186293906888570527531384586131313533827103037764258908325446880429819678535754774593428922085420970268640927977756962075580739715499389335236741852721758493252329027556491649721291186352873716502372948288864663113519970881136242377521599672439314181154092711263372422997812877966948129070623217715655172019524298251056325982291785741857006165087143704777625139579978427839330534150243412760869997507549756554203974441406978932289163070224124589199570920679064354180418950590489991713300534150723490561566668121408214923571938959999649452039691542870701135481732947817306238636097814636620126667922855227419946294456397746489170266660804694570784607897860600735497710212632686632718302841393066628945802790377933410788726427284787891332046202900702427205186599527292281296062119568667101972786652016325339860287049068221819902238938801665866835774118055147943255185149400396874409728794806983749741844192043067060389333342023349424760863909827865363682266876897362483074946144167622994630201059580219139214954388245877192045056078024626351868984041954421975961211769327053617308391017493835937806324746063293765689234301676209478776145672183875518105255072509842656006389711061791057752943478166036530326461373849224638406461325930823011569604215178203646140679713702582144794457528611504787517197669414004463305089937390728325277317533395424234773944327406116943355865726011987398354005187319472828488717254430048605923296727270048703665124721384446874955604543611343188336999656766596851388933783558720752029979109960735414066429163762930449695610753115578036695646403873702700591428018881065117752804803996694202863480966269174623759578891493866051944824359797106490734826097212680826579665213237103700321166146224707293945230584833134604692308824478458874506713495840451986684269254165916932668875443862496577724582991493201050243219369946121170005494009558890241196789748767262655514437094665190945321525918457978114635627572425731899690880946355805266526907702493651559993521321515192014153822449363124358152530119029266928547904967926802555487140590426149017158771219994402250878144214295641064047776674054383726382555277171747240914611613929735582224402739454960324300218019810324038285721656962760015050358665259041563164381138937594657433824030191893562038404237085178142397983284854065604407985257702560499104305059253845175011830737377044985601946101309279406850933182951251258488604361908471425146380253305867838808773225859654484133225809896575910307812268375308329684193914494915748838994111354925965985680136357014028792888973000543176638580737922188012752064379334092104529352112411091159488990401685724793455224447231925203466958436511887770753174559292989044683698844295014332008163341026779754798839110976608892593474871520422608539940638520990170374071019299244582431724495293542070272165537058082882171949957409134966335695354140642963236805352422779645208359758254419258842272961737765274504491151661679812785611255191898320975624243270586653333532361893834458737443878673864387113687686042459672235710959594987295538899858510897803407075241090025526399116852052563939386566981258438840433984717173666512606634129737109930036190519107480243043747718577298359755484286766596081920600583543694435204721446436641353651359109019871440709805548189955502892466613568886834769634968534585681880053016949291990427415310242567228726176681109627282643254370854045188862635683346768893522341250801411697984352994875851669964968404699085140487883885166527331036943382208156581762658682227334668697078513826807537093581159467221757276563171115710033749486760647030946054183810732718613370472296087105931094972630416155252632775614763265514803516194763972989145035941268327011114013226085313082816766304525741329230988221748755473047602877580758411240652481675424657839056089642956642174189305790383785787613616230882549283925715642940425606751553556342313379626083651129282189195525341158728262226871721023745753951178861695667617322316369367598045648930048988458091343527147308734829729952929556795239932376400317122148776107978030347085835702516025540550870738481053017727311443045787944775469878382402467534651065236436975435348137885830132154655215115094767606320279229507826822242961927669253736272148396158926026512185320054929179137418096358408464110994557796969563390503316111523676912598963465389494207131713775554058959134006968499721821136622998972672983356980316435856695286391628639863062684410869875920563937666953193816093459798061720605558827655882574290414174897966067906750347590008730762815455811784794538270585525951207074432619758141896605592783570293363561607858308345444875426654703020609363298809695837033706259842089841389689113347235153535856132929230422177094211817108677258224760355249906737778894176378247256401316614964372490931599889060943826800946898365618930697027042765791627640066783400824449077015049820739159642510396881193059932180485851551128139458997760464085517731001039727979183416187671172439243531692089401102755559099561004876937000832037965563273336440215482085314542804452187112898385397776333266812462868302799434783808399581039602165266937845116857657713215217600281437837113966666574438762356808181965030885760704740743898195072576776746360455935536198888025722580282850253372426275260105273071217968618968286494110946564489064428760622254318071868253464089681592269197438498128884609702699445271180543664734484887345469524837591791713918146624523095453609466290133959862237888891862959417486575336516955130472897095534611699777169471365321895283425091606825371932395823544758331986222175240234895810699870164325193034832603867292080966295799223504333155961306935879932368126423361764661629912683935844070639266140185757732118802314930623029661789261952760446768447816198835954137311064698603477818601589000287261697862983494859601427696671737289497050121287715689776020681496203251530136261947543959068115309768820488052792030002817021094594800053599626618608930338128458566526587540883828084328596640037586286773001545035520059432883416987710144010716771367654624702509617629923780726920765479573391984647874129061166010857453341239395975939665792460476696471926262837332627817730565474243467258439507991494920710823506414997342342207035034166574457540209938642905856949733263882148850619063088464425892339330167726064704675948209327203948328893527080019580313142128075675972777437740560936052842578077375007323469545177448534562432245715413684645645457492861045513985084783274062918634447468972085347805711693795192092443191352228697699215613079809267520189363353032260923088915271401103318775492810843795020152981501510406524139065182832724309498039355591125195541670628669495484600524983766402430694988366964786585101714772838844858424875036487906920384627483438894226378123438488508719029949823031997630415082651821265154881875161196913120469128622680449843371712869349968593014508787519171500956103750077721951303956048340452828212326564754483701535965073541355637943770193292979323211237601496624728152827565652768495561090436036773793984853499047475999286904868735386766835336141853419896993071297553580224483222808823302699235954340819911484966129285737248561019833314586783637019806953038238184588927624330958251612792477433411206268665669983417228789792209424265613294684104164532156999235421317340790952909816444248802871588628499701496313638430186629725592186533221333444985466262742331344280326373651669809970553666026556791360497951626609347029713490933003859971423719121003840542080201788795449886354642393140582182428426283685231781080688294072826440602810518572634654623475755710780390795345995101870001004714819331735832442137951491232955019309039836003589840646415582719898921960592300677286870056422669071082436834787536577259705692029217883866967720120159272472202301700860137805887030483361140239627057817149251555074642305956923055495621715091679737848326803703065596758187199788360910495532577683037669348218994006283243376690047682121481405255612494169307138041245872105198137394509301331221495298724312336196355276558641084650083151561481350460563345599562310162576062860517139564369507228084654199794948730621607120235409015014411177140666451892267645060083202372790917201840193732660825629329481907012494614525561492423707010888293453857210384833425005089082432354715551585988107418462854169482812428476515136584291343260253663151024024862660540603203905978449864766563665020981152647644208397533757721945293758983815100670722335101473295243633100214486003003091181761697864257259748483646801947122384880997370952533910919512838747716601206645124112054759155375064697243581390461203579144975724666375458082422606489404805831237639300641170610644320233916980468247092004024151806039816139846491801455362640966536753018080190395103508655039656874231569429616409763096700873573308379727215998933692058197113775414882518812454506442048086013612481801136197967061583636337687173264070418816775161632381866960874068775908505400670267361512713860453096929506884134400948326259348254719711758954718315234889856962851995304601264902859975097237440461764910214168390079645203509524304494431800078754814813926654442229743330730587517688545221129047100150113605152608673405558701067951047722573000426215283460141121184605353159019067187260642534139034450368390293582985021482022254248362197784493393189507203049549800161146464719590512926277345543587524382654931717870081340718122045104296883227862276144914240999721804001752120337314512025453613628131802213044743722284236129989100103130744009083768656994806736918860731171451834679818872081966201783985061367886408040932167897460557822379486123093352858100724145611409862357216026923228225166087851388422204643228154825233324947356189512136584128531710734890911763062627244769585802097800332954862278905310630344349380916339081141713347050058764670601350846142772248899957822864638203654268061711786704321977715550591631908998511419052506899712706894132426954349598091001531797541121639922516496249950117660257514361165741470207486417322177743127799363938646667214078853837320074019399083223185468148971288109843143869233385104873428837751630953364746593796289199804378862989639624696143400446447283114714196889083016336365803951720032343944375862592693507734871957164332543677486284914375888313909176276446814195138068403318481238248792388400108018333346556884628275218585099612362644598751229102049393331975204633150613708381148687726765235493487278356811796073857149473901471857619505043425530380281402519896674380175889045424612918961274915163551787759779000153949338924375374650396216251490272535661367914347452457376073832519755367118618711321025395217829099417206229096606160355546113450803402801398529346644714876753347707939997140157289257951551044535036493379665353314139847474444897629048993402441554968372163339539396459762423763478487801070114277804124113461552261351941199468365248913919281909151679128676458039449668317274323180133027540047125111288323954396989303255001666467768980287861630287827333488147906372584576121366692006555140773959573204760415322871934556663390101852779493638929034130398744829701776657554029432488173535488384724263307435171992099708120570344975107832404783963242380307830525266822914232579388699014224552887303976361038662910770522781951573948373674161186297141639725425962849536076331771624183967173282732305344176315715827928453283470675473783676628991190094419068865046963319520970684644802664732839751988468475623619041923982183451739740353555576824803194551975399750776136912493484502449397228079500804562739306349914214046452295815209383868798759971595632197780373183476892527926509824789618935297290907233803011115172176368728930206205436973455297090298234590973245138677018362503075161876376205771600625973878822383211480509434614841680019394749193379867962963238550441800834804267240652465954148354251083960357224675396306675630424534646071891116288593406291680898176269138004655505478099122638471669002413858111837770771286692204233566241532077142959488709756465768468685779559525398158080005428221557941212199062656660649024840152388671730936511179688172976089404470627848321578202900738248336861673061095819050235261024854215105397670655256924744891998773021592075596541434857389577170267632221842232792844301654873993002553779136816944482469832113733449203012562291010923592905398943652019678913190670904575427787932180660622641836152936433684105908400736265355701108830065453636702424496039580130851475499730282898660303041832264391961312630369963992042546674150004860983825829514483663676710121434135468940107881295081818331544749944878984051876116344653512497002253002955587092976652326781257807949596837661154122416893906033121479883584989336395489327347420610814934995389948909715836001729062937263809175220240138967390812654832683806504678670359846207570274996146643879098284416496681612571514534609359582887559764359985500805863114479884108022363344843172003446346205881455577904071991068928168104890283147541436010387938755789230969251628273260659728732566135051509655020768411713271869752602102075995546704600875009665268470920424668934153805596276475941347781593165377635224364910295419960190551883252469309686615866313190685660582663012043073683863796013193947644119665454808104075909360330803064679945257997889370002270011998149740328078411980378037147894961453506815844397829667279746961422396105482957228775936410812507449975464306916763598671790329976840448438876932646634040125023888872123664434885680711213787249753318540497514550390825427439998009396863414278935341697493623881411052673884586283102393489324893156827189447285019916534415980646379757110578802143058936478711527415693779466699607919547486330988822452611814010021563860050055032804870414569289787762996570467638832045454933014267767421682415889084133418420409505004181272469462135133571175189851330255435994567433831239039943213351087976816887258363764882749429181884371124822675409496002603832723677836510007156197450710827951383827919330022667504230131740396219274577465021625498665248692560942138679409898473328382635648644447721103859532796112331834916788118997169859678207389795612282097599451778732609920155889023241182618839880536785073765119425999275309774990617708654713674521932211380166810874353777888857742135835481158521748674573338829400286551686428909992162184386667699548215959789343406114539300509753010464984869171932759971774664403708125760679370786057641219981054603350628113702426241406725593197468139510109200019921479730134450523419544596569909828001695711036315801978026066111343738685190101552708078505078093447022554061157413264694166134668522276267979929762071336097216886254910530005046779602964699918878599032886780159575221026913697939594923459774706925003405059620796881545564075026314901695542355333483419144715276890558169435513530364089508731185534474439319990326492221458739503782523836782362170720323684376371194305037442209209608688918275420605008829390360148105581222018551608254616343702314096318181299219816362534220299179408791525244545977490156251743979985287153015241263205632831868251882971171497862986712690606873603594240474894963179352946367904649334433938626253545528764467267127031101000811867290437885291730279887179267025000373173424697585256454752966773266669091603146311294126122645837866272347632439772872210272369587001172667893248316977723896380825929778407893537096080096963965562793592752909013232230349153050610378216771422419533881661394025875874043003612024161084337133759144426182382764353545767699616422096838415979785348332431877558202872431115344662550915534051036403479788947807987452563156484673533872201145253487008901730609628955792534408045048680771685357884155412666171347223493679154481445052664055401092082834696489626837145078470416206201665141278606540559794043576002240943233592123563726787814314653379448887101493482159084955952306230257966675114780765168457402210570236520288172415266654379021840703732366301927420469175325508333092928418729771300964098464441033260362260704792106421356559533314565633193469660725950174978438862245185970369960139009792029186151607731155442102779646692376513231262943014584824194614795981195908300829238515917615106918809097224784547626968646254176150613836647922631758477128048606571544017697334741668785284921451246628458529514804107632109245984739746823346678774982558853960941197706667331379212435321709037591669742156099073442540295089213209786834813960032866974970872448661303614458457429698998723554182773481036701827461080436239684092740170891774090322809466509306891083654188377565061374627072437999372325617307308944329801026613745916988202449798092287379171800916809638778027278105651575925798780566748628998519282604415129908589653569288588110869416905058858243150392153452944879360231429243824061537824574374773945253584591503466298317966983085875574245194715323576943052422125131540588249807952027648372306494712537320784064322156831678809108557617224867516138471409408313373777363131775326049894923862581595978861085434658987634460940719723642764536284459392489718304729894294997652300200679587874297044903761981355118795375149563959043071001551688016851482796307612263516658587339733488416806919009126884919521851860242741627958715447127333747320997093599044927254467381139906414822790850451463004827452057744499144850571231727145593812942507430075393837399258356695172974653475569296711206565416135264538830973241241316317627785977594622617431733448293973613051034363669984172054450870531752213960430316505743116454433072593498784194754429061465221820803091009610158735757728199290622185528862963172791788969845966474622083653332763454759995256825343403254387450661041384583596004406872473561962266091726371902419645558231099336116307403088429418026773696193191618282606043589603969551114087416136621706898118717688949546098870096965748819222260788763880070850197638719192568867137934879935345121599335990892641940077939336991161385473433187450030437218533129598862162573919490398141255028773820421970191252033938716333469169924240499673453017513791798528611785356097232267388100293317693485955243798323120709818945869531670006664795200330638077691985112371028200765114892201310444936040374070785889807366394828045523836564569881143807352361826744100290893219630111666543233919182253712217774189415531677237824271522523625833223374388028776310226855825105560145203159238229921430842938011897577007814362835221260702508634467471923621009623882137686876223322655868256069936683030155988547189720015497243509679191262897688373909747979793444762817586672970100993646356531025051366498460734556695717165961094952076582209744649651432578744453324570043886416828008797267910759436850284192636116444136860700267554979882538426833697569478428596455224816740298031665883049277374201483199171675928642974824616110322303438679690495029581950265213425210245909547114662163701716716952957448712894733732951312809652771507899443961115346670265091880444744363818944214414210959770753855643563385689734999421410572370029078691513107298933663041029316665598267291426254818206720733498079948612517111099581351753111429355935065226523707367436448509297445515470267958534491742897959812857105524492423900390395367597267459979331556633910683663723481642063351589114491082448176770013768671438261005820367194406105415352495075798464762388373112870287454816010491426098440783615166906909508587480824745311731125844755302085638707832880200519506825109415532265699140531649080274406689787945454058267433317929571243287244480289128543619180646320558826645297097964666081668671584962011490423358082671927483416849694852033972895637098647082777195290279133661176796423157671126917671679781088459661949226145614584915412461070945009917299269170300204484266204577656182705439672010483009322294822316155366923365604872162729425698858101854483195911903266787911204894087022475193554742252592359321413614661840629689827097881685598258598519604932867591109054226216214635818282223576089502007839340541513548407220905346706461035782664243362205128338682536712316535256428665634370647436827486441126727424279372705542642838218014150567339035274932181847991425856839387972287783945368742088811139900783985267535197072785348694258265004922433832680933240592949244702309136154983457318006846250029403083835840846537357559151561589341911454119340094863619417565967964621351962627516153505379215576792776660296808710658499428270942925195025760738290833975337045729778373067927274836708690304094947728846265525930386620702181190542714221015667193740124400729590330950562713994488184456018120425143421819652609957413693758453020079593554235579018627373411300753010101681523829577306407176375684884926128450651167190756986543652612584806290309170453155532104452941445454079522013507448314903991259461475937992211320160177730251471213243372837909663169665719061947411014415486477312195186234859371448068009284777330142683085085436691690226935504322654102072489325332777929090537049005987346351548385750218039038216702716928888126060827157490301078331827261121697522096061420130896745536563429088280902332634466463833587091259616499946015775552281449479067190356982987273150127609520529110478465109079054693737643786165355518359925896727494723062845947432875924788069273583795381770882187719143602319173853935030357868581528489245212487599016470648896823009627754296879537961860892491393507230897699560647563289026679449811229305558158026369000596674516014948762521299356585057965349013834129730431964712678325230037271458338464635098079431576938378510662560171316004253452749427471258138243643373881816366915298951221127931905343773399130180895233197529830858616509933652352195790117765989038553875231014710896690737220839978068571919781280560760072452515430895380117697882307866520389127400157118859953369074146084966995290946454810012246638981868459894083484525392290188043642180799552104474026908820988772753537182302040692196293526593156967264580431444039756437561060633347057057153620062098138976763417195198909195159511933017709014518349895632999099991489393038603836862028144011092364520254421045856558791535810352098921104056412577803940647487719309940506243443748873533713835801618476131990446279077508238633599368261600595207232471121037588490699371668309666321834042032494522147590208901980990485679385249055648196331482932466221471283789616347887534101320588193630765476049467341738113196528985438549367390433659353878753201034611888985600451477242779448392242145663310821951445492805609963613922469382261984963663340433700863726630622884300015319428710601453982491463347034577408462624236039250772407003740395897881531068652706745912752310429468168976522258660000437113458661370244136666742793767956124715806025441694852514450765338644223530038765166092579642010707235714369237828632873777034223061494586171145709783527386157240868887061095274270694307462020633842576872409852775008945582300567095681371428070701875319575477099606042856312183010826416919063585540293618595264596548162267369463266693140450824602748439636543505663824246396529625251568605616120124505398325525660987632060579460147933652011190119604727564000655479756487389792457913580443766457968848635735922647482144976552756410489619613863486410562820968882192106920679576445209289992453819444570228749639641237582226889521015050013653299875341610221455090401115449504735074432992394425356310275849694047753630405799046646199196472360505432877505347368904214027585189453854740816642430588994178291645048294775129377077901418746214241964579602531349702102074999867103468739678930893208888032231697858101284927426950569065153958466097793897380454339563138870464540437264340324231231926594779381209383523123244925513533130126629337822346308859161172073854279128948798798207480782309267954206795608564354086893559929472967109738351870674578191201879541302324794501098506097118776348342089940174886109003477065859179029606016857647431551878669836271374993545903598430210571845073850497441373660695956817472388136850451709229242901818306173409802143522355869787715036491989859676463560096957003002330677498536073443774694533354512463896388213919640892567337461423520060658332119043763145925438737962592278034958585286843507638393546065608047916038911518609171929701250357997882754032793098344519203948935777147862865730149756848429804127454858186373249990268736327336273031812894713323900224272789378148628378206454849231324903891643385753070020016140486078846814069847307896352187196347712798991768940965079066030191228871229846520747992528828056126181642600681463074917388333726550658948481123933815222753570498818301259119392952490179357157801649516359057331274343445797884223916421244975582394522623227671160590144332890781045431136665524115161905654070700627168390477009674324674870924094704541136201245862441222241060098356867236060010768721955586298099091064565030907249922055823511491527754882986182872950351377835756686243247167741212197947065099506203854631701163377028806128021862346024932681769363535061163295374448683188091577914047731051527965131748333240608334486239657984821128338332768491662203011142628567198567372277440238061391296253652610041285778185253831057784931091163613320003607226120730581428373590023669243169811416463234098314804838944660989950346290014776288817342428488665898149251220896085317019187364129558682490359422778954667788803455153029030404012670302545836547470616180171824539367633651162891797864590897833266710066127294103281749556032244064181529633713165131793286884944587981662898819418411072217142038950738971845785719778589359594652660496116306313005978725183543408163131901247755513768663083313594164112528867926582081524266616200290524700317715481058329843862255829348981589134170604895339907721440104347057864427141000212707901408153481745775030713105571324145316844470755596364423859870927015768550412962523242062003775831818111356050900449165340699747065528455862271925587286318860014181097085907538965434274385541896867937213493875482835855596845130606874689641953333133500445185339905297611016939802141367441973844772255976348515701123461107338798803641474388017310368479979917195673782271328392444938662779042547612856221534081589353481343753479137254342010426887988125642304014252710250538115410014330647028554196528234264149250839043592260437149728212095499697748213968264202574931898217875652278757310858155749770658318438301709389415599757127338701182436246950609095768290189473649189261491766772218699275044176080215073073180919028895098699127219418629154719751212700079441091476174987718871628289494166088406751893467181319000644639053662485517621963816450750958378014326280913306374260156961664881231853497002315075112142210159866511780231056981524290995325287194236584688578751450360860671748837395109071639705136367197116490625621880738126121895947864430300953377705772541493629976509485497582934669884497681880385325223230874069864270083629866747099585527850545430954524879356787680777742345808910393937321645319082169580481771737869252200962437182241263042106882211534500063273863001704519450324137530620928348645328214806713407617212886726854373665645012895155895345893847467247170399739854342962369899511048929154032798330816656081877942329029151722670237494800450117063656643283585360650853921622861734985265676215394482686076124236158220309389616781009454980536993591324141043334474960746442773316416235977962694946657712141463403041103406683573174428753619180886992229392018131421443480472682399469901191697948638542975805639195364048236830600030752595718498245689315889619244525500870834084051628991228572527557558038104018429160708190144770459115811850089921164356063027995243080417210869715457604920986609899620520762122043914646701635986601372809798559875233042899134396831091497289093097269802941641803286997010080826203014047295900088031952070098916909005340743504658781428162237061188270440482423811785792779860231466281947425229086537876951012214501605853531642793194452790909101649302086653125127416901286166122249495081569225556880154791406794252456164198397678758072843979261149101422438244438378270352770101403138138922431754362016412338161764113199896623569285661313779171487669818053414420254871924732434981125872310635837309350069998313647701262191410403416515890099720933625060165254583587254505052854464926747367703984255916895953148084873707601400522829135081589022092770389745672249188236394322461875436939036742707009845913367371307108653409317700859346173961690542836861405636260234978329617685751195305647406446786611049959502014179190662028104913353909444278288558231378698764369451706150499109233730984117856754162413146203831470780399436927961697175637493115032101124901575066471491670706903816236840608292313921197928674269177860120325460344509748363216934325146978249366410835888279378951081743456671932505414265779005684983719068976181926992746073862937510805778200599712012528491218669382313082945382477351684560669161274529255695003286029998737731105931346048153822193939527447198518900010301982320647063273872785074843161459824958780194530173687741571256718259804727713717331442821593379882819846500023836341213315232816266915988272357322988474119664083121991565066227084581500400970662916789795855308172679018789646857996118898956108887297205036866242139621758219569502701630043075834324933642178899353721260497526663890183693742349538725908462591108809787500742276620648147848257580180439748141088747071308110473507726223416678170112308567641318477350914753063313935628769648603490480754017749682194152128265299157685581737056179464747280561962680245892622562803549110078931014391178062368903588054096227275340000268927044707779612424633466980692203539309440584317704858951481019489203670790213905241369087858322650981652297585955733904388205199005884027546933752222740087858987464044321511822968885003638080587139273096116627396674024695427656256510276275328459967282892938088854058239039511126086280251445148384685385271589428505396589682517892525866856957179786151599235234348125418431204748119974709721015161267823562035983463740932998406277958421408206968805932145402777745085223680075194643493920130223426668704561950762750920514704504247471877922075316544863042663601546981598915416374956732902199703099151093283235460425840971239405470400165415072111837085589636889046370230181968651226560732175318717069938006140899150588172345744935009557584145074828954108277659007467882765723141216819256432476143997852884554306333963991230961778687798942803461184733470080176439447831269246170427732442851969154422105684678588106213484552536149673052403834791024639784363983420255371338034312705161235503969605981474419629744305898745006347794542311390719266625121516172728897973435394633348992000842076148192859596990767315445338416486891945835816520536874534432372196436719613905253559864886334641561123902974707714778657271997662705853583389628028457144916564469122773432965851068421489895557199615349051751848145320082043821629714532160050813460236055387746146934153561373323032466076644679493252730897366751511875780553278348318953495133636032490437537943914604679309772284081217963909890594709915273530955703126986420868846324274158056028736757466997290718669566897524677867125113390146536884995249495041186582536343336356583517656888968079502307707159311710932666207718468379470931954463779298753213456379734508002977852370793749109618284186499350346791117424642392753145644973444158060505661222539472905594829902931625272464541382679237823788827888719934865417252512054247079790356928880296436988095558604689610196599320821373953152520583138943457371626930355779598356725836331497189572896566952109855792370673779483698673909184558924674921987858752433046614282248933283899494777120985260795484501387302893545915109810153050781157860981519130315185177091007005572647550564162952395233303951986099570150556624981295511371258944535374789731075545951607086697400684551500957461729796864216252320979859903325920057812407763720443116533508457659940869298037615667774339130422910581317595426232712588277277369480400032790721810200288470184559250244931040243156108003361328770236823395174164206587317270364817757390087943901932048173341842861121921727078562570073337710400692360845221363653249340762836912162533027612749445415637480199675131455961844413621464032345045067749505495737732883562998644492298741050472457286084825727447299159196160274145798324821482581051498877138542448043417151507124129990539120618326261744682323794703067239844493608878232091400113711507294054621653479445729105365896861100253312562871210533580841725997101012323517696169117698663594300935472083626069377517873280088020162263564919559076975644026471539491323090320530979664722359090361948950828867843612130675255913546365874291181288862020417495623115128443518072517724361532316996942755142974499134142597342528138493741042500378534772487394318493927621932221130827731104709915590895262642875677894725929831763581356774765937230844306705972192983219899076654632670901702462931835994590212184187519153082605346765329246784995544324465267175530804110836590914038676605224927892647648987629186721867792871158547871424546797351286127778694983659584293812348747223269364335136662166921944567782912329105430663543587114816311372982654805291439603086942686998678192107456709769223486522130077262463113742563152077031136878721061312578294053090218840438037582165821972627266787068782698349967474694975123989384057330944475004205953766379393578315312058104435110421834995686541169391432034246784830889772285756789335141529393691160354096678347455491168816974933071138383727951792110783117262876298687130247997079298713713865083108894700965929367492341032544631346682439205008645056247166150112285321623198238633970928954999732952745340724320963904506990706436387350686508214031904365647452425070362930102273724657662428922341702996954340058902235245032719710740228268891412691205013164282624309198850037606093636978634400379213334053915385954797046786219351244253409068061209770160844498841990470649031042289102341750969478738797937729859124833942300883491931671693950400530810558793641922457212233888895007923503221344887653484299534624487183970683598007406124525969389030023361879332073734530891416438775710199266589683628999199508739613205411106233705709948836800050556784615088515961512907699470934737681431479430024111464519390943942993859830091434211182672456316035537603852405516939458053507775704963815005057036322117530826602510796978937346538771045402609635749566324053781036780941093927608780387677517630631321264538178684441251283314340096409848230701917440202569294050630603141263422150891429597687771253815407304360094866388544793866708655985792224746543395195137859183260846489798903950558665301182315674668203388449763020582838430765580422767992571969609710611860882578422943243030617299972913549472487920708761840992013091914368800398704955306518028275337894505014831643830936239034596451542878348497797557532032062338778670125958710815034590943444455733640473189805544976460225835332237135228548550075837107461520037591633994593614669544386108109619936639788706710130330041925352968214826064771621228540007192710462679163317511806343755059234606246873496971945602909485097890491518074513261549441099917678827653795550467427585411922056289516605518363353293803912265020935142956145312006550686164781468786055613152619404079908567457975079641478977503014483652112529344471892239531339200921471958325982778802129134877276351024677033188829681020460751043972634692472754649981558564673799615572236274188761110221148507267215122969802096771496002342385744418340792438716612642213829922068099120693334385344133324598405892289607411159115720096074707574535881952100596473618618637749616224595848938753142082609033616463357203732543873044481350569921226963520100724349665075469497211398343820726370578988908992251807881017176177059923327484974521220477939081431270273869517284001560984339531402116298606639674648514721731011891404202001459602012770081448621279623897466612385578329809945539329084611283605064127413421103343051997710381681086216643590960016537157458294110015874659814424352266660161472680912434355460218056833686014812043951095253485034806087997831838024943727329479275035899723624906969615504041068288129406177882425177871422166002891384592548298582950406920269195048255504724170649050286573356864054784695356372947413547074926365932647365092528134954011868661689476800617548700101365665362288909299048063662702636139130988233562112663983139243642697468965495480507340151773191021037540248967292879159171791311869886807362590470196598943601662565955666718612714628302300153766003116128785293169609989044951920407436168245823572395442052690038962200401446439859658931934558430929563114339782930462085922608940033043700367600993596452967190003609887607699054713432803847579685896896085823808152246150830937951841205289261485305883092036939071190520760522858703065217569453798824398102123051974543231575845387381254565159995166124611341956392991052147620267550001237117904453826918998559580202674166027476195599702275871978326831957872105375919576542692302867268802159765959414713927204399666793769704191890771538670087958632563700151630860173473422401675885837707382146728485521496787287934222137990735374309249078043793565640266737820026183653265723390519462075155805736794014835158771183659681716275255196825389249740985975206148560097972534632532719832429074880008582605803085779423000926748189109513363186764247125909944279347452659698687171909374388351603463026223027025403236435654860787143833520866424917662848957585882933773047384510018023482047050911305694656684478695548385770552952825658673051397027400961696617684641398415977958375328969171566459844740414931543720836448814039543939354403933398293585385912311079795707205602838117567290300179216532999313800306691543856104783180219539142138382010989410961614066047235989203590698075337994860402414814975415061646629096013983121970806636780579800836499956563472647946262832754222778709133474690400714010592414162998121839583999348463677713969708548318577130659040594323417536474069102365040398432872197386223846538357193346360544189996987737803687144170150659599041976051741706378754829022614909299894877356704781154300596077821453656780823277976055252376111107301089991720322609481932150713588027023366138665300083905694360013574731730198325397098061793428971642823409859608020776094320988672759108777647798277790446410898358250112388520985703801479001385452074343595423284727779677315777054384306336961429602545701514285023868250502836419723205713267938731892273569078392883628591941419592589152688779438804494323786950168829259906503417083194449301440293914036090138228640755207232924296816607580882701378011817399889139065867761811966399588568892011865748509929973428682344832231788794387807794721526932041186610681055582477116543563369879974899131753171416794477273712120781094960341146491485750154120254181999312488108250905249965937976528498912981392681591354969233510825388690554651487865696906388858103723176623153196914250729429842537515270868222214067566776627514169679096685767495659887440837799035294132199876430360710153390213581291678924471543402316448378354931057959150994246909669018474469382198329597622971415475667896031578937057687602292017259043699624397299447196621268253767318413247863129888967219155099513491240965221652838603655277819162852916640703209096401056703902837879659834694071982825303111817064177320672988252539022065824827955149466592995403132194096973385846562823193012461957950402965493065066419426654025713539270674782981311660721333351943200355088848163374505102083610450062261762802753824511343840477292010751922280327654955291552361630817201907118040076361149268062171366457863945252185027674157114295849891098074836243260085887244044568396696596075505368452931857922532174705300192040381050714156041310346586501464507560863676052836614772278048814572448206500298555496551966902515744398597375851218177239866432979806479180764767350404463105125483386269850728857036366256225893775215853114149739355497338354987315193535924275635576976150107428851520539714647510399883697222520835243811161158742279256892364619537204676892042089251184236360227743054612364789604876143201243136473912337495981009679069995824761461619440002571774191762172949854159183838696872733117693688156668773305685395167647390503246514267798403965859271071856096501368341543051269292309251961181197489134446985464917333995535891303066374209113924557352812160325125364579484292672795081775053439795813506306583266165112974149809728463041520083402469423569283345404384022805269072320213264600105632580730425817868989537039458746959591210989624785760996221600166037235186391599429174088521094511959929576618539969643655307547317499487193695886037839633121646226914541560852967211850276317477260034337040110475760394244160601405932987762550614097019592811510374167532588199371044388106255359943742919055357009028100735505012408054518566384692811429816275170422912131881725676758186764703390266616632683596276877001557336867444509205359201486898342476117193950048396008792320280276905770385170962986624505841921294814146539011932048697921541341521916941844758129431897106983378638339508668652639585184800530441107271037957979474014737420024550010007812768904763324885596705541580253670292775314344837369136496590695688676047204354085649558470917776538108438752766689973114504879663715783600377598189985978116959186223717312466323464399597357468306839299295842362878641412209628211502643867187139614047447111343578733333120343754897934373850096894268476783304236534643676360911798119696832924919580121827752128758158995450525045117921813666651348320974759567018955680698984198313186526486470802723461229652098785940972255117741888636886324513287232395612234142431927303348624753141545533033186220746822399437274529166939456670708890612753868616306572616726211804068141228416951175986017162542869578866103834749172372459719937810814346563852346083760459849272686178126409454916183939382977434192739712320779659194872955193189862840539307295062976517697529643673498655929705429172669500047145451391128037185687266746293688668002612933054992322343051688763384865890105837312137220468932467351569005154960113468094589911220687372132214172875547026773005969281712684557138688037847463225092646210435648977290920452933701804886130963015050929562542563316685188794062281160787967764152587172978708000608027189463445740281420906691689773082461771295320039410960606496679340335478531871597077484793497313115035030608867672659755350418439817303246367350223596002712721707023193944460219035413737544153405039752345315392962292319419774980079224722275904987758362381774748993538753278126757941441612588191642668981108885004394859347295072761911632007704388614721430186356948253239907728894604675147659214472365654614997021769440456009174330614788244373452353960202110341697381769959290390676533362805706553101056222985964838329566401831165786431338263215594882269989332361122877252201273532448876730940238523640147720605707194475959233144871373328781801749588813230440700475091783634503621541494590321812889629008326931278898812770334467534589808642699717457111710801164915970182721081953451028022445365757971641251244273013240259195659160979319494202796334905021640039395179044191630177339812499245964332823276482044172281958925194511405487154309995637238227749511641984691549894107661927975895294534992396326690291766566668144835757708721049667706661116737155295755058505179110528588550936927557685864029233839169651776839563832478656165934077070380850476840087254779467091263228077756644545815445693566635397461443343829074925445279179656722774529520991706013546609872248921245124822397011461969428357201854696914896077681774176992489421742421190447029696881345768493817123233327036774758995641167544812093938837617104507399716363871255820412077406417757334225922924707682613732602761564724929087710222245573942279703703735536560762874999906141552709318046840625101891065799669745790244014336798328634174431279542799908905915495884636414916922557975399369639911561993984440309619786073202786984157284171327483578994208528680676379888134428226392224392494603423129763121276156715279402470052101388369735327796060186699554606245404812648405793407310552034690894793398973977785216064664315792137904709754481008937269924666592525583766431840844292723318301845130080086731539412822348564827110713414297373385504254728365964284005364896084805796722630685860875293360222778475096945434034710504038407724654977284928918922557184650173583490712268428674884194631005789398506090978671637275053614396883224594381219415995559046192325631755195249029839560146192518503960726817434006844882470740835549748788506483661151514028093597963310670790480129730479497731316161142067558802281877860048671117741757215066162842313010923703563537359423331131720883223192040468515715904530463778059931135615024610834997490466277916093852943455165948153007566503004988431053856947924694043176640912122311598926490494500964838372641103913365155762145931834806751695382159192882354243100448859774216768998751573810272745414327486227186148636257775890325042493811786238958420383749626326738288628290252959417608302680764339156048103508378229193230809649601690716496906596115530505077819764644231015098834891647528474847501524932993907395923940489277210322256393885817553693307228187331886662208905222597989600833116137774166352347918939883208211192424857164426360139822787321279633158186425437443545994080504101845420062545156182815218780314827999804858692845313854585814879405635191246059674989950748985455933677583645728725798062160622561353214153066023146069541233618202584499325718113640806046345665228776978305928856678389798549746025907610231453365173667878137556540054000701962057268440611503674471682881039230777862421040959329430266384537394963731256537789148342399496792364174285489537139477538117820588594643186241578893406496249271254039371277678919516515195502520309968797549239723270425402256251180675992812623868385301471755601498099387042035553489847233202763187303392380787867348857925384704591070719871471983671583795993969299088846417326434345031009610472548490482325179188094543316694401206855407710658502888802015930389398034233174445803335056919057717613729053616896158803784419866426149020409570737188478635014395151872872099660673960328674497658080995320130211361450773443465699136833134347416244584482321921243556785025047440905306013785067004054712166139382575736341828877370873879608256436370180005825899678310831150596049404247187782626121718055444727171742216175540819311669356605003015432586493001013933186755538330479959025887177379666809030962506714218855530625917679691240277819024240608926845850768374835982949240928940851180828337096337033243608845684909067064712341890548364797766763700179672088069981784452772491987340902773451296945889067431912738979235494919872243359209057607796968926812412105793137619435943565622449075527872923699507669416088509114425043010593575437530800876854382825216252796671219263250833862905505361215249105414218495253536246845475500532760100653108604933149363090647594170552108909684751859570610598866056629952971863679220815722321564821520218457709251359417235657312514764442125189786625326734585447356254483341769826308392740057374168812984635458052645017546517556659129670007521485783199243907387379556125565114201413621037625844259973264434957462543035600699174221177197586977802105846734916291702524714485947152232986842785956717758213466607861623027375402377571757041999229341817921871618096552662046086687584428251902664112334144873702079638725258333470393949493075981193307003953445065263214853597182646205474966907696715130475453161148809370458425187008257794287493687169087012478173005739070065400548780561093277476524929790558212108279065053918137620751316201418501593016253976401664722652057179253866873293158064855047280138869732786833922873394504146090838520605789788768666969368014489676778970160106121541166008868354059871897169443801042326607910675026629860005171778739824361847545543285828122214066966331475532770070902308485981558420443943657790864440777432213536477587171449647732160999617939800433233317198537831526081977452560908387817129440034543220367808378394226123867676616521836089032437707515508778230460227165976831842487067225956698965140398675301716841024977079773209686863949718464499807790130599769988590093443788110684339606293378229663656926628762836262026668637297568941153073157914935927556479598861772516503431519091448280706515548654688014729808059856827462645757542848794545902744909852558285341563928514748520473851401972084681770428665054601917746660929388865103682594569971558153432882283882521646396479194218328474750301358167395941095413158092307522725308012628417290620206674734610845621638911656467650734737865532983671989355566684651180747415727095773609383054230640957824835770737475136308801616458300008501136837430382594738095060983971527972767136283870338665267160507486595947902722305114681089777856899120672090903940091651505965172880766597723316076496991878677107383525639768633678264659565600674075464991758867232926687688660158671786309753055689534750189441328176487012898567584930558846307211610185370544458357623106868923687683707921201281751700453929610293227870747597091780622829108817871437655137749746529023562821091418320992594342403021422316157157227490781300334359542787304945344022126146097063007866004046857120657125155906347767817801503147772662539422722723304008816975175971927805498405722115660488553593071147439940194894751853662704375153840974424328476410966220433797184841626910085772697523312771911572917783377178820484751348781564965341870128209356564790387105674396408918573718622877272659639178762248082929354468185273425237906742903613878925890033849296718381396019334678565540938426965231986716679587588064036141737036163500017672240501455518858895458885591912843360924033083325538717841210468262692718751814110605834624223149558868126070314486650698082619453425246654918835414295948680181983483551223860467681316624549429420065745267205953666636311436845312626820411677490602741270697719615537017018212380872277333468650142462025216048584391256694238558093183394980449735137750638192758755018694645353240552886079435560952131762698567559084448099308806047658558417037416878775136026888903713289948538751364619623993319854755494258374915306506424325201604041516701597657599498462009168262902148008084892201958916322302536738637436418837190311684029749072489360117800328156759094297757304007822880768785628447246970398200696454087016502828505794076742990754946521816425162649025107765408173272506012300974301295483925717995162554717099645963738140247965370324852033477686209517993915718648162238878543981818633031113788348333656051858469504961032468091795653706695053904335469504786430006959552947854922676337121471957412774392675327797107003274210342240306504508883771740698895541086259149860714815286796177162063144222392143597890081454997592791843961264990417111372918296395297576522872502334194078582047156678666570143881264058688602833270309689993111363471881619561680865193853111477907700170891081323813791165196836686352267196212064263861196566731019266819906532616599580195941144507552716952238827143235622591360096164291303648925897488935162373889846338734255017590440950793329317878078043692268645794528303285143266724177625565481921315428517097119674731257888803184505368005125190506934103511660034966482443754153309422408906933100703461621987178318195068027874250450552753498179377321750686653106726733025185045162491506166917618322653656191890286887314483405494920109261695992560042995116135411260449445373320615236014749956249794637562391877700617515860069430668968896370432888459229097269378465040603596971377331252895077569422162492617519574713635072038386298155278729756650256135051584381110972165868015059055922536393799791094272573183056347517670599305469259377717962781356785309594694138924819347786014948758247133268443703793778707539069731397288584896333204919514529953044197639350313782616190157519158580728202624379658998314093064347591238136263501218720365587695317711210907257790299512556796919377960310848458160625172127443514270387976390793064220745826500302688724465477556411380110122128060662920752844257013091855060906920314480399092129047922893570122869785931889462129372705705393436211166098778642671935458411152706485708253301638298312564186076918877233764849686084217377054402102878112773667766780749223080253798072308450897258059260444343107621548702934277663171084474970817735760276290851260118303885622262220096686173021904749604965595076537365734182762732028843514805189228514120838431676283547713278096636174251135377365530040072451273388445020343377389743309814800630632671566553405504769530607458439092136421428923922311237980574464042620813413904173584118391616389791825467419182936053513393008610243694877236958286120591204963055243245435552304193518060985639765203302538765304391512421920873084709239722838225575996283694229899405972162909764169621730547074405380844936143475595132100974946291581594338875848558797647797900794240522838862445798329769424506398585045424688894630026336089899591313825442464110175499094749831733608278658270187075439628924565270095544244522207208528681079596132640967164595163910137336074425158563993629298436996510403471702378020989715356918244359221080446831510302630518580418012627596876019944776405846132586760173072904136808224314547420484717052319839729290667162100242777060998188446048966640385335960979933585963157541181619148813379113125927869281430582379782007859066412332732015145438679312325830064644696584446051021556102780454087233582289446153772614044122588875483558189668164354710680895857342774040505186571189231617390737570335439506988727367612627157909844020657693449130383901087849750759920047543944587737906189386403997216809959731358400810530372397733393858901613780606344210447599225432921594584434563065073104191013139017740973598216263337491952628295620864003492455264097211602185697327776709746882024440293343535083443980287427624694836314422721564592076987701746987200917042271951140532151639768272244709891132592189637105657516127549196011371143966684341116845460743770245480917838714617548346471571505105727764007781680480845952014111905980270273108511195488864498944346806487225294703608454884978602517041436467707789430888181505472837246520957683449513868836611482699494507713669046699362730384750082003959356939190133843507291839096901230621873215827920429269407716466367455629356800935310850769024559874118510553343727719300580545977690548037608143410015942054267172839086272392752948672173477989072106551212365691981408632854605323552477119112482571723540335453807046197835450816890753943631405094683656578642030882225779008596169035497864822984544048593389242469821451314377198248134199548642156350114952727066601465467263457660131849415212951529432459591609049846392534409655350909659709544946356879960175802317222719573608251099181201454675511198241544029867749734639845788724090050046920975629965190838989402003317593213842192175397160537025572445941041606224062236715053904998037704320776564663157760256234827249912230457331459477203923921461640276101571762944472631906319996741732415141353514298205818754985748767511517595914929812961546309843794847299334337699289105313721374306132186330381698418634956842736215918858905468037965030521891329554080846295639881309849222722107057470973198416055952472347263010107778955836477207520873138162759358695903368242101629832354263817095549727391400208649660332702398423338667837043884215406251449359532454459096610577938178550021657475245781352707298493773995653939693898350337881261391340477954874387641149913906221524579999936348945688078214079779352388648319755698572659796223625398343605436509314856035399598358968725213424290174293092306770409932036193772697111304852982094928624375314769585787843329553032540754800799528197875779938866710674975071716426888331434567401424890177429276254718881755947089555887554155606659065889837083803852270999979980023560394561858918021480518583282153784207631983244808330191503796927652541729921103036550118974188044699283981278839537812247143821995165364771681474135655223806788209995902976704475859264823716631755040053986166119380714771533236848370009333011288710415771605563121354157936697796732424269691967144188649115001227912209524294574885518471257217288818591644678258432696210237495793114448822298451911737777345266334903772361519309798129394003528334562848211989597048900413585650374044334786896634513488800343372986578995795498213679594529470119712024627693068974597199022354664045365891932123239592479046161984752751243150217131797012347059372820584106868697217149037082854000896483682237019106115818808483262797557804081717121172256840156053398079400073069738177697110057622750897492652101955395532242502950001001468534538524092477717555509819737931838451120281059013915962191698746625479121830906516128751542132734088105284803787825030833947905570496175178275982445629544472110478299535591015706575331126072530077720881837599692553046859955313360535443284449180491789272165825103398451548650671745335219687738107018748862532248305933590183003733707251130307033209060957119285346404921717629624695046527768045904228786864335446525691729894592360011905280566220674567212048748738455765114215678383617869647464660121289481362883682759471567873052673766184752160511555239350233903911902447028450544688389893259561232962133470882641400103869221228389255873307949220479331909882599613257042159876161025992574480918556990129243726763199446243709860059097008113855090135026021927322199365868612152869795009668299794009555971439718685914050400339074735242625806705839972615341841299467523258961586902766747954321788645988098310393120290750675138881828540906401138256094514284544613777860021060393732490284072742851829021727918888821736681611446701225263237981672320745824238533429900176117977069710053193254623252920358743986537426588311233031113561651435538452317710841157368874686620605900672996809633268731959770990967125824447961840259530674081988952838305699731985612883241244992957079767728882750496101517851109712997546914697134860774742696080567093406925859056839485184509764644031013482560260832442948033873561467893904495444983739678876274735879163402626421617330948092099812499877425926644120364587854300591707244312846341807033174742630103412090099818868491697158876016763899596409120168405085976518667984643174045507091071479176018744940317763550983504594391940062454068427790591867856264908812602712999157283088554790577115718977324527596324480344174993786278548787912132354985815504275343138088016615964233952420685215650369020622706611405212325291591248227242060452179306376105351272214833455414634337082751368764681652084113907197824056955372695295335971822402808061516897900880470037962142928496399704811484030124269289811703276467664325867371450456045317760210319428263738189821422880782614593068850055916101527432000245226888622470764203039754600384925723184022304656975486916940775386481614098193834900783591791224867376201707174042886365792726427967475963438705232622464338660874469116137710445464167410545828529796288986841508671811091874666061543922967528847315361859245260845301810583799882579899849313041838247172824629781306538049860185331519641384150252350210751263776721710272540269144453033650522229926255634600135591839702999372677640092824274561864567952341231234295677589890629091643162748643162851149197411290137455580861564771292394443185408524235446746320407755821569208057073303236094325656535609922300360666126561708349469449377973786691490027367212912660714961217828746651040901258882985188887726544713708389719989322583271018593399829779249896383088353169596297520522574817405745793766581522826857102834342448247058789115903406767615045664862053519991821248944932276608683508039858712683040674567152511841773131816494375438169941634104458212285589513373510309966759954359285538436704993812837625496700798336580052535383282434367369765593101845487571949004886491370738886736578258959639545234894669254921968675652094022165736784461554764731618002607186990241161244814111006379565785592222630519221629633995205744475352585309548868674376980971999643429083438758330754900239648857742816069273645905361942826369690361158128311418723586521002241505149759401264777455207149378664833325866714673134318632927707112550961821198590958510457707238566693292714548922323878801798121227895353995193942018623289420251276593071022826837373975648833533156791034774856445897871733461971825835405367954140057983855454879178325941849740115264337207766623552062346276576248887860085930224319792939560047311024380931329996784115001872126840674145641274856156073422353161803796891410569945127624657614792988337773431602341309624804088811735241991166124395095079944874661309724269636335777137633873558144651688357802012356614528145871005329567724707363496194463354609394452627944005282464602928817036072633027658367968366068701421045930996994158986123383449265506067140193691835566234376049011887508896560383711270322120531495570829500325218797695612633568911153277064799938323576544328270014617323002048079403096655306975166167178017520080138687279366911078575071244349467603281385701394157843993106129982007477989257335979213712115438962087185300178362089826249769912884824562911844527090767082317247236403305273063179074773129098388439782206094737102334496834500756469185411431512225499274570661527273149314149068138413537163890249569233569412951392052232486235626234738316626720823359201021563257818530969462547355554406478809973993890285741503003063319331128830627090668703264314334422864256785468094721042107917919298330534574683165223560189928057699776782524485946848017512440566516120543736918473342256333597266721392304528852114094326204291549364327026567938792833328933133316328938053311820337387744560223919372223360791774215646405613324988963660302867720455124838425206633750556704129056754606547656602147967349353206446460683565796037525042783111555613603512119354250869569655503282831222796626905715701267966829031230638547720385583684616123216172234361736963689829340343774215588134059984672759093027271622637427642821607396435809817600386279706509510882797993750694749406737353313194365150410386691749271495092152759222672202329285505848720565508520170635883250922400541228466229694654202420726725666007842668293137615433888289546053290780435305045475630772389895406334162822069759168691411513945674917814539362667752621904373935149763472269048691298756399260548406983468397691099667752698826559685207403503662913747428857973612733944147718755873475948997900368811672166706010644004463802818204127160209896192745696379044593618931533280707225715978511517483123656817079991740207383407233184733770263451818155802719101810907416411364881314172337128103915341294873564177512363156907308785516838951431276277283734709945610434427679429591062194682595061157928380810982817319928621725661693615403904312007501452132871139559094275418678801524720735997243205768301212420161337007015499497401578947555246817921711392749371404263556496818016960202658902510237212801886501429697269681822773192617506417239298772873246051821699026918524377527648454192783565123820068442682343773306087291307278642437821713923636707657361417984042820542230815258443324495315101237643817788760654004968306860337511006645376299634836037808492827773909507302124950697580522251175800434526471218461830706080061457467326652537645189653750649671756091834975874262049421894524717314200177149883666471074832611550570209965598977346596283513766623665311231938488616856681262936442994753286267295360642550951256692989281232126603154746293600336763786593685054023417746232541281097515285494058435437298608962211091754561004901948268434526112389696622738261261715466177780982172246286741833971866363263116189636441550721134050995017864433429929720163235597083422512035065933760861831623145694156129762798628893927916237559345572587232561348454934352305573282339454064566030438165694248632673718683137080005070986232035542404345346487430373292863208793627344201724079112876799397561627120297387238095058782503252894545999055174787005497098909854012598196818300110456140200698751289709835645202406798399017675036441044832395486295197377840773448525707942858309954748554948891231560196836181343641555963639204032296035508556108406770716226587576705097703189861458328131804308122913610894808917054907105182916995443797619038105202849989212438906357740022878265409482554576487996721293248366332580102650252701283897769606259425826886246214977487693721237372125027787357613895734704865876977307125218119363936720850512039196739471863549735846516102305330019139168822456701441982401614314462973854962347154384973227340939703537076411776173237440931787186071102278320516679726002372470694780159710486252008782308599734905354045697536692545145011868346086433620363267119849447248472489142879447327791576457854115739232818559013143001224720754517485404584092851028791304649502885913986456027561153802700383412162433028290720729836047697314522280836946519510180505140563298596970391412339920274300503348380092927865923974419467354263739269078258709198564181034025154734707604787488816624457974771602529591385872283599824517395262237389162057941527950970135260083944968724552725946910235452844192081067996509541210441961038201447222378908901013001398067844851537746330899892797260219328590219293961400530528775873399573751106497795179436228036458909739419320019586521838915935095709405241895680720343727172684331628515258709921315800904225966810183775535526262879052834233698585211995678474632906547459474706884517999059864688165472083637071582292724124859084029392458510718933952430745581816275346974426411062460423989234962205190576093290612378584668408165970307340866457038215745023572865363535922957906008137668201592243578080397832681300286490484913558091313294537402589152841074473674550861660117489183858679938682896134331821499590082959234850484773396333617563743362703820962348963583050011608670166289622455217052165747048174124456701331447699418973620867186828450021076864794813125006465903229310587543384809906976920809512814236680961514923932133724647232498713177131972681433029633304347743921234345826203787560700971188352560802575714039539476932720816307897943862767848202262907396654245564923954081940371154082731646299363709142948154229687027589372141950102976891435382696100961863419636851001211386067959989028841612673307481032401177994845395976436813490050167870803177132747680485860367969994506160308119223445160305393106389308245467521591840801519831519849072355557756920435602136138781436718090703628480689103893424786745507496624088635751243694346603699370744581090287859791395872208227761911264422038483253031957593310297090409667732178719866890358884222294444172715770463879984859783724980233594264517262523297336567545233141186007819278777616352946179102361014652492667930254228965533217931261288454593045488748676108324679679091591624986339722791839772981041123611039333994525294105201922398847842024121100437871700210319126004469123388433094281695246351099045146846562317371553402223783437947419683242193783469107538388546681340364330924010507118202673624801886586857740307038902425230939593845195851224510074541864514217800805591999051652501664490953818745978303058138689005608285561714353549857026800986744590670225934481684393187798617173787906158016062484531606349534658027215486658077416116299624688094686017140284265568673370806023236914802284399250540835123907303245818959686338902519676345562352689549982878601214781039119936885940761170989602919839044902646424983247288032343917994898674187535954645163865291462519954653370758622828844089064005352912065785070900713067048601404531621772863100690814173292207196004278347013823210011238328333483065723240249559641176160893126569104367246478217454773080304864469868549285851481595575306595627476209615173288036795392973198234411679864091315908445726847114000372725894079052215426953170517038785208452388583117225995038154144245890242033274690791474844096661747374978373081908967081831819647901644180037408004979446160924257972854908380912355733412241665830672356832515425651025542499558050634299806098093901206437599974924005608600059332576546763740054010210715856409525968118554463292170831138570424155730781449557537558834813914884868822975685865570785544193980377822228073393783670064838043766331718513874201604157969267352565608673406640426632334724723702610138954735639252259000106019592399027432998554258645294620933228272245951544646153226627777412499570574578831030731097190473818331171755851392806507210303814712860527338838870348153784960162989973390656896380076668546693478550510908141348402704455517102588076642695304827649381367671360965645295954984711394061126221861785862751557452410970977502545093340039180958572044536243830933653297501264331576817283515317990795209344522915847423306054231583852891111706013124304377393815270019076985873774549111311063952910707670467325752761964813327738639848434699696741404692952099104963488049978913682549242902460774931122601894753959839200835052936975257262759909095097966583637548124652576554314944898501797476405592853215587629851626659699821728068887997484437736890803471883941903897687466921517842883673214467771096469229176101176618934089983689791145757263028714946281029084237399932832348358992380204588890034826282985877547540206093935235415772560466324976798394275977451856820337059867942826586717898756886194234546410017247120797020086986741071387778882408077023251463294468029905450205787534021817202439460387329583873077912537196991449858687115394393274519529293610822616682894026106527601111024981200258000315133281557370925481029042975940950807204605563786864091395968611876434641926448594259209601173624252435334395866667361375355007699716483350938738637620921199701605586671982360567625792047226644382856048249438748355853495449148661255156554335902733762489966719369960440226983725622487651225201303655119560624011183071586372193242189995236867853531715649458447772511053334603269779443711625687897191131752444053837697388675970403129865284185569653969949586831638951177999713404596339044746497873537878865681743489675092631205823063538491538119451587576640324178955783606967766376010022186618460508826877918364463567616490674976113088406552193548033938679871183098242813214840293466720408630695659653383394909005463250902359722201283330806166690557787527389226419783602608258895775329919407221495586641282195988804337245538189385089842666352671892610447567362756697423677079647572363186938605992787463694690668783850334721739192283339923326088127499383070217507597197515280432600914316458516910047425029426808189991929562492827445059555730083099849678152817681858099281454121983081220608929656636778143564409483431003039344352279829181793324166992085502326597916246092248236562190476098299994497613824599332933116147813910628832090958122055784617901477187666919694381266573627580427489184804477174043885475524491800737123053664447364628706563980704133419902191409598382915705512165131525997624565930540468666385425705150539592904102737258733893821992513791159069802681948386348261995102659248818942104383038353508849292918629168983001068089021548729750048102394312817293491593996568154814314507346108812260594137904092073271819239529480836967931950857314724177354241133512174891979717217639304419709759406309641539205312739790412147938004448292054838488818374472540354981634179861584189034708922096629225933778163068239095076933551810887677670692168861395982591544712020663214877432355788881602632815580949717086361309679184290724754567600923534194293475146686100644075828767974696886222015639378718854434392246886021981906692240823543990300295950862933004972799001095068287771165836834843504060134681317166960298884262232438778322074919501473194741078377368887165460274704540203737234727201609763715054009765778055856092355032974114594326265973298504447074201029625354889108691457205021216267027770458594699362016441884532138868084494457054604998215641037081991641137292687669948045281638520537000722407441902448355064338737797783218903207119845484736822778348643087591934053861345173724401009874634103218605005136092005702840634042259607801341621501330017939814030569471851623982667177815962670377866196251018715282832736436842339267483418314629080728563841685047851035506325157058073775886794568140736942388395656882906849388292640460278830825199855048557075384277591930997801879018969813191759049180646167481983095892459838948660569982221429238921087528542609781350468763456322927605850037416523956676640388187246859804748468776387547695826818849959091455876018466369805658284140085012260872127868611365711080101982165235065033166466886006517666337106344213473166907118009505478320338962058958149254021518623603388876617117656487009522669640410794999239752743686129465906203482053537538776100231387784261882872403595708793938511644220492577163408820884770443185366057717812377466138683426014305208043318395997592569062964538615528670636809562388986852238858563175148013096470543263873230777059737368055583783003594207590013863932717028435413317861423687634360512810668736737750776361034938173023827486668978280920293346927616535127713349287242917472498126160466970785041059404249825001237195627340852024708854987043656662748034077098712393970009011555376905640915014859691850476583677020714015592586332732040580679699183801302945210679646177069738098079038922708945916727128405917486908116476712077111017964533431611211612443735752041907664654069169979752406252519631381597903748128949014368721814452876777032306111141555266434734564130266563763564007316697553391893001817897114296939115248014273298978463881554730284458108468101531256951420076435239699080522299110125629214508678133279197752459883332557317821260010004171129418388652383831880823640667923032530214400796209928013887513474528815437718104082467520699818802446803816891696575262347341762650721692579180817691434219004504120115370639726478450429041210321756023672273122676366163293080552806474530729024469369076536736781637839212073501618456633860505497093701333039677780224727473736308809144447510033903336813193989447927645885807413094678435571833060426724839616821646480607520293991675724947103046975478362538226396321458121262516137386829023170085249280764146811579590709364441129204134588029485207065283051272272658998017807334596013011159362930062884535921692544447016593889731709647549682523808871070626936249221641519470070379582842587687584370300066384749599891553727374006874623539684607603057676459562937354912996054015777743690167924387051591315945954313111022282960695312313774551058031513115704938106652774278675579219356493990243982880753308885246490937146591092572413693185551028763962015831503569277920525686048541726286941016531800515905039145665709556809904369296500356879231472328993361684698422943049364052181172125421700552482097232599091117622209325701099966516934745648475764160259140717103020278073327998305441145036565433776357677708396886303274437180897894088782999611777616982827891005151632518852904828634622181918220572604496180681212748354579793014499609643155973700600532298912237567566549888966057417146102708401148778179463294760409164002144086570099041437187464235587298426633959502919220990480445284353796199263449819381004575401588856642810586172448128286592329878159871655574288516182672952431489606934172014603598401805095901387070534819718145057938824013882863633665776033034319439515471150563908860939120505224343620535903899246161412283079746422257033672033124935981122257522867086832887428206106017899967526783629563652897578254509494282616531291951678217851817978976024515966166982827512488011022610665424711010576791002308771131174065183045788775935460297181282652702910303444720897422787419167998988381274059943255856241738936551330645403162669898965312473787545941100420215781763473759554901226507031190347599430402705689594821826571713689858382876594777105941973538073114827301147871319549971478329472310057981176742118783485615942153124450551772267205993663586267742928785933724648978508820006496512014166695124991256514464456667381850622442206321466947057048172475548058154038341856365026713825301611346941825526527870192500949540503236031715546510678366895252193656135250429532269593514290473385294351380119801061867127644169239459464533180082588869453808274966881394837458687669176024677930909577135553784212381862038552613514080307961515844968686786418280454019530786010155049155577110435838624985891674996791627765503468311113947779283486273031321285739750183182827190807419415334401514052102826003506592460806906132803561457556459901314616308337533282065368752953009813767469991539302484993958658142909453004859379712929307717813400163992557343033965362837391015358019681376880270027874241708353916294377344619691103674134200417229980925617103394472173310594838816604223875183879992344456769235122691613769704220890062805528473022772073098483154066174066638790531286138392333870228661486215092352244544059588396552302928003086912574233849030435277292001157746363742342793530040783607026777378135759349276520147567230820747496969759978928786051178387672488280898070115568599124143394242048355040033147089897926351640276826963104923273999550904275229690870984820178777390456396324370168080984420836617706319927229240775899002530012377226064674465917131173351499776259611848689234552917661141814173942899997131658216848555727152412027671000990449957721966056068936867896955396009116646977137827693495871118200300787286730861544697132757056137548352625545848233696462725612156269337675800389130151743577261103065448937685465745767822825442837366814247168370942278015700857287118723074314679379216017198480574880452590903807908935534443091578294527230689645371078620058470642951732642804980825325068693367901039727680573991784488228162329309167086246717274022685577541771455866957674053191919922841562604554150435552886915352564658731748095848989200484575532961301577700681714977216641556319152139571661934483194619384837724080886314437898469450358650612084725449435768562836441369031566357868321057889718934027378036658694806072322105013105570308510453570367747958973576549893823831232553469542786462066212740493138087212107816778261666001685406980604572239830460658066279330369563603309618255923131386029906638260379399591238243035464453734422594346334330145146040727662440252959763538218944584485656656493843249796645154845484614129863105563800387543334314465604069444537775970981787236572997166462147382380922555673108135264356881933635289684511415650913964618805337803171095523442112353995641009177702358364307801776604703800425795872182695544783115422880216394784206610093980913754728220056309920366985304558660385887522247092182229414348979053648080816038305276147129137073854956956500673514552024950889906208609143485372799468049248092600418339790428670671527016047475087185889768681720340763689259017642217798990859939111334768019198726051854530570137610190403813305983496185358602995723352672228128960827274701914148126351672436198337479333196939325235746380781053763437043412036426083101680659535957195567428301896899268951932947155699364668401066351783948251321891241344736012755718436751263351565243856147020798852968561001971202090192159573821100100051708029211247226774773007441889560449109596736307323826383100831654418225201993153608022735202897309385860395648206489256419223171164134782413386449028424958562510714480840759928926425168719518865941838095818685768652027887478591797209674476446162199037757137311043368640056382077289033308330313395438819661477340646509057370603128047090089550892147672319295413890586400142636629225588228875295079333181800704634928666366540114600860847118262318336449579018041409423131496580792026567026040895512959814219024913938127952098864078952331135358750231297199917152119460756551534515245865370367352783339049017986787515987807463929448402010588469182923483100758102620355411219106919493972285079313947240473720580809265073661340322774865674312454025925939346698784351091838197532247440810576987843434742535504719361357392004709434581958619539601027495445631888005073283977754506037483837571712799971843972140125797422857633349180417235368635394221407870863444465496049650378411803340751094386694032630541174424621669556837171366528264664307074648837197492559012635648856750420524981703824792098239310635257587712741405777967395151487011796230263852239085395102916013386112228157560293594844446483280095180895761985737677062860490017920850439076659819538085706383225047343375126841585216282480336571587754337687454220619081181139862969835052179657284341807982506314880582657089416686451193225335257986448382389699461893476150012880405940048778929289403389880352614143160736476544668324649208274025175691237547360489098440464873069591339796220796628379038766391537741586633264994054341794578562980709754529834895500290449199962233963679763694776730311046743325091398884745266445969893601828695261460457387248273670368688191866672546008306892133091343645168004237877284030958265198274219134825482738480577291274083527267585120664687275865346935212169473596025775545724626439309793034952973908267526128693190665362100359987864690831396870036025728679413564171827282263735387171456928746956524184390902791982041099922166228160544758680351279373909088504540930576885930469888412451095542557422305915862390061181401463191314919643544552585308687571657226850748553173787132599830578053617899421153818710653071228435824902224184768298590214750658356400594288837002833137347723888691742717887108425412102089356877677469450275874093528991801606666177003407653380379204392699838932551229108490737882957916363071621070419621069737961853544582582709711622836331235030847053185418343566531360125059460076515137554963144744234821885716976163227957423975359128017050467780696050613850619531374640554231416008747409162371468427332700057968112746427977365768702960913895983736143278952177029857288159623976206993872261392634563429210442363258097421319134091629309166047729554118461083392640292450416883964715021013561172777877159335926956269713672303821023653254631428644304649620528501482875085638801969399040079170963905977134215126793696276274688669170766387321918192557676559098309497247426517432327344126031355875308941131266612017943788844428181412810601235708952981893214752883085413622269068705001099240125236143591749215710857392732010551478650471900262986299946741762985921502050713486605105840680849125593740106859934283292452307998292165943112676635426642114593492359529492047405182020447544210248856827009618931588278777883270881601146430092736954045789259711386756379190837538285087110403274010518860981452394835388950028873801209623544684490050522763201193084447386351411273951164846846293238586364825126726904293914882113663698366792458304246685251887803927156198606681846937363968349408288193378268781253186340946550580751266781502597391450571905903724100740268395441913267068407390180352178953629015469801189140277451842487446078011504398288745414294082154989597379183538401521540118048055775192589063707041458150820621622451408482162467455321183307179825057230882673051201575437301539671710309706952060883501111504495249488012462734827353099568434828100131563024830154239570642525835267285262798397589067983579166916022455127017779457220840174948620586771566276459341968976196755589215984823556947701004687425976331371603488614989018028608903131948240388557017707637107855205884534876973114326144869144396941785580544290802257668415595857336107130644882609965789831647195856723767906418143646488230215473413171561447642907446735448462156295562349368985999055006160222556943365058716181830032779624510530663500229938304382545677082327407565484422778595738785719820641688310523862600379691195459782508018101441366359408070512317472599034915788003538085302992745541171797180901016556904103521127293152865591031966077337686558295209031762832098872970431632734884327583564273061062853148084947398079854717021765944549139287144286480203484694490071330711260537539439553738304034567969788914304206326787143133105408944198742582553182301101137338358379282099521564295183744123292482817646902782607802161760608442659585116711509824633251935796839544800582631207669231355836606445900559960225052006552689450009254609065730387774649896020802871551121315009414907626457477823643406586882859937721754322121057505546734233473119753519030441300422976736119961975596637347114774696183171646906600667496448527522360957147254263344514830042105182275490629097442677358359179977722773586098933783234490657887126932531937420852350642770730862551860372299822683640668278919550686960465213833803578786148155558878227234706363869255403161274523878015878113151740608335375738395024364848278891494008093898792520587215228038875018097521406202309263330959173805817742385992932029551813835150620851974407950732812844850229453570448659044067568411558699461274544664798452564687905517835045568824014249015090090230056078097404752625910299660827443594199803831491149692193419927301033193338271020904362027157104659157375064433384210725554560131910650137913791451655143605753127314614359743698919991373680595016602371998275934470588949838488214860104790405668135760175039225507123083016178043379743127512907172898684188325892027175988428701764661617747253206718903171031675342470214343090331586283249096295050009276892299870700432157220289027093462995815775108816383005599016224101793025573176526965961028898243925786208287786894862877995412892103967027189788731121371858221777387842783424879118502315400969481617319693258830313033613969407149634469770860704685581058723824883833946749789605405350229184835327244757089879403163740060595153805708038441657734923037907879191804035370038209396983042823233077114375175379200472060263569902463888788490811066188451214455073576239699500747796660880380550451642170739956053089450089274023218163938789440971686211034661156792970648449329766673171671720746784400321537121276650114614988156374482847186688745494265325334666365490433529841721357887021478252439056169972996491116951967175157150909433127110289008697958710949959176781195809868641137465843616443371277146918573119668621815764354147005502278721691649749602018651330978858019813171816993817137422194535740970387417987305883618663012912031452487254150697142184880304031369142531783301350948364264004555318613836558599304765454136340581917841009762649675330378658656983240636386591237354840374883279215617734400903309505663827403735927814155968737236452344399249869071835623052838179209100601395236470048585567035965121938870219658160561077261440600640326729299073185352003935891969435261416750988154011694074061027511915986929377421312519257393058432414935587926873047636500067170941365579796417065483759877770507682676164543403653881696089734767836501692726023344911940092981725734269573759271528422946207746933366135039760280611443114399637413985896482347272431475621570785318725209609876392742413299007231294126705436589601762919433573293083665617795907996349635263697044306554742981899709489813600597889048195638825962862578276483692620544290191604266416358787854691446236338115408998227514315707443258455099550996699660327209496409187509372499091436662809945888120213668755154178176157313401713367927795087368233078850107804116264287679360313441863807253972197250837449494204836955668988744573533600564655266032804394338076275024848729518504497325166078164055479223313549661827576241461011111672504330552532685787848569462071716154777214369810929988694259708496740367522953020483551162975318260979492465345742968000193713892490549956530568690301125757320725599565323703713980757361062349996174006934910199684309249470533474840674707861721547131866077096646438143448765397005700746942101155505549988180009734294405143638889903345848564082529397222687991769152676088295728050083100415992312231781157858431871801427907251039766841012627016571989400199089351694500931740573491219057226320804244771535570224496895664890524740958479059379318889011897897433280027640993608882398448743077257059537930143249308951462815301203745646764939478386807863209462677030264368113390763181863285051248625156892771368618208372626591194590667994631430117696697225249116618562670088382305351588594026657165301429392250382931099453109087235612116143309569824936246434465521223531311191203630531363742338006394037136668729837376830969204473421568383390963612172633915937361375060101219221909825887920704628521307660845675569101745897680441221167526204303431423978660717314933565384230886651675501416567360693354396985354451981491496519657321393558834099207831990296391285059176010066683325611969846275428975925118532884971336429134557969909163003894938054098010705250507801046603524021007919012937106538235340779922349268033048146445254129207386137279939512068276257529641437609175144371433545278517021866008568104740373146946090526021945967799019803815050375173465806584009274384478861383718424887728826773128190749248560097606818592165464002679499275724757549808087331325756017683976800320242496334906821135682310178238206471859582484579913459690628847421015416748181908316257341309683388611596844034240757869767511083699104410597668078294670202326423778009087053742849106600552146970868106672265457299370189856998172257566809948937763802415676749886875695920581261662190749356580749728970693054479124306256671173995411827000270732521699592210334794145207789603315183489477479590037044175399929608679689560880634726017259759716136334353107070355351354742506351617088077304515497981613444936046433068712233622861054718267519861867383175965324956522019825645723643888041736087150572527796335570025467330138146025532467994440899369015372257088271308034120613274216998230004918607285393624249801866816103315165746429686659384666581701627635471758579867708057928996616593125461030106920987375867562436389969901598866185099160982509284799471907547394965320342790113411744907842102466419232860352250798977039449707228702282608349721108486326364285987934423456092445887173470635791087964568157375737922715357765384119332740228271102616305767357195443141627276944829063594180789697291597269797037403870426424937498348748629064674177262049087347431091790230351998038673260610850522034120536293858892851981168654956367477057290576766387020147651867403722932516771755709317567720846663410767995077516639853149259362288256068981588866783508888398652259586667876844720220496965483323059061353382038934699355372946092702215374891610022583564765170169691295690290533399607862804476583105965930901571134744349372457709164422487052558425557781939304053596234181648928191861195388464690780450663183897638310613835596881580120963026992935975237812471351809806906480118716845074186423037794511544101616497683381524374518383717283778961812157236324809350759984818081016082126189147536744755399591624868942557201107210593362962083868959131484339466256406373688659391185108628884531856607932575304620812817903202076097654991268132985199711407266458384548360742806406687862585176385632557412415444465852077441036180748543538126194437147375017484953512797683623287870289048752626149501001653787084178280585289784658056436606954934009460488700501729640096844062902800724293899603505292961993122550135293268124614611917896404444301174723464029863355989773723617228471812701648892001186824565482717475484809591929263077852617311430336994138177344626799377853915366176961991828064249286568915249854576085024714687242967018869231128490391122863881356411550131741232557105337492790205862990760473063170149918396514914648479808780468172478794229458867261018547804950743340277139074331404918290525095260706659412820511682152600059463457528137492726161041701748616885726215492827665025270143825428844422207553720328747742864457969751028445692214211106516663035659538438330883190525676810052814541033353014011377159544252042348573174376933088885621185439785572712498046520959894766570580560659948436036287424312496379747248131189898839583924668616322500863664445221560967293050219227371838197047314051224510150627444064568770159313040263993690271758953588574846975142980335469302552732086552799350938285404384128724547445863468582317166315350508745746631095958560058938088841027003958742506126221312178076257141400961201511510453138467384774237893757817753775274284621265308340301294331635448331860238282318212561788603803151148634091216714040895259549326841655319742505923773162606668871186034205539827815223140225337785477883704450277262084618722018057227275820557785178117684425398574595334360116777700365592731520148031185312709010333634800850852964338173937861167654187595261203493800184220566312966321821031765263130709311105632384417779423913627320517775902575365959973387961902337398094799098585369274263182108119623267456898174920957150838522764401482581779542678146171480169552459694213094781356881186296303009975759030453813070773274463973368500372407898844128490494927869824485828247420086697400203599142330135122858152860352335523485374286413132031523419031213407119676217379240426800141125753972997269090607059769978703717868145022213836682556808019400341288441800555523339618208648054927713399190477461461993220492140193583606159121535231584472235400060476821819484290019905766348048424885371150863827345513680140581753631923269700936827942315375024676162848186497900548130459424655227914443531858407710648350230691771279814681402061604560428741286566327506721947649213877664958109967622546679903600976852623140005185519076222106778475754766957668950233272923441948121433646692330957610830687970815855768321807471043727560044073373999303614471457635632786419453750083862441482240130966743997896611358849311675276365980507804316220783110633012539363799802398864123144281282276383848789063348142634911452671625496147522874071922138939396514015428575307840730876095259461474049084583336980485747994287166329064493861222875870000692648962576211618942986049365684092913352545832300011830271811230900782072787243642439825552380644363475013935199492509351659291240605721984998994377863361662900631037150101323769678879521818070755971117195675209037003483557999982687006042206796630401283157857506049213811004211360512551992030190162937310961930460095987407050457214610975721984137673914652244295958446538387785488233048467106160755672317804418972387500056126901986751503723495850771342713437240339619715998502025445170478454450292400252937367129443459318881127532341296419505133503073042730389431883939246759840039472716246360007224463859192192383925636590451773518882703452130160217069839323484616688052357679480538187013807214057751487573587129587529561075738755790710708846819008554864346915220236533434037206769041509936253776194663185530020090716957654416775194995368105261444004423919797901247488348155494391034507171806851441552563536399424708993906482907031769613558880272149853558716967167377000259748573674376982820550623096862832597107677327342225036277568381237253510593325156153526235222703454131434547563962404593641921670832993478481296290843421736388893216053442591257313765864014033346501398890596550449766320549874017210575223260924069885873616777403622716438769885157789322009975127828527766267791272100564514311181022657584036297450154761823140819995930371873567866379423606552399726315578806927089381273751921349012498005986815355552098668868927651018492064574687276016337005065017020306534982932731340177933142043411616880088879409452815422807080291681343842448933282803517974266461303539935429942400161314824970430008469330161784835732852513007948324694892205327508999072479551283018801500947368310393014909632462306689870697492871936401183379204431984152632717088246553528935574547896907438550108084998888138736384793317404953892224396376283861421227887410735122540899972524015456139224174610420740951294753443410768519814738247430646558945305312586919665771479305036548144780356253652812145486222787875173112938443265233746276228986056349487156199831959452978029702457403516209558800706047484704091347039967942897151556987362803954467901824560521579831168259007332260743347067834579423505761647544395250927126998542934788369071761638327426192577260238011273248493047893601086297877576244608742769739040255076034768455003394504191001371724296206800211844498471608184483978716856532848336955520656038376542516113437350876637831630908172545106939258965202041329206871699974708833062385887399713804638555108882450441714538219841312033082285372930378739105281569415339504171962828657390358257750260754990352755271245653698210889897451726360312310697479405075755141349862798548902728535075581636340577956031873940022159287542645840612826539406715670205956077239342176897436371893143381388952894929950219595714783740064932864112090957195259470606886643449156652740182784929409188552839238639148710849280718044148386697965542114249814161001568331163941992727459652751703697158708881632465790527552406200367662212424632889659122502062818822147591768433776368410395886337006721473291583225076420742777126076947489841141927426767470992394460885130917986627246924838618890958481770444878258644112539722315468781411741802839571936225898994077763476207167779882977520690035416084114380675288348428026134320515172478032308036271716065626495428246683161290901900443410989980053202560024675791695005590224817749344121597166725435608150906289789526766015996966175063942070456222121202036644102280807267321852027930519682500388896534415846033059541325230815441862265056699064930210945260360757797731244677339301760039203721405000519375917500070644329456096199283876426246752479020807279715109510924334957652342054980177184185727733664141181448616868168707659779001208671217159105605704540190710608980430921338925555612840353460430408821579112590640147797844140968991295442546989064886267991515911910294674679283001893848259841309325828337926731374225956750162020391361869191680184324803385630142982106803652604235457374645638760568173028562162091620990514955662232492679685675559256373115574730152616164190918350310613891009437929461924005624795541772237805561078965246136708669555111573126443884767636439277458255747106916848755123607715728113916048583421638489811643847482374390168249274514438325640565718244746606612714610502212882816207698430932915632516359367027505271251024337398237309519179672965114583743621375172466635013664095385438531457902539371208786191686559259833370689726407341414126834584812756961363728596430203249540584702085522012793860140766824961188264121180549476636997539967522333401037278002132519043160830826279900279053003188325569026298637377675396232033045148614920862648612164786569102379033256978687118747698697349442689828696800870206171409019288306281005429220307627413275029847978317572217676568255157588262006729098880342590413497252633941875612184188109258074658412321533338069209618516254052901039292303066442054331855162201410542230122101109122866183343577994116219290963152670515942242682182022760199039181133525327801528629977043387424787277045800875032271896333766900781859953974180419751629673361490215258057140092957809561429451311650889119288091445133578935500134402196882899824775540002331926149709931782956318343821638628941196681647293424235372393107424313952661524686179529001309199623940756399676439749315492588774513205541900351984345109168546320380995020797720961475425029611166038983412934858553284397049334420649912032306957202723529436420448066943236793833795095744679322477213291716712541215640534104943502734463805862522917254105966937146399260474454870635452773521181116648701105391872194827995175699246016947487295969709631999525222343985441781181695909977574912681998709525281089616699140077670922645896698505457399869631373236311125105272067139923433216477368251526806525678326867220291851249562105566065939597985892503513068168747162459723811599957944469626469941520497903431687850612711248050372993801910396921100016030361003611152866157885196470229614163842584552650912069787879774134129587067647628476221539037981360109664402362210475669287056738226921719991230845920074666474612317187555267490145931797050404369283912876389289848177089093456168697813610293710407825998031137700062447970225469100907400456084501834071274532211214929751651172016725411570466978987973732760325452736733367305834008038826070147041148204255305081949583421231691172530714523428743726476934008439130253270559969785753708397640917887769142214509282305578082709299709699616948352012131136884652868002126202698368495587218841620618507046040051859854315818200855311801920857525985206277674835864386533228252451411149142699273939200498098761441285161794454860704256415810575721190318052172102465282809126927981953340542942178843160184371845802165659672050655381478377455089902385603280519673074911104489749526529399095241139043319440962717758161489125030113850256853136938576085895088420161891940946220660328048766538626101021943693801656068647715971442417210427739160119139760551873829613431423196914207735285259267143782622492041179494009529498609386178249705048942144123291653970735776484257803136251453839250846993094578711647274628082178205240379642019977741619365544442392141711402194869846229997803263777882852557146335491722328563776222650140782734565993531301723506919193974978499169582814846471466477453162955991005483005105834539846406420786038149894531529035361416043768349028520436346186596465269008511578184567435720953714239562052517377667293809891261851750075906140444793706770280623643091617967546301609887988348371382717086171393126467975829614131045645942461045448869472584617280934557992447885734740125712940325000819355838780659547566256907646735967984637054345880059899189453298825287858171616278777481577793227342867796471248075908490751766973747328198648540008264345605655257278241571904232439129478258588726595715558441900329509132259092653000482844729508971489753203679556400804575578013782384130330713726992500646250087116091089032223386423097627129909241072461900290638684338032308414874566552702367732783613761984506796068814099168356872616643943912855449578117381385827808297924502056390348296959159623647314253463202070472172533904036215205726047097957726062316649907990153039342915066835521494379139839062697238897199417099672468775935279699937481464814711272486530867398946850653968645811498541954816681021379627661131009284278149228036798301287108945019624961106284820832965707487645247906318121366735286233364207608568645027777578180587818641106424483683213419962999105758406214311251450918874967190350760428722171233070183959408621670113228637687904826603718683836501782011472289422705181318812693269266252798578877693829614311355853592075646385692962272856687440998656590054772915163518003257906148834639139435736506048502133766605827061639004082332296651161909043373327747816935984458669001928729663708445851099880038164506335896293568913336770555970569802397987534920866139438619823049214213637995742852609653583416726648490280241193616232262847227902016411188477591642106161377807066748150713899939091487629182450513381322585326351001863873279623844274652280378056237757301908741484634338738175929266050813566028784114883217315597835338953940145115125197314988245130805027650173934195285175816067475371455756799295399574725267452021792307711326820308317458821260324935406965718012717895295365747037682458150206307870671441663924960716689077040825973235671893999771433118903642795634913802241625474017289111503692532225349741798421232301866316986354066908111331494443932101580416165588086849822892673096857592462237810794876902744240496399545368988015846427885192900370119510619661469621512276851342271049174194309159015174403905267784748181700418680565850931996805642491687762753050703275292279273417316328956464895713407769457524305610786660086676574762491938914230411148934415817042282479959950800670604816098631671564411028649181093693511346689155794338721405974093321350497832629278991770733921919885813628196435870071795295379507306799926456657716595608884474487367511555572578835703346768797772247754689294994345917337414783902727224084830199343631118436575114930918580669410585561062080933122851257883086549514712695164396180741509907243216580462635870936567467594859557214413035166427567228815049902410397377044147355394114919076347753455707523029036979035420487271181509395361267340362791325455803941727167192933955988993790189917249323102789428080119284297362816582739715995378552384071575702003074496108792225745862604638267388507527105849156243105912244653422896861051953398409482781047892465321734432233135400474089721817165157287656312493556817078981957050812313268777740681265029095717941539996896199409047295993691165940073101138175354912232516479002185823513668216467960068002736814721660719571667133856492681316959930514839115670276825073950909714927893401682568365498686889391741285746571762161577488660554409136788663705617685361738587899598221664065278276415185256195350575355417380126499111189300848449476281469512728580727603330422118286185695525468150354908623534504026042701094956214562090175100373140755495727362598581659926985006310884443856038177433025189793899539164295402591824758273613241219182686362672261167504674862774975620820452293818623527941658173524291532241250081702688084612155212477407639273968213954295138959620220951033464322741214612036404458407722533235107057789550705927245368450255893225481880330604338958223440267002384915273007964789977648954471726650074062823612560120554847132523166540490075616584588173604672371277573897147754883466650010036107856464157585248860197067719855243950248838035274324542687146702058745809454719257651150553811096325336466001794333824040845923710223245137788153672613067952765540960516409166683780642114771320674808345358680456648929877195214287692771529527670777643359357975280523108640981175303874105990706945115758473645080944924169194147440916612392859366748732721614571633381003090150004118960827681919127005645167853116833914776319383794726977972274593132291471909071221212029177954233874248503593031781396011429058956378679416948742056628117316915304190128803565330033555180701908516965413443953821741931076694716499827757045545038526553286499326780346004833066977021971663456473262282964752669236581618746363650851282691209989385939137299194618647483177857929424751306056494917494613548525496055345262376457688159826258952579455162906359491828056834342043566889158501522095983648799804366353193949761396313515744053696776883756399210145763349755180487637977805938859435506888737433590398936608004893029810058255035673091247054693208369753985207827924460387297944574152453175603522921967462584380345345195939890178010420077425147158134418397930600168517770714886733023409023526295102460096238592349674354585778927727835106010662681596629948900824895414106032729868970279324901592782939824344824375313610240117242486473022931707169621186810117325186438182100261689673748032485620482858713800385782482828062103182751995768141957404037625772912234274633160549716102334943077945828379278336303247291265407619736985448373655006673137831283506563396803211332243578577908243141411293916431364841048149311661403876046792611028145312933135595634415262574044711114337716285233898230433800051610595902637622548312733556109001149378559721473627433885826162182415838493067321677285583407299363010569333338090225234591747922396552507850285202985812492243856487980389402905147178167865593852919619311572351676238481279282248436879796489522697908624105292876401622926627041713902335516557875518355457696339698032955240831185335365792471215220968582345406959829189156933503455193460407652134951814967140577913472758652051586030263290433840681571914401730285436697314077176707897493418971775632349443466277958786320621933474342614766025243782964177760806209183359283550098239461817298511652794441117738830392511339934054204499268738123005110159722206231834984665419383427695023729442234781171477927586750438453942695957583725889658555147156563341205291693415793519368114421824042022496241768031007159813294322847032171295159322505440612611905053089634555667873666373401313016170788772655106389346225945003257437383803276913461199679498883981907137953180192726191083695899343758262783162760812648043626729063592605498403733947826174666559299248074313075848696708661926959078795994204309561064702942127055760018722139095154315053041113078639951711223156303532987521337568777174128926902852884912836233853538915147621160328316303664623394304869913969937044588148545985939558250930688935098922853857212317056116087399346973718787827880384180483976340631594334282033103590172746756732526996700866775104709778455318860394806031449445346472077294717179682856220630373125104968850533757149589220386177444145116476183771572559601765528808258323266234638134978200363776370509434470429382126561863727025916573926279253007924175967942040620857102217924215729855964765290072689829406349440543964115467463171701345378485987154178989700614217464031361126164894871122019103583698534420399969346019838960286006900305581721334939748536685993505226804538810985554093786075795436584192093281906540606888933569872353623112339590528803593127990470699116296906868498676009959803001687810088631809190259294111575820417332200970481633269943459249076135931915391842235018712858024531844121950037814380525104372423805235445895123743244431767009884116654182605115359574790624194575997214162528410843154912622007887348056510658184164904149295961488430914642039857853320991545525955222863579601799807151291114852645068258965457814583923320415684154163350431855116746217321274657312172697941464857027222277165452236111558710434133236027696630187056493927009356971850736363501525770885228588516908535160352131604895766813008430882036332240878866720150960184461163526687460854210066570762353467373703240204662881659917510211640686326159284009893137760856718509706359463682698590585934513403848583965650231924751630081801589868354358947786501826491066600358782966120986514433024106900253368916210298695410306749617297264506389877399269463525689061653842079881877525331155248338562374134185710823311096542268305076208509173076088718807455279120742717018708418142223131558997255364032339613134042546782938450659220277017113327349051714702779639393621609687675680239586317718870618105146147202076145729998646897987489889926013478410643026792343323872245928309649709348855469494518498139436306939211807606993674954698516026599892360024650219112188882104018645103795017835533881592109541799545100956987276744133585269136905390010694661020660132884072923094533070918326072307840481808571826191119635765081927375584935140027322873556368688015869239009839781744302028910951267086268604634050171685685242556279283850503800428564415283987426858230421209645160365395643864538826535627350571311681030276671774385347300478661276858098351457692654028555667680228888098294990920180496479008589877110333948375359980539338380558928379005929954481844189401567425696616934861825211794647251507642766502029346587413392998153135090484872013265351822706224679830480191411582134863580991502010933808916584477118587048569526383405085396999901237531646430237423886437759516069576748358814753560536856160112913748758339947907515434747239408219323685989055156546173296134412759788753439195311966291044020386195048775966518397982635677770157592970342649779255177474309345945493402194164403799245382909232414383173358227296663586182884745714534852999177922828338406421413846134632660060519150421231093876912104575513341040437969187708746203100629128534029727780317635537021521358395495025617184401659705241119467251375362913452153114925550878759167698044187935450345476831650401004630955059922872754970797165850611071083377449470510483097677305436752458636861418579472738312089607554908853726808473597964753206772312135500356014049486738938052822088454106424103560621352468971436241733922736715138936776697205617315622677944008659083945957663439256779684269870088391825854746177343064534727198706493294691692511107834553823368380585383416886011954439084338800833447911070241917731847441945770884380490252399000747496027708838274788093024168395754609116125277382527268104960998152137574352413339552133015575704498949330966840748297047253560464010316826462504247615516387146698485219683370299538601158522758355718701858720707302435592615944224587088365643593387933049558699796990327589838968500165125254524441758950533955020496766921158284398284738311337938973556394462927837793983590499340913797945800090063864224524108899723569210135203517810569332127454369587875603248949949602010877709527486474986154749335376516188337267814512296439336338987835048597978662403971883424293197113353673011991334580204926298952347630129359404005608425451271713540579160559428515394447400828991947102057350278132121074927172053385060866255300304419310302688797379906553676134027102243597206759347884235851913787768700939049686281801002605638219794815766440169129964843780201836007553353872423808997857003159640184667851344234205484100565769584155399783127722562738128856732082404056448221196121590214791557385879825460889037844133904544470956572167222570780804885667046954575172765078036555886534364058417693502454558600387758487006495710541282456265695755650600989105244264140854960228702841415467675929661554468124133438213237886969427809806535964324362638492612994380666709926560779352830618853725953026264084543549622877798284622810069175918372113675397414185347631794442557644860055898328571509433651066989972206423400402271644616154743456196686081668908824729177612449485285278109641316380418101908750463862391239446594062131814390290928117694442149556363262403115421678943001851212338339767543314491157662548490802495518450353605956475094136720842806156946463292546461134737952465916438403020789738098934246482322880430515270909712157530968583716446204291681578899129712361698889146379269304633473400493536657914381165431017931589315950267680758998240273736623578784322351637981944338328476559760596247426238592320539845790911630858311588419185553278621274889861466721021863351929627983754582287798263279407572607111310146381330584439907971925647041664332911760613298150914631229718591570446967801639604307555693176801004066515020024268398360011753445903131251856363570314902170370462165631034843496808050574959407350756413056168099886150031918961360960371839354517858355426791225869713023830185213808636728744153601244756825444919628900432152743074808878719560970212659273291410903070183269939320864138964833105802550105141675288997375295061290249195036301933378912213835566654627995366459859553091154161772112272980148719823012982710558841172355810761758885435306521553734820864093005692248592752740385722171265124233370030452537748237965964969752553855751468101068492361081844622624082100482143740950805640507383283159360447516586444167291299899377100221760420516129494810414768255413602992874768361004078014319141877078059280994902593414051516754269632881304483496826484952764088131477922429612740814827775914165276936929391681658282018084508918864972142840270686007665896324640393879400920790695568165723769076475868949968934056726942945620189035183912716903448699480253983217178084709645728470629103868878171337049313104052585016120370577109546641348062859864338282559933452470819117935976017844994840524963746834282729762802503596398639335455746702934324982452470334122196233836895589778293157489875608157525428471835661348435118886396126405031690573874282903133547136510182506913651771484450978716079467711132591859044322337088003073414726828074403881714867030236639329679069352730140500993612175378110203925583110113887037151910964394511866852414769497127203676070161077024254995056437192992774510116796280179106520523179437430234877423651505291076636052715208193581107767710223477103490019581389439810455690076391836736663289936763936742806679482704605556175873101942343341264176406305395435872824158026482582614312394320430218430072820369994142762431078031342493327457395068437517812856507469980072704108566557076048372804042554162367527110239759228528386778049640376541534449748694403118467239325956167779424676042246723687932246944292454210212042052086829245600801321810105535225270690244224373194108333328622268084096731896867825837707606182932935725999938741102223485257886069183434867045127148736483372395256970649499952507031196967302089071443503518476929978015005067143084547711191643128139128242423391661181467683355722671523122633235096931391630498673886943771796246082633574563955718114012753609787606321277527989626586484881860411284357378011017431087083994959656479509668632852398154958037969703193036497312074492689078398956710135990324125334821289710799640377377117276027881333472809053609239638935220650539242329213474507581277905765118833666825663740010178394510316536961973655272925315614314345094882449848824466850594683408944983310288348732245006504061762771254351389557458392655732917864467559953439505200332395319677039348042574055241733997865012871844312633098433672015625667683252475775229648447562646149348184834352442451562990235343579238980889835814588106864664076221090650368090218076932729095282136900847932347954381727585221899787443745154153606966433353387890937669340914536194756344509492313463799188338506945775374559766358678862397799178142355902883460659057045116061609150444830548241848765470547738441003858346588772180932979189751688745617783001029608010272120987803506738291508622197205031036347729227972955846272260989011443529217912359394222576020235018766503361917940214125010311615364363854683056641669534765574975719770650048140046126921872217180225534640456507641109698856070851396173418677475885837880323825987429943249825056454696865076140385820897404162166144980513507189844497668364847306026419381015503546193342121557223325509781177113718124833958210101676489140702685072820390932377252507870618214673251204200248125837711417013310682197789281725759344800136468195750971069475647750593084583092115419481326251897367330330976614780281533205650696575523227590375879185680747412667097679880506171947076656916943118679341343742865126059936774526170914757652994736000324992749879242970255260955812577095526210276617583244794919311399655508190247534096705100850563151275239164569627844564705417092194063525982021811762820159588471736694597363952322450234010497917621380013431851702401230699864576619013849911901861023644889818129899241540343628952879762337072617140813999511810885019048043654856737268685968324437332160434480905170295667720916611018012435886408781019738309701884997078900969188414413436901705472009514128176763146934971662390984032373161590975691998668812264138706923007625408980668505381376241357945395798756487795433382405599141514084100675854019564236386115080669597075934027021184704354123229604344264655275472052814060503767259319483565235844236291841674510982614478716692231387341798035484198283994566495203199945671464235435790409844008214724710606244270320174089344465334492389517726954479658446876708196416353586337567563604084693860572862593473299734475532718277166407725873675195552166850249416104226323446029440397322640667899305756560509999861918402252459503530973484734820905867509336309947931854917059289603026046887737229146159024850360548323701422803915095786690545057300661875811803495504417286207691972070233122912278376403230214562062590788708454238523452287831106518492116478499390122727676235040402455727714855211331804382686360015282305642993455987432098825583158057332695473633428030263224150771735632023013434326879554995352309367229973585600191516975036336848985156569708494567125128152098411601560375519493840994158935044244211019592439921619735035246301648582359847834306215180184511825627319224892346174253975643850945629791403443296542739482879192502253100097626164189156169334652151841663688748488298389711582762460877426854723103108258314358787120193881127515282436830068301673682450421021764358169962083467061008469368040526763194339398365120871938535162858807007160390592484266740514567188508588397644666889194213159771662236091011215849291150959357002749454539321382294410354401239628659482219356324424208587702292653066803529502910012763379731333553939074770396861317041059659075927880486719812618645787356731923618113634845190831402653452798210934645993439887715703101170565650804398100593788702003908261550811270519843519851921322913454757215802855607485114561182734712457889442558939196765841798544550647214513432867876254910331944991100895638309631363542938605999763245410982459003945602863140465320407903679718934981199401145824735511933726880663496558103653767026990922144227641273931259007612512049980117509213845960556142082721258373721153706852869659670814134465277691542132278042570130791674849272270005878873255980819038165014428395849910645049781250283115166926628420301847176477345174609609428357536182049918546825775020562008171899378403293344474197297324831120154551600119897993464705617377424164448172897650606600308807344578347108435936232569500108858746027156282196160220007767433781241535540900713609555353342695832901548651557379740454800936843288523498604360443886716887891709147777739191783199071558299745752019690438985526285241662306582093043883102771233082669256400581643906966529512407709002693628633051908541744100765659536465912725963335602320050307541883126232963060872059334934173688372336520178191553162608408693005617365445319266031138501961260552059759992486402823330848935328426784276420040369066104824638257830992440588378129737907182924198155693255441646418948734095857492632409398265328029413324787913274838595913466935014924148202804339808263746496350102825003073881722141892556414207598125979598710318753387284724395907339330976108025641984446632223580433699858682706929073991716994466861444456089107201738347386970133392576163807546485461197793390152160459135992471055435139193738249056367246887260474661122663039720181070634482150407232697891281461737476189351595979891016947784617465646696741727971716236019485530643708026229892036927621880165224914603134335182410646800135816386545988749436563880019834739582482974913507011709032347070619097549979944724665245517620588570902524652329482409394385747038495427381173789477414705159441002361137123340163308644038789001147387578716533469976401267722342794082969607590032995132723533152204279131947990430927954472028664583017660494526310128288990540881267492516979940491636953627600404451770929034530256564436367384634714351583087799308997308491021532824034263271891526677112841287543627535793141590971864593285695406637608680859029726893073229038554636521750579539670120114335185675569337524129945541618548246101983599462667839540848558331696843469500056209911613989813289582981148890096676112042941951953327702329990714175224688073807703229126909899010928292315152480789018209805314373532899871043778847791214379775627625520738921941624348008564084695630152700593425438491636562035863125199210909904964409270339518284015604636687798126098789823960085966145876670012015456360196056094527233314415901066977056792635043717109078526061181709887574610791922457891362463617951608554835475270646334831015461137346021465860405744332766253509468086565648436882366152697795474830227355740188017853457402429840513958917253319674249202142961007020226727896255562131208927155353360553852731711036583360903354388080298005883464075183173164450688384229515732541010758722692806038385743328222847513611809846946020262103277789962030434740878569689478206426824944504892166864663092351093191202996974004840229032588167139097676307579138068336192696637404983680283228748049929393976726668258332738727251561052819052723150059775099706585343553928286585462045757391637574387532741324291142714979735871702509693919557400523773168001871351349850338353316512037047884549989567289777280458713826155489512127946621331121549169129532248651921890955917275535078720312058172557207264357820795881751616240500100385085902456518872958695638875260968019647146192143373440867423956430919175254223479705510923193911426949696115653835312939744361168649650934514107251122556475428275567187715847809479549146703591296778721971988880011635810556309894874056234348023510903433968555465059238952093123375370991551271518418138547368604627191520537515189641221943757520476736199173524402357387140701298845498643055006969740951824194465918702473119812559782330995762481696110719693649985514516577533925809980808859188557828329968841245397982887835134266358166204076799818755887736328544495064020545151338540892617647684054680660455554858343652540148197793520980107166768117712951668111648288782941598356310147902201309253080688137362181184849086047244077289777012581725673488897012354064866701392551555085752414307323049707857659325757702318165028177389657748164034915382338129999774259780441958606983961006765296879528767218090413967918818388456740109765940523087300021716479090574579360339980161865437395076695718534612873730090905804860144285724190506614494171388310154970061188461220603028223254121810862251514130568123356950921071904737327211931951251447321442560079661988834260834299116460704269216478581137278060005304447299455428362357412210510451339622288071699139753913370316837491629448755173793003654521771101538609104094159234266073102151439680865589333066026987038224929233067355745220416593838233744290694386264061595991390262108830570414118895453706289652849632299624880337356529672130470020322353926242652142249863168720164554450387521889220712894414421765319014933637183095536678836806342533342509396478161056289409941542253891246102257679537209949744975956745596130048451882430949411508775828506935749518444634545605495601324841186741652586380249683108758116307607279246228408956768241732965658515120206448907404962764445908863102992254642082567371606260602136016960524536418967537608785486820308229861630025649631873683829810867927309396362582527342975284939951357391551675588024479413593946271504686545900718552673483372334342044375078620209388073391832645331216241571181362010956757885958642858840996256496084271854547890780272455438612048992403789103550046467829245848125031180486508235848896519526806845264114733922239343143361605786680934002192453423908724227157446962036102536912804482113002445550625297197885727993430784690528326160969033237819387086770245473229409655005199156948693250171984980991715647715277079964945621153934374586645267615541927368621857203256561969390949742208611428391469206230954043484421818729025208188063078111630463529677624121874663935942249649732046611145003657281239183703431803764223893638183086993092823933318605810096399980638553220504222067719483341564924214139534176215924640621086282951460145812976311651288842937787786657757832215726378333973669973332416608737241195936817526992124212059460878856380163027192257768735614813955764023047681474624542641417406944307970540412193099564458549501623429020717496881153276034753665503647840427724024552883625600551809532255282863869706458305525906506967643417510231292044756459777986784343291652488840679989162850385975375632060338385444042727866132901314365991340930928149467195923934444297746587529110401796650601705568774065052149645190305534814711549306828797371234085813200248435164199925878245063570281512300093255463002810240325285037107805695453692827828172558537700474517874405854077351749791138487954620687719918357900887178154359818784530906410962797611500559661935280825606452141777231917629592887456824248129324204282607974159167532813990418612034845951395276765603220763652840981818776714266729313354822910263286090647799572955424385717121751163031943575917776109005196249583084261767639317510364339624893454940246900207358841524082193744594487155041777113834386778594268843667618393229940258402984641428877819988931541380851301851406837703332551816738981971192608584433057574563628810793094010808688147345202128483108476524665310553623616900679398330196083676953521759836001303062325830527332089412064564541792135523346917032385513409711081957348082630554402612548391157525067849574550247928750652838833126033488308774847901776895776705182718974843461598030233980351952025941985825599061450079354642941147888632084718716402943200505154703101276957458384019410360212140545967262123357685996733354562516347935840394484219611596557798195042667797679752896238468998703009314005583683496319169112251735697895501627197939295025166211034117457421992252594440946412174853686020157215296811601086182407306397914846401914471521511325293303113355896562837143944093861923805438628064608494275159581601653554655292052894976538845997674592827278956597937677908846622964276784695237213343135337572693460581827589027612205248095966123068313040176179348110333919148742443542636488726842522494758094186720034398238214784411875623509477752712894345227140449755245269417030403716301494334345181525631210141506991401522002149955260042473183317895115144995323086380488461006509597147189195020332380854883331135564762949646813263063647909057441159786705473843364137575648864750934316025255778586674643765555340895163716388152632906393920194487289763472755334330605497877837542659153346652713004430650055005525243751723847457117461047946079137141150992351204320190179011779590978638282677308445245191408230321634635059187686226775053755602406544175521853067066877185377509500620942774315782000080096895619072046471690532537542418989736991596552900972884133935659694670456990628645201977475979347191917837100255230569317288771263814142083360655997688445715243196365992957696915603112750625868139589233801033771614131753247696253988367181537854120485583726854342048905760282193325407862104752608075427966732727156969488132219794372402766577796655839501722704620596080340968259680781491999066358087803230576321486507338146640219371035969150860187440902669813510379845614070954375182496976715567060405345896038612785693308271660709490567642310175273298187496000895870605586300512364660174192855772461697079954284160399221159864313976590082184258445780563675150999256107542956612846024333059333756179418843263188213874299565458737217911488926709491337507077869235158034233397246946866247476143823765809782842321860429106211464540224199787284215251430530965841408397115984507025360958067772914498104302280725674734494157947879736551626360224169819700513105295854174748958390255916567183297029315668847954751438340752059596579281963694319366503311791400012069451526958165082512918163568619648487284427368768582716231243117898589794868908692698948825544467555393766716870112500702682731104729005115301944650030852547001109816663976136546934117095187048140560877136055544323515175184022202956245724340352063421505752907882510208702340419621074147870510043482674276883658534121194849580210830612348071896508566981536377539372816899105178900457379479315329606984473804621464503277837244979582243865105129076566928224033313638443192594171529825350824354554241466266308515466832775945434349734871475051777072784351355315294476588970204573419309745950334729669502682151015701889775537642702272154853193927072506934451165477045012975482490664165887657862909120094982208860528849647550462815434883319475560162564488464655175871656469207954351938313067618481878652373213828640734757216632379417035720941163271513809738644501892331657349934154353038664034672001630976954565234535463289786647152295654501367596489506561469181089620653575960958849541352006947292141218867307614059964797227770071216418858460167774533773545474893270673829845841342262557161446003104844384857798118732033477427650145414647413916393540871710186716960217529233594070755340919570154675719416009079953369190916735090936859398497359686072875619570162606708882128896964806387554596576713657716960398716864877644303975551191755414781431681457702927918816289875047590680731967071267225272096005528947936899622635514328291075137689377741066795614344860548863082557782707684041630739574617198131406820786595494093446453252029005434893094998159608612156186539371655074756588223234201607525167655534585096670645397999417714815310210233564901185925002334674375188081372652455786102830048793309227412955816207303156411468604553083437750239219469534115942472122505248961670432761867030781008125995224435296082923700064473183470024211579451943728831894851306163824305672715851960159173781364672411071412202619024018079253985151610803684499411969109264462445873206548274829360627134617343381047953679652771828203463078672770003948264899364905996957539872519341473061323812841356883328012974573649466519163865753929992485780513421132919208151826264070537897451620024832009852246782714202395853725640930520725051502545537208308722250558987899106892242796882212329151378648774934561055558643618831205312643672783641473394258501982447910675995771060389169061955268911147379927601135202233245514325930587966284534625309524056174873800962884911084523044008406208773039530782033180491176824997312807707611238241743142530376230693456766589154483456892233059902298144575288383318649253657297163656054876598755261127203822117090268918227646208735137709606255026031192647434821307583096843719411792368602413865415539386382571477037145761627278231963705429555097468077651091430064382557299059362622152645383631202330318263494934358980559295859908493924780843128653440297191104378498838139237066562975076941931245232277361626817776528705205568039715306190675978826695773070748163281385535002201361724585624758273586630333803124792646749376203092914925129146726617140670532356324569872593786096045885427755385641105153206991970239612521313779319643375003263627984464405148059963861248116803438791117749305435264977254967962099821842559360897419219061797959620543764923016456674005290474106480496206637610658431011714183510442607491314987480816686131874138152807970931206562967661543024615594373159807032206378064588819796372734026519406509225092931589755482799962110501719775081270325842774210983532486320356194536741197991993675982777297577261275684570288703193617698810680237865754996277433361942943790672427766148729578254571783338725257512393803581356834445554440941081716387554437460259715861571773572123804416444256142478319832526753716401275559216467841427941397462279875656978004577973595061461707374904195660454880536985354400851603417580411581361075413617034799267010712635010001892208590568140031048034881627266201221796790642786179113940386388262730804613264540198488328977169072646739880722371605686821960417281618120556838244652840731320313769582777059497484883179705597563528485168254586385172677333240671760357178272882259496648830153211997861819262122275831899460452538590871002856705513563256831209224759489060446287867240529064406240156915272547663995271776585839355437746090817530039663099879534133886067780820106461490521082560270204207097062541334482786122394268134215978606905121753966130806443782443776027829954868909111743877583019350940730639098960050444852734585096133930782672363273700780290762350093509546298944917995606893097796512770972501591113065666334164031329428408754334814397978145680210480793570061740158830463555770729720592892352819568315746155451759630771970945193123456587769942328050579816475772176301174332838624717168879419248918439200541723989615888138191363611047580332626765535364492369090701039642019998279757822470039893569909800618323950926848464530583716219239349917959074122078288834452421104621023855192545192856416910127465038941877019721615392792801852759008653771345140676784910794028063010507515392089552536935957187734339524997136969579699812553277862901186222133419620881971544336356130542554128704951203838856756294389384606643627890087918289280243207291507089232164053474065480552229017835157984079682673582308826456640999644255577941086056273623319322957138144638936378735309016438332280810199622498554118261045005495554115805364224899543487046282844285261723182737775679875267109595795857566040798268491529211494250162138038678032641184377937265950684232146354075299276706728778636909888705783167620021822894922097073792027692978472377085369203075630099008704144911116762675539802761138739299898008484510425840898085260233439165257192380028836418347621169046334770432204707312823643987358777012447534313458586277821999365939350049153964297142481481118824074647533832695796604907216385814701181362392149226251045683690486297923836257873034029704161240683447353554149025531928795779749053094813263216213313694250655932425214820492310764103178207564114622587352886210753653082230170646802209532237464046689918692840798356028216859915586854574522421370165476861502521149514737552797227552943188167685898260082955569759925620775060548878807444286818292658175357724188902079452128667845508201470117249358078282635546064467193563735641332690884578455223581908510713202879639422390076814232392965191910036954798403675831143146733178951097209072153480091569140251985472440518428560736693443398622081051873562381127916152312185024658560038789886035723701007930022241968817878933356226928283703463959349827111322294192728129383993591536599880980992883971087273903619718917597385371686896209380844135058117445321323429760135622949799843876270030012590546451681915434054613541483179779189300293968446030663055323522271324886235517186022309587943291013651917545458069636323832475149246565703825380568364101550152002627648109513045358898172704389340728896793285987091977573402662771770432142647005310197538166304757695985512067512447658482567450600558793249795105091463527967287679942513586659059392011349955871974014830813882678834917592972757186582965408586653526299305185365219580542878072197882915579511520960668154500511698304724394518714913482285115566589720592230861826191503003327218062644818668007108092519259706799952733828132560403404949486297754330025859332893552771665530276458813707253299944426260825478095479342334870334078072302273163281969138461575471706835650828171857333161262143969471988191674072870747373767673159144257813257731602939862452479805300663046124977997310013503042305151040101734820571886361358222341476264407918258532646249047044917053158932123898273168517695177143427670852489214665759456024970915329973922681385769466977243814118220058164879180935808466006840672354590552019743631028973217126824712829306442803611515812902608458789176052326972851299283701834071799868984684215769358859444305849164225847201543309838259768151741282059675974025309589819177538376699479762650746293188920406796563653856472190034860629004447104960141916742220037372126795677996304421071970952999669789508868707582511537157115260917612361318014073107294268106509383772107116394815556721406965232655116775249332414680212782158051810696739988983334915504531696605969188836237078933602788595327328121882087041063754577747914373005400154257380791896043346651712942028933410909932354952712324223947473021515579702153819819546309236994724187330738501939574909821927780450434908207030394718149281461908389764875272334499135241036772263036740757324075371107487339333718313028197723995434633095638298596192267335193707468829025334879572416041054509753773878397116111885119078366490772229918465321719949337188211035376428893957824156218816927373721846364446232150940468620189431988049856487881944335694755064498750988422179465498728271953091251850384581089257682253912383556061161988053898997594603666203797491811386322193057076267241189893987025527631773668177062978275696927225730170968648559996416125724640339489991273000720612526875953292360033222937692025037383763251778967118326357431982457523919066493709480007895870107918670439739303647771730294158871366906595891517331300775902138124146228076220435281832676737970231736870387112975280076944701758317721105536608186470058380411733498757592395222022311617875641072141059949334686325139506226039973117053228889286899088966490520884354568772248352363209040739929542341358612415913230352878917016666310073663344022860042181806850866688260551786983153916986165997225105218612168839115507153591495464045597387938231948212503466701255284303708309518383303296986482216130767854195739449268869010471465711411726353249435296960339727885126050955219601997695224232665759756813285376228716975884164197241361131168535797076587015340746685232864795978334544323376863620217012414344925901839911105169073255136811201479563538612879355814236071946099112810020213813603992208986798034190471093752739947666807376047082576301370562365027716426932916781127929930940504328034640791301981428003587067568995300976937088690830771971747329450221974773403217302185427470742103508040627724687317073531333703074209955640884699648102412916334236654835033560967899736987849516790925338767415255435183055517150299267630794763969694765552770191967047565948502653448583337372630306249324242034753070745452323841142516521173075274759937813350250596461642557390500527545229523908338802619381689456458477363911732503444907646764269985422613525697135600785477898692916237013379318196773791851501328316433971835539664881280570092874064037543314742170830017113112464049694973447803455387205912647332838232441777178664063850413011881378548259886758301163230798002964242217196023032002452496677097142808691218453225597262827895344011817084494310271311751900337593952547023718777230865488740414245531340264122468882220305927218029133691397348861514584014725002579954771290326376395523676636576821087299649806235483797278001689518011170535512509993676614735645995587369314897292033566288789256025394412464367403814690650741340466038252480945976147276215997012219593286128611619710098603095937835361016354474871281213222031763126123673233913920311288987886584615323620714611446532207642220241767627136807201507683585160542296189994221459942317655486720164739935120531363886925557149002826535414850278884770431964745386766100139253453692554002877800820499403646190065724064170875474233740526587050116639759713653169361083731843294691090088741459250341290716317380331879919947024777983342749648773472902434624634101588561631061728055834357295515515732712638749245094601616854263300477382896190850861857951951450834966818593039188679925385192227095230534286504906094648433597288829388229339590521269342077622769209383825996442268982508938553696303197571836312784269127958030750110081167232239907142503036791838661975547541652174311090258995381042996180537800049880920984145060330342101385586767863503500772849725212309162250230133406749628506528826628608977008610393451891614224894467131844564237093652714398094770076554757986490478263218368632608527675528986783987030355105977719546040418466775678489657912343525986016279951705080179078090807088605383977412525183855408085481150912572379914994619312100566382953596845692539592612129648646880394033223232945011450848988237515038093239171265760549324148092722942694800159260345310217835248309288134114067131908007870715478707574744215479722874701082396388254009621370683519283547939301399023718306191044336269300955657207630973100742800569320497125345828440719752054850391118503841111601047963480760794210013281176141867112972788141371913038499062911093016477604625575469910372432193083376140197903385945799369285799927284080725771781621878230038444622871810732865344637781819688684622565719177583402385164517459803832679385211116181659344756589356996996429351209410142040846062401134679469804754438498637171978262774036724976356272242125104828835937445440352801046254318038877042275773184147659876239815501061489543828890659994682423988444174638375188500753404225148621003213938159317797274546201981996124663339039409402918506782750050496860533070969898341044348965279876170806019145513333166577848540159628757277889258777710659856216316956364039789163826876695427562636815718079988182293021971167797844087863170983309253411984299191928489522795546853431914398510225076630519789686885309452111485506493389318642556241572654119348040898738999156737973584976028739746842413448880039077963440743388304842722966108792782220075960419698342212857117829440969906631984697533147134543181428806565473814479414867283796339730620415202182802412977858136890631014541105493177380127766279083840380186653121212882985018979173446049297241552295386683489233389136156445596866604535723625057811237555787180757748144034214088147839240046694901581219213579839137905198598456186111537269838629833879367943774558977793439543537623614560113177587317517067385793925672624706518156995728441575764891970513762367991687401967309871881155997487121801281541820520444174107585321253335360115189794161238346981878936227644288165727533623668263817171483097102672087032025421843570960736823123648988728887204870136620879286919628574806924924152445359733999718087362400265825769792135347522764661264499007248411573056012095886155813941647931276994259741981949747030451983474590494340362341312612922090834979812674652953583716807004554132412706288752183403742445829757879579185457584543453595574869301054620842602232310412227633965824936494998713245282790877116754611140307890722572027583666987837161588816700692028673362522643080110215512586291807881960169814125674575469622373268469623947208673659146324951866256835312764380567593309136962371383236236390509232275775001248341238076561734711057452957763156527316001592227413665553753826813547699522415386774859797298815345646223678557668717477860859052833436272702893938813554016717471215094830826596774292231089084292697182400215091208056978369724053419413465387771191400539306205144836817096559272890823825219639228169138087167808236231628302688113490808564796982135816587848624567788628595035772165719754465961982118000038296148706837847508091746675838630797760662301571867805360596243091376161508042705666678236833664872993943130078213750254280145021741448680068750740814569724553650396021825392209233734464024812433372537469302935162086310719568958038337803660003696147762886387827471999181461009723829429096061183633296866453525078247121953590463987100864525728753552379940317410359554439296985387753414334726591177067772125867054967177349207945836478312479215847615271943123012484931508244561166450313894262137005734710645269398343176796228478900473558803507560358991116170239484338813418468442477719632628196672466415347502915865355662376820515931389340442854637075879391165510377876452219739730925789204078545098688354292512646537078707927498471695033979263503645212045724217285590555709582095698928535032765978198890305821083243812811376650580561147902005452775407963212804501635046839413423576576249221705865964794722612765612645825600277983735229486070087767431934153006248312155514417455017774823370882268803721080107447559271661611148246617376849705862386049952479357843462888288344422406117853451939665752751349243066014732362973615513981805845504722982556674418592058229433677975184612758915024634227844246255147906257422273599558024506153621914884206016767272648016134882020338170556130435759435162990406595702006364093730615110143597893578690110622185974029459004658815841384399929659881023779288782612084409620879803155285292321299486053243241126433084879759810634337584775494352770685352275766796021866366284469308261219527523237774959581747422831643073345584617140162865664805334384267806834940414017114408803895268910035945948810673214541238267769473009245989515469308089025295708827720791570341651964686538085695280477761631079242915171006780292520635820520176485990016134191324957109852255363336611462858545636878587736571661042330033465438000700914771380512083768100318686085948062464097451357944262662763710251810347388365386214426631105281580618047354151397119013770564448065993011319064130261381492452465653525310738645062195352011322994610205300462979590530916168419358962148139800474217653303668201250823134300182269764059441794893992673712445750876195466259081165663327670915357461742083045365047881825699089789195585148770709588790886571524293537464001157526473549204745253320219224974036587910740661838245417916585001129351076488721385516426733720080807951845345480593858843917550390164992978112224786317741095976046633908352402194532491535095499289661964071230951515432344600717615081561827851768052951017913019522800672961877577753805924925656643284156261726298802497902323364937379427356926081839235843518890458810589551818786971803786818649298303822223241559321035702656025122369220439051729491893896625384749997599504485791896328843566643347778300610420780950311269359300188360334494783766078648341119851904644695315938688207085510393134593397258204579170597018570786255074904864686888604441199594907335841553961883817255138723231124230331577050098081565238746571587922855400543881634557713641219992477071973415336852834513604334674233522243036384850579181631846677349316194539788003489292620160265716181007897360118390495380390086690264578833731903064970756086477423234808010539392876633099584448449148778847370750410706928687963801438126134524113840755399046061313396730998444693704655842191635184819301396015971690492082638771202867599546285760182435009528303982298708044319947570873065110744771042675424423306959639251964692418418997230811047201705021534216162726963912459463108149879405757550370229869925139357985456888038221273284359361033017314978377126165415971243563620592726352843970998987911211091648335435745079166582524163417537787879708975700933616889046509996062094456501182655242276287888736123614398839419199716783616324405836914649822840699751101079054270412449508000366757975606447946400026292953131175218430567952108982123831734560815864949637204505781645876861499296167714671742805552002711519326740918252742060182497192767681911187843309859911780871205703308655163799118290075415775671052933055573482482843295369835244644326828389885447672776679487234197116723112464795204784787574045627748673527560980045119218958472180321945961314047878248272997095710289712052309845934322259560415923693181395013905545148164527280605212913735514642194407394551460305437606098294972818055970988204943772410951727242100105685431955260579294536190915198141150544765768096790437514994228371311489222034974107932098509106897611480913514562708971052496725928836792357869523848001096848412933816946277824040006255691563220917579212033774517170031671439323622019529229522944786350569874634257372243464308067238057433253508460176040408697541362072742805913568001676282388655913014025809730834104576846701619901809018411059520097290886849306623351714809038274965824752662915377395810906145631950716380343237639581435000899090083964615655354049946377279901254664991225688376788013638436493223941922966939383335393131257914226568235081188736277523589848209076347951610577645129794339094666539603559943571510624226010374003344329666648367795204042609802390315636703482120566419175609303015080633409719791383825062830594054482793681506895270514639567184141409553240630969901367050003169230925845479632505702260139536236767569214941843341116214769100687967806445668293404165236219375814034009044704972354873964684648156466079964963768863326525224530741123892614812116381493410258540860213643386936617774167461317199504440397718279464212248566208306070101440271561527726379080885107714886497368139595419859879460032140790041912044595722997756916822506102968912318934032509506662727880600011765090535376391298808733885504017204007232587902757239093551486559260045876152559866980467370315523437589893981072299979926719984708871965364482772679161149087463610615637736410091162220972641822646761673383096616417199393961654632498617748829033495052900921452028540216907063210424244008554361108313174731270969758664624076157503030276146650745179136258406339930387323427571410878534689409935574177339582651427876069631201701918042536770456993460124071373769586633668107227549798536452660229791141626977603434121731536225324444314782674663241542187673393109886122781289151963027265422160231057895262330136865229975708621436219866395261386005446003961773354881505331672963967458260948920288518526709823022229942926250514820016643324128046838794935995787787977980977544904163446150308193226090346816938724557085661099212577143086495818293554223844311403978106639335348552862246478020011595629773655023503069617997289729451853498295783966161118642989787607049741353120007822344016096313593855055074667708773011914312623281568729878915506624110043585804174675349330996271379262412023008495890729875508129407995303920753091932535064491064574731826104712370147817622290510202127898711141953765670151852221037262299028522941212593587937896159291895133122822254214795825469136446618419518881925252826832851409163717187646081559073970809205387504137012611698710490933231343683689674072396120094009530688985790867171246475473627436467337069079650347364664325433280207453395766907749950234767194340848004011375015878998288672466825388302279723467568428813751080572221740461795045430910196641836161604152508387201134892910959396070433150839648617304697797296234959697380669601845732381505461386260080318143244939090888511909755995816946073183200291501663449450464330452479286394282890007708664498759630518616076002291537462693762675568793968189888988891034908533042029180055828603668160140486879040982258752570415978805434255399727053935223404611271899901118681245888369034255508585912174759117053924971011169117743863683853380745527497726513276575400729108277801843923390383397966628297603132030669564865122336794900467858360429009777687575731980978233686559466214032850372319560304601584000406630685762989467472906395638938563333016396599926677254496524830610415637337087470615429318675943351060626645517841531647088025745057538609828977471057599010131090651314530664605851551941468743345545133454336201793931557975388721331328832313031046843873379957665422057144867739059752659204434289616807750689451100238290570610837923207692172185059943712977157817907304536236193068452068743650438447208331573498057433920654055595512798495300984831985351139652568346308012999646370346306377859501200992615854079019875726284533116047809466618913677377394065894915235983550531588028523444819219695895916437302147210971548240720584066270714164417155678997503675444696023684541822394912840013453235957863243447350066441044221429635430259803054271482210841773549936523981138754686790842167614925144115701721084083444558894989319512238430630047610740407110726982032572454813336738642811181952147449086158724512490793113377432601003482060743621226632790819225516688307788996137666794204874620366562694876267089607312208280282528906799138906329633437411730639255457640243859155247081904106336260403224448783748164543634347724016654265667619197148771474575924120990192520471810268635828636676219368272976711262319900713469010272931316239956952797309821376421666403725330970648179113059820848103362557273940976596463227241406232573673844828678284538011022609903883562077506308975486446075881612030102953906159433485218317608879433056313598871914365920952712792087776953910100739049549080855443518472567693132857716395038498983604144738162497686859407545089400854609473891827407197730837809421852702469778052961197816358490359805650850322101720657361995332262470017722530292626090353925501073557047542548381384405846763361906135531211760230932778674246512585953906536943142413959081728019557518573624134533410408212325406308394024162742441964560665933202035222357799397585770661439265475476071071875783891904685078058307746606291405471862254733379928002416170310800915068715625592735737235151517450479442778373159811660921624901292303392961725150389426910653782628641315107067908662416986140339095036474105895700982417684788434998576902479930077746148894485978987378124381915684845296379742515553199345620105459853378335213874839525342940985545574121365840463277208140293676524427474987302761841315753941633780596121370510866820139973267578805473010893453361436672213235038260768938626538963371717191084455925766328934117936136514796871903175944163485711474467307577616857493083723337271187778483534162484587532599288035800264657830266418986777184340351917437579090401728968690699677880984950646434587272627220509127289308128834940545782344262918318981233536938121031480569966810109245821468416076591302496880160390355618261690765730923817749333534143745199858315579923867155901634072835384305344295095660738694760781186810652410603291112098853449420503746874523706095386424196720406189081962695754573007539015333082524447554807984511872201831538186479145290628653163190424982042129736300877332566565400157176475209431799966730595163661965767491192014337000904056152990146278082062257107732795205587991963867703247900816877802664184031582653690988171665039264728914660595528130258019775805973037355472068392713562754653782765020319309810031718335834597219657315005262677077888973781741703288863570897959937915658871955794821383281201222010066327038033823409788156280119058879031111046723941109119779802221964190497497483230201070206935782209165144748298241949773093928304467782126103437259804641970592438172840511788494666761335442971324182594444431357742029278987598882853166002249342993479964853451773587375006802581811236252345630017339571870952214086905210154593356901351192091571524563897345927401926030567576539391362822316930442420953606852206378947439087604477023900281740916907424678103711324649841719566822595889011538418851355379230706803596094049483178105009117409413040812151596948148013789628939490766057662761352988380973882801719488391204860652924733851104679702256169192864495916783467023010720488502500532865542065064284132602038773786060057895374207740724160614248214905313517992448181898154550552131774184187784599707015488228872012441681708553015749352738358834825167631350158024805366380256741489539712765284959927364589763816484475803954445430579986977154229543042911741208320174011293480429486713524943083140768946641500414601284349107026889246071069987127497505785683494458820115528920316530394726659915197555318274572359583564244693153049091875423697760084877258771210704029522705022326599667465536606164785577263284652588343632506992992056796859966890479900390543870916194092939457019740718705110972538421425111854921046822777493681058862226883504117203089858847293115633201169322153978292689254807033689404135074480112830714192668187362206115842508332096461583723543112297962968797244012660368848215748321048920996392563981429581336028956457318622693916538733710549744138499827027724904054400357106982210119352641526548422856190615703095403322055172455482980575088588314496319684114796411169921640190385151403298771893331855878178894751084952819898304575813968064156854085496048683181181935974759601165235338465099891065153112387824992015342961666043493071996869412533853576931203279068633769081068384639705110784435059848377293848318970447653085096629959543184057889114756368946305289989680078160437091598299712427243977348627992307563728025934133285563740310463894052651401179251579795194040279483813988635678481857086239408489857184702447653382295205028569678422684333807917704156761452127050684543204072986804659956686971892395171550873977803876025852938161744259816070624115202892515844190450844051052577508464721124085652713188876960414454244356173988256349928872911818527498915451440190174075951562414180780089457728167634974722599432120950479660446705019470445382755835207588723351981806234137589320995354517616560663602627997842794606055104262078803943796324608299144775704728835484521190910373086920102385109589475182362834379417833363887432095768555890912994043627982570578466768848853016298143518858913082015742579015621314994654344589703572861103683128280302633242295760669919071682599056147052625580901455404081624542637624440806318145639976521051873481874062707857509365841230532385090792353513888530183888357215369897974298789550486781335539415565153357338374961285846722314834190314696657150764678082810415690655432614685957244519802612780699995107009009686659464518026673810167548789604962889614845964130295780472500036368173065892118499620684695940734728854417238181515357403910606965040239536638882379400280722848704047359446300169148079100053421225019124042616667875508333192721628116458658060438049294612932852734301968358533555127275376367185274881631245724754820805406702585357078580850322977298244920376293873435212935266148192402653270092426448637698696489664632455059127814727301104777431524702525758943195450064499981588214320546447283792917680558755103065564579756786715167484148799053327256525548233457808031457148178142709925343625914027383635313995425790178958044735075908752349199610042674101535611122479934125456208728274913582671135846762433807868382133304079087325550704985766756543374573746064119054765218577139384363549566307623436049642107211340944536939764884999129207856701368400810486341901290421055522034329799005328902248537123996284650062717554291968258378511890389801365147805929631438754445844211388407520020794506068707169646929517201676330646041123514837383697781057685298147433872528679109852686878224450794440750232755481530139064786800082006397431383729378191678884731653538784567207772909478784162142376959095642942772159768162198563086127712339129394343862366712202948948645027533131251903851781443938071191300840561414887404241072293938672848273556838354199999401439657373096251186015223455253676929579652215125057496413342703785373103337091549463157577722443098700361616781077344774248886740197596456187561080045124202204923773397315402009676702515987159811663204917794246589769407654309619751063439882542336877464133175719907702251669445454862976960267096869036436424413833991848631642569207740930142124577451300735619700890799613385523118702889345129596857343299840328720520232477125785170195696048262963391789042409860555376024922387853678408241242785000609727394594082367047502911044738945113313294454532263105095556667379610997035678080920740011660018230962871784921326383965928469839676736002298629166251909651169129632027113354682166359508139076087875532196721937667985460727519863154638135454005244903024257878899358410539005098942557737622981824427715574416302647163687803062342943948026108607311690992892221499012509961584030625587727391305479751946818967918996559572380578416325897914706145378239714245053877323919465115730657191461561889404106267972043670051050649494991794110551068549340158001637931445958989717248550903841198413676402065665438225515846598659244747465520922627418201190427348244504144145024869366451736906006074755609749717430080624761025485280143057259262698140395730471800196129265009249915206711415381127379687966055761736455950836095358426949781231988255036688493333262064523387369704045114433427708742773474434573470872395550303863259325448933063299993074474563830265049570617491699503235761496390444001886844489302643031688492128861642264347383187191674933532779499475175348807064545429014104563888278200201426518267807193292761746018977446554244493610877477849139111407073625864564711748334736111341950230069009509212930303883054233005106491591062548005204046880381654851209707134849403481368566842802371300990027758652041451459146993984325448964068318304051794036375943159555883841311379712591193544896080696974221939571034258625251069997999638548756931494232733434587588747841983617633158152305258590655030489052455157806419961307639292186300800909536410518242952103447087898376783763998166640128133951963794367325327536092583251901333132911295317178544007317131871509691948670803634665271471194505050337825944129673439012943492389037944744194900431675671918711651038207802942443897069896790893775521538104223363558815752226881076237177623702059497492119801545766098475066132132911739787521205032375689243226763738350613183443486014382356688299864374222743009595084794836841555691878215658835320813736011851546545636516880503623243760289515827529257861406498247567292234645051734561153898350464161957183525902023509851164778812162795657617336090373710731748832588847823925740424674977730689651024981349664073318546979563584138311626592429204653828684021925180856597967960633568562599894971628814030299997369687407058228644506933075290978556673176157362835137257499843670444807337631647510975769916776503414088729027850963154997001550840276236669572218508221038470249870818361338667845990098412125403953451335646952974744234232991875174013041696267160352453319621823353293992540136604244046824428649018570935587151023987783031174760478454146763644732154286249917301582113481787868175332632203913578544572771238810719092984263899310398859354512806214920589578917377541371314151469808837029205071617982349015290707261508697765598202486190466992742136862295352521643929070517789634727360434698432789765903597600835654971517669661304227405353378082467097049494878818068346811079787486878600108422099542377551673438964561105729908206901849828009167700398979878609242821703701267568492093714605121224270629454885979817261643045399806966465691469747613186605070412169293665206181834709762869961548275036708769054023753324084607456518175929220355530491625176930192245641581817823058292302951013555177964455007983930877006587058421548344736265319493944845124891846534474742199678599437268744410775931912489358151508032762082683270171307665329615120234839661429542762461353349829359843556268129803989418638993080847318239399422061002078657810610758191418423262170289913161301935419454160206222039092231466154605739469423774207209995576175749522187587518187269929786133080357355252725004902191040021358681474589157888694817725593532760093045433485204983495845789898896850508075332966065183028283750023899305444790183550578042091081836105709010538586464441473525321305056162764852329056474086471093232767294027141204603332300357694412816357052780609877874424268151928728897909376848817326961317316328961398676873790330482744256271886585303642438954436515127024550948057509931302289656048764175673009374360242323253949244410659437295377859021232972689686269891173886388008382536334900999877152355562995143291630050916894348496508787513483612940264757740975919811402411224270134723192211075028990225688443980509897869655715090186523951457651581530021243097420566978545912696023337019006046621801177513122299492034239655845036583198119205372083514873821092419341430810312000546888032455751956142501630237059010581925199263347126569618748857579650902894014469668994688977994484929115891254202025552306080691071843110031850521384383987491721878559409516659611215793530301001087839901815448980014549048483220262744053665428815551336886856225262569925963785527376381311123688623618375896098594463314291048169582346319891715550598277305150701364237106843403481232479567335120135387986296495833604336413639525946088254724070391552390457806906123400416434517707012403346255284373282751423312867261547361771618777188214689270787309709020171830877896448818677773434122703848076947766417387699116667020248686890928296022440333199014270459004370832609638370371794869046319355925064168135366339603136026792458408057322642107098395555839964647201669197748666262522924628001326553390004878909819521939367290869633419567845121300277004184764071348773706002976173959588156918576943488548871810677743706345210102222274831698722579738466562533317231803487192676114014583741375483314408846032370549390527230308935555874334469819594599051134953189419617634895423969829446362106203319894395292642086229731284009454156597299070905890929737139028670609377860790769352525870715054125263382868716857642314944480166661352155317106907070427720048628660502056954272024937543716037781266782704268962035058799437619803612038446285428640180664719343387623402682318778336134266462727131531191193380251496095305133962601778569770295001389477920593376289596004172041117702312246558045001160694590475307454747065272416942486964761961647571577947534144039169134231266400305105334553174334959242741024683659587444500138752619091750678807184642704263047695842073495574041185962923508176573013477979216749327031370952727784223146574040031039720088572551001286187331127944518039154749313894354855457994990104504068208588093531428592914546980019092920398837285141687321278586401742642005134370437277062114029627434803753571584925665327448901752948695346151630265338734956142280873414826397446537935839748186357421490012516080781957947296384109763121449731495457373042122682903219631767481199543368338906862261609891557464084210197728831965158041939472597456973350194088407395766647687397313811772738377058407467794402841778781186676165671478368752293525528909319794152098803939529150325667587366263010582595288334644507776325087580327546963231199569152358298150238530527500324786866818603020315674949116760436671155443775752137560801129806595717476641052901832915239022038659667163063075058554094778238288354410181982977935315438857133334450412269393599814539258229018829950287330603716367698583566685460714022411862347201029728246208488469382744361222424558561359368982689300488565716822950970733562941780367944467709539254251491011645994506437183797697271366489551334855365753051686126669557713709305279019957481393210267072869131854657996183158349959355379627599454503958857351472253740366026534644299828416431895721233594832409638753303450672980498391539931657042225301518021604996289426621490091139959693312331705641661233322971709833997682620689963137532984250571529460628746128939775894854154796822310011945152294169779460541452259718726126266829897271933073157103867195894749877675082056694948615249213506713962596572391214435209990591388530071926932089543234187417460832005902668075788339799526012818681527354158190089189200220448276896438660990421455956276283627916411659574449720280123341140949590805308047573738404620204712673934599609521557328120694191456148426894005675182697786182209079670688937651126302232670964894770978877576581281609963559246117464825804251572092678918331361798807055946299765315250151283063679282283291675465036502417519561756573356569033057854323506616914290002531280187577377131032198635324915273147465292140011490086481445815883078495191174048830522175216319665260269476033152569698338149539004936441982901389304929978811904787632328581368057156741205306097298192149882327329541384801867082018539597240529841000534912844521283518728430296093494114428578454586884260528939037760216209747360075566985646398635415701596200033577615815304466044707212530364594897727482951886883524446728176856466847258632375864941217861344418343803037226749124894509609416612555915129597254966550663734697682359363243218674060437151318931230794643515368253936616861783313922004840838827470247378555387339776551586110827541215145102865778725404088771822442370965651819782160725591653966612194899302301806200020579476643182316995542931853278740134498758883878526928407658367896463259301060301243955368766762688862635017193271084070051673303333873604683640608808493346057648930996479627755044368463469849456837871625363049377874164822493436488103956265252922635111450304233309144344584998916168372639474611017063288409929026427850635470356752587981141439562743693520232658738183638450726764713924257425083908492268112956720433518082465583993493505603955900524274460993385820469735020119249243561509063215739645514288662505120592488549613864757906555656378148212353497511726382953790010694824241808121899783769766884460365993019817013444891686864274994860629371244172223708575563403687151733349555341851015680981423135472483825991758065075462764104777549101536094404623976808619149071835413651159085004997035330145847369414540704512851201552984033583095538970215294752726270417199103771152824189505257095355901176374232918380492075424956173389413098900002150250479183684712402659809154041019251324353690046793337469310993802882885910932581743270665009084553115846490696272542858706115395409987195976681119712818797258861782368595350013564615407621222328723144720995863288855022485741941590118607913171511541471145168423652675525188871190522408358040080153527748116975428958761769500748655726384073858837747712604904057127555987517336902336069430203065462802952076777592895710214508754129097840242265427009543364958053919678672354767815085053887348129721028992897399899623375866168029442708054255897941349665202479776460087486055657101100894209381105631484239905684862050390275598598557539928600925945691535254689003512469894695776814344537652883999594938746165690700638658347870797496748532358075903615735230245702587092500779767658992303063854838025844802798978437120667831312334259217019303594617183908148620921972368243146088089479333738200133799489027226764411508083214130251786233439922568926559430554408334876763204833763607438554701266589193418437202844248867374000592052412162993734004665582262970533201369913479948225931314561863681015558213335347714975431025449855416163970582782451857549136801252852063886180695948354489045283666890426138956243147059278928453033419770663370679576455798637449151955767180863691738893082790090838713412294831238677383670899524567199089627125646244158937626870894392200538057565500380260985892909863200768640380180844289990981936818586489125647308391661245105356970001638876897013465275078097653180563303841173489416741604430439888241756537966507998393596627093308542646930384355714835064992154474121884777645713462126163347552376866982652659711970154545553858137778164242737337235526829920442571757879029164334667821236032415466442475122149219407699415038829244304684933936250561524757960958398318135671669924878269563519917192957707381848827551420893155443753178042102542482011970918208129354866930937519393693898968407440827909242057728133829919645458152505993256242532333182893228990806935961502126839746845085985800549243211197205284451263420854067918366274309477053318936254559207397084199673765149760205925236680492673782989469351480735697153600397068408699951590895326602817543087741370961992798548530372260474553591682043164980407108680349596198293961266398968724068287313687841309466149850735798500524163883829453872040428135409650006872588690127930370688656672359274845624916047369702422756933551814887304185017635168718282574159530290866601346424276651140713866655039043460618051973101550319822519048671980292864786435311192402502477552016132490047379762264644703138758193811319023528028514138822988682247300412491684256060599282843470245009916771901302205685006242079914284828863673206983339774627880894510551066505289062192659984866471180615030962778256613108885917451745885277871698222211419697697631995982167680485115291652312790943229690889460960663798690008412350657813909740380821884031415384749793245276783561095219636293348615214777918028236435658490767912955125513494487333496353709572677690118882645164531053279991849162724116372511543683992459010389294371070332831221827312824806218366740409883433933511310128535906536850201701352106334564554921952104700784213221123273360681371564770700831283201657750152815069516963423040079690361795739243999898905384091439415748244269306655665272881307597250176719877107584583206269578787666830946155890186615722988552527942288692876858436197841030592352619705627610156872307866935799772100307689570710481575056859020988465577636500391573394445847665444255262461079440871792165592108872397984814441885025008467697269198275330170149038980452920858090233278159888044185379711257226051180693685530533244400484859029916484946991376938439504525180997283946667540639069477376278566329719788385355000495713365140463017672860511239101595400602601602845181109031726252235513190328026573665738994219669779228159644298873737938997663876692788468764292978429050413427258635204978473558812944459045479214829775702179584103105119758023849920662892132754054279171070156942748280970507433199379529936010942464144848462432329750571792725057920074152775729580063794880275440782474393734051253799933878573379312198954034262023383653013367318085683379209684574906068442862536111315431658262682916429312451071751608468908213759956727550106157544275473901727909157567142417916010354850118665548191604771319666388251833691934475394961636601761949128623979149431047364599046887449297962890020729496333959823809540829018703815689310088418662905203868267791363560130984145939763723854820252834924237906355659401660509732410792742699759368359443795774404702604815466374835179964254349252276505365030197815941010689343867079343652818544756785710154304867236483463982026369224524309690518303285778407689400784173242902600424089359846427127253915214279570544534904139430015053833432285996401308253953798406951194223951250299594868120508585173685243635176065778790834285539654362742952607879354437507870526301352670088923054429201685994974415127374630460884329944244544320947129293977214211669104253279290090907281068061874233590788301873940312807249933448095053367314601304517583706919264448503578662189667804764205700692113004529304652383936977956413114963913462199272778787178735516285483057880042684738490899717407909067834203352578882159688460387485880929537028567818478655031877519374343280128464159235458735282914558222497460579091408611880337402946903975195334322610987726482758258556692417180953744081925553409844184392120373911794865058005137769937606986992175799908301169510724548322224345230242439868167515402337140999964946413888892687082521705469452282112347245600719122102420798610663489893603091276503856735072236372486882806928901099317974002025812771148061367947476598527000312213146657292280706715313509410022364494904426761185925848166836111794377603570717610401138508385103617387896547442351908016131379898690848483928168446516758541469139819070356498560242690452930885557270786472627127076460696653263647891658799201543403179208608817595775698218769332453595070195612059074248293580186074422852372387960032057103368350365835058052070759423508814102012503120031647360658256867169506575438254363023704386460608944817899955726825642591111015465505135464107491958350597810689581430313474267808002936390789229777002129197426576766841942921521699456434535903705577291758561179345044242189596558418053040332876451504790204029091843528613448323123986573844488411268702177272384572068237576641333103823371207032792833794849548757235054832377513615143682644442591628869763701902751852091037105730836556364454040293295216387111844861511283276545636823629253039262971045799817417243876090703694064060225429075322177839516856393027029409991181622557649904263246858038292304820396663347485277268939230940790933117482065604185210091708653084343590463521724749720271761998321409027910160485364892194279397448100794329231941745286748533926488147385034591511800536052837308008962399968572896346214805140603514584982816928770857858901931352824278668374035034005070762129589693387459765480717103182391857890979803759104995427860040207459262987781868859692791819223456233753848893603451527126285100806824072449820176255620923513225369784784514760495495352030120112434147690166457959115855245072353638051059095446649955662280028383094837071435454637626378004037181454542847056537864382432366813463807622277945297408347099602830585288833406721091908362569407612695960177910602731167382880973987312739856639834607811112227364371609389320532253877632065124967259336225353088298560004444464458183164942049625786802007782477660666803522610158107726248882601035411213506200237802906636674967928286909851446499441632384763225099006050070190297603490896082768447390565586999216660245292485345722149954621428673780247936767739703126881352579858340320647514804230552258634624944371156665548803003624011126844091941573412089737604049271891667465002324427349567292259747970286046159087948279094616501250117211386490896723337937249414005269906824132727353923183050623003726889381104636070097004901790023663556475152653223601290270047061569045985784854909139873666697417704035536762934262706614848131235399092299675568609611715488143529956215019624525806082451705381330458330725945116972695613510582925802624434754130138041117624088462850068228520847200193937869505992988624845044797964604405763189547414683217529255208171950480007996694532749289561967370108874956496368544596232042875327350168972849825369369950740227038733167992699428844712103936944222325246361602816697609589236174347478436434171118324243830868679344776122934178077779749124633995301024856172386070097569667246261063526076964658714865386498079653964012012201569316934931125997111979549104800556934129212936513697663880191700086610862330142066962639415192845597849354057844523087324756452526801849310672160388155810504952351894495774973474610724285725002088988121290231633923881681347159283300159123448857211163968090067729263726480043223220719936731813832067050088092122062995756346915010189203513054345557533409586901606967493422015377783611352503898273534618479549848811380186859601443051187360541499626811051304509938159902043316576304202051845324679369769222482660264361919066049455977459005362603323681377331077062472740602568168048462144717286016287402323615472491634280579009721490394680826652848450084359120308120733110816684099119874019097523219696188744935985418036647758608857999565489295435487487547974472591006657466752848573081522612963358277654558083318880777271720446141377500171287297381201621337050962376094122833897234710948767299189237328000197779337723254465772522136918347742076643531332425747175978364112115872967529808738098917201200876771866922339899104888424241272609046179262761796071780272222664882856560802571535268939834320069717220036209170399828876023573774762952758787981123447785269727239015639363395036400591339986212100900603808504759756384905383059310553473373055559069411091372330688631211792635375795283458147740886167686379667690779144943833855343145207927197632813422183897737033415990436705465030351322469255380132682621536128879567985562109410988652844589396758012823350439337877988746403729652924396143968111332652296904238950023390900862727787322607031476702431903192767385647660118163827109565075006001396250756819297748875177727091490546349094618558761330327026505226060916022210310096859814497281284112674956050098555773793555347425847071326110375951716219061224727818437249379826751112283449872459582811673101207221699518534590919324574553530170789735800885637747346782813851821426832542602511171888353211929889498394931186244627727010136377855098978245187209829513414359527952021120482829630258181988756695887836761726975865184364802765582919616997103250542484655187387553651194743661355529407028582224123259650801780052291147770959558056407148027469526140841072939971557926960392024657313218125502929087438786641439735364601361141455275398967800220533807391544065435227409698685914958918806154398637118092016628116806753079318874401647335380120351544150790757787792495285613486066342536214688669553987609813903286364349243403961057361880284919806773834744169579358506652954898367718040376780219135661302003482216468210400007008966669038419694287005104489774013504991693195104946939062120402527475173301941958466696137609693299598369833796125947870168996199702805874283882550901389329025932907408954576318457646611135555930508115613932820896198261995971713180154249008605454053888311267721043061819206473405839920893868867445115059623501360837810242716049087459092348710845401910905315876135541896165652025170337536693252715189722777807836841040185264247370070474659510005987086417272497415913499173919916126440915505702744220795245618710613505744209623035245119544696683530824414154363094726679355423164403422397534968594272822730789466968520687321011588751994801914132356710427820914904452158593481891966167700417756317642928057645109078952626731143723717955919959826718378606842896201523680629221356608788910992543800207028042140035988837536793131811040265942461602751067989453624540447196242619712496762946207988958118049193258464279144238385015846697139800125911039403092307763401968333896290309524757300991949231143732817515218710197617529973686430322688197791039730372076123795215940830193887480132090522456383386048445959869625726037419919776952602646272022021616035310269527132143850314200293753573988133088762403905989669437866912361926328834695802742613674503364937494138490521087309716442988547886764537552674660887054477407278836827323447518398481776392998923814950756627726832230454112642879377327251158524479983436535710591336114062980717395453875517294730938726077399192423483851910647885109272690639757694285611256305593854801103903389954493465303753891730924555792336443108171688275587398787596598302372584239686530207801390570526286454965134204231861808302127459220394717678056598418944586443974534906641378457277246415602465177383158324698532337852673366025358700200683255260717216959652824990399414045007260848432928300416407949323050800606175795179941489411332897584588819584607065908588880522230515813473745699186694319441515108843989021229080223329285050246969058898769676988548702074829816420397813368585183456701202704920329196463588482767394645265690973469355247819704568203266454897940604203691933749497150485523124246642381765873941227752262910006442329543553681352989012710524447647049389718689939648081330516621025597789406030140793249709380030952847916777237472722198602290611931246861979757266115774084102196256519871205668033147895502878992944435626144620275922943257634821817112904874955203336814772190434454715638261569623695013793577021690222140461682605036193437668735846548551473958574269915674966473646738851419295179411819528605577703241142029822150899714549392047825512585691189348488777124372013453456282223960246931509720248194961252393821958359142020038252600623136326797381891423749005840549288003085575968612618190414867800070453654825509061729914133073724873364818966989564606332137283753458211363678848517216160597292656309591833436890545077030126374505022510992534432832469041078685535037861485583072367686276138002731580132410654013693374962387969964405943812050466309809379438773634136518613113339992530372377227107400888845811857025693131659788455368677749806455701904138096954250567106931495329096524720329609883312561311482582165936694557703497586540152884319793857330117112584167055867125107461600691657666505765921045498755879439133361321485676466827652822857597586507005180777839309431361237110644206697155336119358039359078959362583119737589469942067067859619424424053192607030423035954671137074124764394752750880422872925462240234731180627701761770518567170731230656806932887723517758243650812770356298861875504951415552830058197657754720250484370274785863394547665584404678945091705740085712320776456919427001046132669660609694615107296111436075919346809976713121877200480349610354038023016257588756055683185584382065902074186842991728368852316622000612326391942115759671900826068965364283899565809121187930543526737835818409864783168150508672442734469077560231279281929638235714793706500412133621250086749425043142256600003181894690303066841866581856096827154243102219689267536401352820335205583237846788629559477992638017208283054872269311686227895261208918250090066084758822399124257563810973959250260947696700081272560638499839890314275912885111462768748247071586220504689048258979614105720554672842215187583593657058332349116545834949509262747261604223966111790760984141206103226282725315037343733437908387763113816590550368758915964376060379394216880045136999292771275019883338815235709819728880397162502341380549492460109144144685859724023747275835674331904179519066308197905714263326340466139394664694994968138377243691157219265647237929343790182894740451638577163569021344647028107867537162992184403838380158063199008651725622777993434132732692973467391894606581898550843784369461608858186038539530644380512629712239969516628444259490475049860822979950363657179309506369242424176032449660252561074554576468041683306481808864235520529164606323990340930217459066116674092550251379685573549613393749362664128306135711675740472703068300063171774728920823610892297703613621863156139226385649427295048473348222263366896605483436613483426297598283532524612434680819086613148380979358794312543635534650196671021813616724744709809750734910105549418582181617851873922313981513464054435614277185973691188393189199847695520358869451586312540100741711111946634618556049615914496335901819045524087499843550304238977025639073386018447084825098923332975350247162706507885160008289961543950313687582094202884403418969484919809544077395420293277830378049135791386688084777677551950657424111515358777663342121300820258530752027299401834676034245606015411106807626926262470220031269241220667428779132773430157504496581331159674880226454379094393175397625024364024213776549123323604539976960509791297151076589562307332529176090506242743687785007780589836030911486453001314272277074981623586838018678076503401263960029888173654818241957570661602112251477852251963803979317276817892998437307237640922490942273226980958862386558388510887264332812211718933272683263970210975661375044265821578902908557526548257341460991621309610077407713524937207152299047642117221657344913310058662864626790580079757686517798906187546055251913606772521903835989544854625650312244599844140974120373176432197937941956621411451175783022891960674249963881606768686403015558489146117991652678358006576980573547096105017464101696829841223989002940434489351816349905410565696467820378451762217907460526076315633994623112508075963155183575174357873514599968744423627137843009956820345711517930521933263010342314309245683286696934166912110152696375685190367624420925028005786763089049183333747687674440860023806885454837321904321988823108508508153395600736871199055880022942359938831657375567875441650037907846853161349066493908093293576973509071959421082670414006987662337527946280739545857053290864003662122308800189966934503969503857648999904040643842876778180313986402320955720835015678598624781774543804220892344397562721911394399763817915113613529184768497845319644446788345456931329184386262847072255005023117589794537053934941970379453722813244687684138623655483125522980334940541046445676584015790808944255667374455982652134807719287828183916008708208119360197282554731573430850541031426899218358092449857447354164345177664309476128706830271233597648408199243994793083563708774292261189096059547479632263720618090330904619877641207247210933454733896289790133425362108922713682061163508473871151386270918114984581524698331236978195612513757109092134719442607920673173871742097034530774495718838146448758813959808121784462478618712662607042800455721233328268802783015094999154033213893183264037216176202989344230559339223843100225659183583520868675608612099403495228906563837107563500700259530591551497146816862776265716760105091898532716193665425753700889478363943043466816152800646773075956500655619898289853505317603896610733371083503264817569037617080993876855896775274003183906148246530872912481858728813020075826086865935167581107604221464695311551462318664990447947126876327236128764273225322381753280183506728271888789272875288854399690417561506690171681715063641393546841765071707382526416216388066065525943215696161252486203655811873999398772939749355793120942344543240275292333817633750497944741622316273893904231105116509233753209769686835871670592891180915702848665696502363349351285802875885738480474710923212554020727417828911638063981393762377940418767790854205822518964327712268274277350113107613033287504191280061005444779979160738350966499989140990292896295025176942064259900253002082519389284548326795739594193865213377555123968208527732154373718128609419691480945426695264406224932762258770230403518767202768530571448284957972688593369583934954741889518555982799297717761922001757469287342898074329416582448323715966742477944682544212533307793041179893329485818685439184009619394206100927612448167145552660240918764820190892708044094307927460155007089077555708028053261709337677488710054883749898565812088746378290499618936058217420877838432834076387457637680124221119243819938467521119582188806218640422780000893058754373700951993510730897600230811685025894930100105394035139270750096499121052706995199077729184965652561188885864816840361303173306486576234043422171081613466790552870803303909483863360367683799134038915934917268955894778797731823479762748077185597997520180902132971047862582805058778959037752695980784415282537855179650754311609470002916332161460825617040713987342567394311627254230001175403463940802515917634812487225366652981415748573720783871878407787615604166525400737582739354165680448241480302156784302432350754432168308618614686732320984339411263725892090391768029574973907238543064296291193666025036227093623674225892125464407708929960881193869410237428148958345724344764604746191963138219300068685042678739552081103731701261116567419084284452920075995000075478259889225479824596881444555710093042065524619269230626941328140573740128095005416075534751747711428630410305104208803743106504477534208900342749079061508570493476264182162989664410915682511083763298831701631934411046413141186511413469899167971582184508059434868756012143871565788657763687750485206195688417166394622136912063111858593250024674566314667288431346739692743889081206633143125121322154522336472653432169715120775515549357116551638067445694490351767613587794446273896684561514860896047812137677153698291516866668551918137901133134820057767021835808472543659701999096015826547792624912602986609563767746287218844336943821101508028939629461046123544456649216385387469302354696433434545386443007986446477286693282502203465742906619003671946989386324850226227437484827473044463314920452515240287653416170100886411558458564975550908448180030251945707205581378247937557053855033715329278284564266891621072382808150593107970252849847928679024482497693494506436407036962048735547026540277204820053272524196734302357075978099435414084941248243006754094555827336849607747361977296908483192521505481296165447611417869822194276347191733295829786838491236033115635294792312822464686291279292184844922621891509896455785786056200834114640720839024199537326050925433622981034343472114101744652110845367347306522334463095663085066065170521433978640593373925555817818562899296430200184648001997981158251652821065676797549420223898701810182483385984939124047915290737519477256204606536912023825756397728974665367686389398868510341385032621812555933295609340577698359553080352842474283078115008316115565508944002853050703700195551193854378553667262758325836295027032176293245587478381696139472784735223471673271655040407992494107085021336541380283305274336481490227919901167130500248202890544483058214983825214443634265474545189964474616096701819965096680876367282688279693023805882457444140043126808391613325622154891392147682604585398990755836302158345656915553026886020508725854926224162177398867538371749357504551537136199541488450577334848912416279227733881319781874764878885452293360074389934412510186174254670208646515481206708084665333020703940690996962366222271531878083253597317448636009266223093139848004241535868651782544389236767017383548512337529256389779909507638789988764592861188225477859740939140954577347814205961369682830793765283604287263877408938024907063002396175040800820111402632668688115889981423258893180708685785151591602946787205018716674583621011981089151695321748686385246489856447087207201948074879397264988592855901124978412739929503180045792939500945661532561721122239691682311774771378198643006445701485328517184408738452318851791438510217389590226586910306471471644975925890978152781426293979528180554816997552944773380690468900670527053519606876281405068775545937589322862146478918118076234595649306744029539002532843773068884607187942026393978875958029088854928701696050362758173453152980497354795655072889439529653113064970499208421319465023349332011005269242514361889599966989311913481874433242498749991925712917403310170536021542320442694025966814081931029399734985088379941143750890451467917156911805874282662072599208197535799409892524778280119731472784705002633812834031027103212874533654327364246992659270358115747874617291729195225058129118807255344675273985063513904607037984329612442395895760578440545827914778391662383683968749346593745942081168969978171624347715570288602963225060685469267943351789213706216300595403596021213533478954776865966091131846373209974288073293524865992682305030637812783901526744932503351048713586966385755749733656182914801993668332026348777364617908336789988959151260920336382029092181439681890671016214194518865110212364055567129899607473143321284373376973411470065700801598073565835715089206151103092441169014093116491895225345650125426304455088651297287712889394470337328456060423812270976761431601606032170995724746244255380326275482291198389069665293641662418209660498357323987184717316398743538133993513090102097219202330299375302208861632200222160173467603550831181149235794717301859589054160076105364698038151390676238818602218891583710140497187663003460953344034192160843051599102385180396274232935028720737722947980132622459717206825263067435651869106233576847059599675197013063899195186263408445312223636070162494235354031349848073411799446355406786016191513294461388513901903654944919996202013537143130471374494346185681582833083297495067015485634663336554532447325217023540168330675039086470165586508095463689836453269666990523667216752085221019142789589722141860327520228711530528937379815636637056988959948418341668356709820756464275038457107511887585892528676294050381004885973777462488659035094796825818527130111858742386440419869033117704525823360972762581076844809435199535330484686708110799636877114880643275631285687033218027210463001217676013529544445827418151826892326272588344054672677261523696109993782930320906097272620308263725968975712967489974659593776722464577900645714712972626039143886105471823505213774548251202054755151383794181069905048363800462259954802822137927635326594499908559771595643093030341556174186647845606444335157736326703242607040803909743409528385825911805778198203101462803028261580482144192200453695424041831724314539549936694387229697351540631421320417196945553946190361471950291770286377150073326990330611631686719909922603378069960938328801766132858544545616826327571928161975607461897857985387869125660906258787547694586682644306556552538930555228269121361710739688435557328698270168532735367059947583288048008660490776898620073639182986351764698701668650910714845417515323883524480655200894359555214555532235669666095638986143113462046714258682003880235490719267443865280867709711261742117653587111897929722190630946538824064397734399647856154021352035825978756556461873691129118577298536751601884894771626042321891694080060874948528724591696800119730087726151717570769439171122652552397834615920863562889541658088519869098127410079803478691227875324652952551522469535803633631146702147434935540562598534672328071592787550306765864316812884676277947995606808245851965189274257691909531498274995482523455529478124549846785195518827831775302325808304374428446162051644612643170807051109103869175789135082812930611358938785390284005796005384149610389552557514166966717356427345757235383942772559202792963448535550075757517787209717476173491655806039648466869823404220218381894845326040741050877996217030270456427496029511160475401324743808443997211349662010430298984466931001891198377620788812083220513395031798969545704876413936201393196067637667837009126895478089572006451075429444939602015748898399872836908516411550360295399520533893731292246336591841978478361568187301292046541648612624834384791434421701797867395308325313734776763219309794259734128164195176514439176925293930889263389437859912087173358249357609473357079150120558710248140633850817164745751631543368271197252615250639781276235828620796957681805017340501112412208851716616448150272911709541919875153423654900974233519373615399168185506340395200147185269478116402344476346141772857876043627615697623346692935446795159876101872484539868361133524761279310487461847689585407647771317445734600091394097886155769497833123585571324282957945537371786042276500259743556719667736596061060275699432218819895935763342666756259437701232255081940522688951226306709524226849989135092314524588695065453307685320331473535920476224685550591951445180213813249494925584981378316956360805779345695318058464909533532842600813988218101915369729263892962211244272885708981506256990830331342380358783659766530177292713308470702065666742392533580473561415331639676963967901848595566897053433767894281767367671002197171194005183037374502912497682649425462531933750384281635323632200972226163932495395226326505827630751581857801802110911579176961712521603899613937768370110670166626875855095102426459721454189776131920578112168022836158185607756669429816632145772829443906919155965151784688233248903076022475652289457041217266848620848133207715515791412309421565268838668636180237779518260000675438616470719253011455994154636503391840613211983005260318863896569491221373332524832162243317821336909817603619234033746093532065522778352998056406209332413505699963950451259355023368976013000651010233732993947297843946474271360541296843714900467423606916340777760204214702622976040348198326563160805735379088326857789887558244853668335409747612327130921619605613396926664733308220774480555389579313866741565058973930395790733554518061410811594775709197085191115551073941091346121705883418421119366049097933935861669807277606957951448172122656421928515738610687631565588680644769836364342349005655350562287653591304886817725909940006157529751608279285008331054007181605444694901317764667366538468423826938059362597781550119590067933826315506276060956706618390440220891151963508906869782467688372852234166923302053323871676686299062769297143010443018067925524689179605406308944378222661102107937103664948727999542326619335692524543924152722650849184534943650549724665400384288936089746681863171247023875141217475058393812801533224947682403319498418545483323693143037858639090138779725670528674610346695559070438473523708330564908554128188077794869061605772462053060091679447494440217365156693890437317964863364215337401920612743353396034575055725137431050068181612134252331187668738016025632471917523098785548352095995211710518096971527584223936384006376817334376510838866448982735081764443277837034337103480550311541755806586964653086532746314172192218116335682919962757962237408966000604174149183761436438268092895869485972267602882969123175587825408018487250582120550739573765888179910497195997876376555529418724357612573604373535032132584906325600583896986048308324684215511765692094826316789304062503473972322727488386446069645727951592176551294798617728935038172835315009898400239574785445822826126306146075970894478878401928066824769958561257245911602143855354707466747891626592950071301995522002234962691622947496735915213178998905411392415397319787953655878266725955697886434489748401752386453964933136896989441819921396588044089247264218063491400911724220016501354103396704670724744123232686824887996454041619939241866311057108286079254659553724663967954575131379650950565272468245941345491021223340644984213090556265739190106798477143752901159254104374085238265754656567071311318786949089139651220869231895148383277605246560084897638097451147302654942244306169111463412851359801878656862225935961873417006073806987647288652975731168553732532768985150305708999887044355815659132698226869052343720034119194350923334164774560854474928729765908976388994521452876392803402178415993450045514731139197411207960687265181721279611072763110263557951343276908005050791818883268315049580255230308010875789436239619919636415189445148320478897507709384874550590357213558137676729720403133363022270651632689361125289518814744590526601909280010471615131241153693378633683077987798496100894946238922547904698422472180662105223361619983040052019419811036680847240859083693613720434142929154292841712244696691923093233376527513653102097181947034292231086713215778518984601868229562607595217843756709194503207841070897097503664456747977727034153770118029598653374262275325541610341635769548822306580377975590667133071855072313005744792479380825210026470027135969367230413842179489133469760743040585638687236633519685246070164045826895884932736462914305215784414862672043139306488263591105331183783560667544427796523913109792748467969408283514697871186631965527314669679715890162477559184832866445881889730255601828912387223591391500942165440895138837030630662284921705776831855390365607084564189233343945912172915650407817235421819297118575532708869180379862091459890567250145615869184260556734173616767948573867915909614347252140793830194630779753503439245414617045817060149688506577398645241440722842152374448173741939515240229135011293896303807482479761909540854041717055736998063041650399774858547878941951779196678134274991005793057774407317353456248357268848266986191801437431953121300080799494414659842967686033452645712492416950133920735329474311326403828567342933306528775718996168897016410065191337271741981227282313307407676241745113097831349456443875483152573714870019276115792837059792701214461902630887712778701111000798440018370606563279337238770777632653503317280596279953768030115120018055577165237188606279084885180947942179088595605215282935681313412465558272570529176775621464042524156622319946320490337345861350779829105634310375268438523492718896499985401622184470670442356501124485823295971100815737051005098692972168494050827888564753177262344296487852537855314217641581016609654390657178451370245719052380320794762523775886150332858523236926601199748733890513132573325818015962673543132778940386318457137125484336350546872948718817297048057242369597339194107445830113836666255195210210157399503688196693973659665322213574680204179690158107812468112874979434018684439929469930828458780297047545881188078486459134488676476084241976170636613811727646516030404314127804583944198193550269174962144337847783051204426691370737657305944967461412857402344045795996637508491148859467349624232361548823122121162638133859143151591741628763740013188772074088937349615705474304821097727749074213910180867000252170972447966253437099738431806622474241289121688520307684766051124329356803122556787519843815388007624467339187006042767030709894976640772877387484493617818458462366390806499355387311657575744421744763018654001675547855437631036469003810110969343697883119592546692970877157907049352326729419077902931587763141394881039570279888377092682454701768499623830815750477154780589940149738853470874950356673629178812339844799737517283816880841002191643554217612346160407992301278611787272429612041271084589538670077873605546930440372544770323161734021824237885980950046062831833757299320748684284726543402283042579963341639467106381339025930640024842958760214298205678214001141395528212463704350626175439802418814348161926690156029396600286630782564761374429980805289265387476891812073150123075407840943795067417184906463213938887957526555982709802479708990565116628145199837924748216750999044434837983190319312581501541825854906024811218404288330441220780280527170776089909825267783425809214965791484771713874710012407950728660439671546138037068124883291435602932972250398537608348719214463806291392341833586604834513572828971855798931225803606642517785723176592486781890402423092161056600020569228485602358891862475228014287289570630236947621600830999965885855160674676617046925199135964409098881084514381685503109593447916882308906603847214538606229440363333868090171755987899709623591407038036023123768146314840949696546448757643334572706186303611147219359568951652250320335465997962002757261254543090224685182521938099701716161164594909165038809314715717397685171356442217348264352941781321701101003575143378497957137764744972326743400973823618360375132042235273921148880610085957784526953237910415977861728280458620411547164284299906584388311997670464838412951839551969133076279286421758700897603897139069018170104571271321930707724250722061635146363649319623378691559916843739480235787196164197394798350732822129561490119091890639359231765332630677545394384613652733112956967901844605757137249228157483926014957235322973331715832583049258078205138989570195475900560374377698758186457396045819293370166835163244247459943289751576909438659077272139839251180006166991393859487202619339252731132962824183122690144488411871298075730872901036058913542504137822121869511172480702168587666097452213823187432588957984374953420295875816227049635522056729196531897714103092292295934717967984508059036950101960974967907790324225805864722846759790919088340574627387261642710304613969654284443919625988254307111043120958891777036280952989262369472400081628277133260834703991230543757061035688058404922801714454281858184876241497819651796396915283600735042258551503870769996028756499246788842932304840399681730892215585934906125036170755273724272973396101265686916099015647032425706580298433090616595187217577613117395395470307890311383065129844198412932199120059576124433258852147308040080853075557677320174107247624099970886031346048396337747012912020413178754001410553257884923717427528464067288522004767221368126011651781988774368385883543233779610139170112632131780775078746791991004100941910630104709341953871117774855229278895515070757386341001325132211290252181080096117350337669917638563655800643433084953257021919003978918903583557393753632572852335806519093046773530750467667311423159148027275373827395703136440103610777577069328852965638650166601046120149675181173468702770348565105375156335369843667022725375332279588972732463868724085903753128134505037918984006264731500224312664372141038773019959325965394089846617899977789736240667950150086635453256381859584799750635637834340084931183186397180568454323079914885641041172683929042392733581449586927177294691890840770629666480213390679430001164679872148489849762221522263209029403640691749796551263431994619974986130311564883665030639979290476035010320998007412021787367088365643327701500934031502147959372553226019253538352959735475364892258513449659312464808221809773078522831896402030667495840562049852302438803354345729726863264270937468115119466843458231008286749982734199919782824545147417909613366225893222307087209116063257814323603629449122499439188596188894222787425196720624793191650798987945300134034536676455076369476167189485157101280922332669872038361861989074508101924318390948867871218413123722544193777918551059586536508668219234219643318478467477719369214486394176978382310496413070315282533729722621204594226371827575906743639346387670755645403368589214511598802167925035941495983095947483358800089103838653367106438207640979955924418057754904314579817322655896829808988007975968945881201372734560228638347379524542568967792219687748338713832441262197118366785604701644743964547407632161910853416891795007498744062367967272802345141486151401964538637297554956103086120721879265573793659365971154127255053575389570690625549284168616021684286695974884481915424930331058940068187599582526051991733444574752556484119087552551952817582472919457470146003955797463840350489541633829298784982783574706928207693384437691848429556793520186557004909600563751846518329609038096731861816629066772167204743537489227957755392732380749937889555539853709332993305290124734035810508845515128133049114191999214568530639724694620821311434242460633629791640565655576687029436906503431114269000462171264284296149535769694530918671475476722544358428146570997820894385715307173203740245419369468293781606608983876788415003462656693968230414468817201576273522066136615353894252046625861071171540522172407723785838614856355243008088800769593032692630656487751571406553372880977263692856176009658832018239466129357617457853895069932396092949482913316401484310070977915635655485076834747670607128821099942879614983870554135556850829996558167661550950318943154637347346600044867323096332918204255370292710841240598584777252883739606647236438278882505908393002682975378212053540424007713979724722878137084202710310302456334811937098983947175404326237636850746131432656782903016230090862348897804155893169358494874452435703826801757904436437212661831048158718373482286433103050420467918863230744942688869024352785977351611269080197016008514655632693412036858530535914676909405909000543923623703884501693653717451027924409062010536733350633002784643852752867627318094147599978453927866744709829775917102651826810546735293776909857944336258135435331257492020446145692223987098585090332371075934901544247247360037326713753224251189049792643339512176332812590013439471313076556630144514465301717900778714299601762039409060231806856935093684165219262027378793564193707106315836357993261185475288539546145774880825022408489015314322669474852984194156119170604316791939200823940330967397899362340544852588063336861092967540681699671845370630703049870928405871174387922406386957812887765150806786355145632654481297744837546245985674341556445082980096367065184934722290728193043417371037862814018343876259000298746097549876496437238628126182988129271397347939596809184909245847268255084293724050551649009862570037870189836691834964680651299515735657987729494830740429881214557502276558891490470056824307198823149065367261509901547138550074799236343830237933176709041727842696656575724302040657560807042162550058082454844039163078373354576952061907082973205178118606172241623418852874749250072178218080089946144798593488133176637637331907333830740762688268568505989298359924391881825905989087967007344273119356594273631254600677763025720741629067991236363126851061592211448610437130923328588630757866172891153177558926844787562212307303042417376488152257514458861481548281466978043590633837668732961829866552347515617900382472600820347986863598163586288309731977695619564517402599013465807856470645028946694855397554453723270441574805892247234525749939085106743063523779647454549557523482267323155682897162981048265948831916924451704364195132457453062021751287349782521309317451974469419475584211314116727796748723514109365984585307869602521561238001181887126006893863447087280139611016385739931288898512549159822312590796114557051975783761931800667638965512675491190209418088536933766197354551019046909795104214282646695934602894713125670311941613933816518058342323526173013283466332348034140228738590401828759631475717545802841472086833260275369283365476626232174669993193025387417586429013344401968258385057689301658916193233302631717492723961122780441995930091106478519534221184162081060761291453407793996258465238773806166492426904449787931241585476333019854248300002832447485388254087487404152761218254884814936661453796662786556906161787498926669941294454786974186995229303148947882541317109655643715858013975575203854778845647105374421230493762561747767840642046240786438618519768494602486136603485210240235317600576546199635536540578234472131147576494411133793291409489533729631397498248478608243732234347772815277771383126763287739970582587289286031926774781195617891003742985876368055718212365558044719464791100454768056108740158637192228500919499499019044747100213304886656253780536783693385568581526636553650525609353979080432816515634840381845307251360489126785304806753513650337830031015355855593993012568710785214539525390650979624623799191261480906738205392089312281537557044549684897312317648999085732767217447291581037447438329451458535446787277221443376312718595591003181019800747978103578360836784816604827864685122418590133984867361022822980392622737750154003093187466107831585553599877793525779965183888565358239776247786645748011780044154760188761072484016432005695096795820297840536228401164035022327443724114178356110731207377063379113694071473286011303175190567538334262084148614728987991674412029451169750807232646066680337955936289865012673389937568788610972472328410636870663429293021726921111257974064931867230156251652354522285803674856448287161165924135057349672443787535783167358926971469298421495473103703129636781485700304259111658792061755649808768803197375651868419838582365086376521644886461708171262482540006704948551213474909679080024509848124061778308630228096170540357439456291683462285451510422953508322712674381076384081013629977334082244808995458501138292505709433697139735750936461067575990115675345743439600136417909313786688999182030142001963542936721572523089657731825393122407041650659645414533439150867790734504103050660892668651356675840777739038687794703309460667524107397854249180308008482032214856905984000008249282770952979629901524681006712242847241100877000911485956638986028066655806393734590131785398951866846599408418396044607641815252819549764908851604947140269898420577920756971881722648431488062876366226499007247369193701582017461980692097447775453147719212676334924530608352016944830625226432482168619392197311751285596666436216824813768072491903991396839798988114748000004188714937645047694729501135606680265620616345156920488770027970023716363506812792340060670910353735533360096827436536157976263016008561185201592194726789375192395370113289575379051977428342588984008329314557216763187646332353653633973925028512986551826875419670640974787064273378875931331163386511971107356566514423107732434820791435083539069809623973937975073414489007719177169315159805991424371039964414319056058725196994396607362090333824827724096591962917611966222202240193539964750423307722990085139389398191567211372774099634061400675626001078825066410296276552143833945782697048060660512470866460270045720512652466536647388604040772129372802481514420972870131092477288821787173834215205177760063283677155898264605286668333736707062471798681215900629999588848615381449209607934517573542418495502010856288013923724278482153977420910703347159762714772697406772023470046112869595018082000737105877774123824628982878862703564584874443405366442837565894710915679207762889342657038818781911750820247338294220560561444102128461839553221573402335871118847516567873461121581110583609157864130875854564231380138426445042103209724973328886791739840604035759322641784076333993016567572888940514017927238451840987990191198963586941882103112049602067683306486801448812612465993100085199247365315182917337009350966612700063219964204166268171485749439039323262453753768562339117963361382899621758790355947767124798108917324860689432818436020555497758400270070761929043277016102305083918770130952297594844407665625822897027405280538753801031147090445616034683224762676995868063324870813045301906383050358601011006205637016842579472316337930241154240010044250484308744205680859990739206923809352349439846029037426518622177678106614288385990587222506710115651235863845735455949536129774454562410568717678318410604380320869956844058698190727337547503860956569025035881124287748479183862247358665941139612965112379642538623879081379560196988907756444000121982791693050887242743582586697789299181362985918487588793762618595283781918829843633486494875864586697977283799470730695249873399110148863625447883302765049209766129065359139728918115243394960283424991329626100447697192595126226717257607404754961333052240933880088817266485473196259100108916852159843191014802877525676397594895294335227671847301736380407778006408641761974212567908698105269963648044340351329979722366350229474046925233479223106784327165087880220133409869143692310085592487785823616940113185750187533984727220190577608477783360497843369076490366609170951447580909940273674966964847082513943169225680430615418041854609473531668233134536565106352265972861300273283844077026649158667469804207447932534035468414123456231290709848462889195709642427271543167320893377492843098126701275734093054761293854238807211336630223020287991234526742776459102580403001818009676534733668796886082696289010036854970612579323570167962356000997990167772539811433146602525456933965845099929558132875569826062120724729117851611106090760384743658499304559343404106262442124583644861507354720799500737418584225969360414590887464999268429716926461119420327604755592349243258693211516523343299148679933168105660380861150178345422332139270813264343749091632864302904631253522953593098531308101475514112575324920663683026014329012852112597744424338012974207734581666532604128147579394668575797042659125476486672796416233466412174525840416155866971617572421576246269071032318439092431369057029791055578581772703810218357342359818856592947012379814694014927759265217502187691264274999909305846164668296642536084744478246348714642308527531060167237640844341409746617672177513901073885465634150229356525023280953529007412553282651508478112958160631629167195767197234577472644023106861501957480624550962492461283524712371826683735972948825151131937363693535203321091208147210620061529111316622951012161875585845913739657884786464208764230900361185259195857516164816247122145038375435038720263193531083876483394471582961289638222475086388981848321008623416906345985097290485516479305490322655935693833533794320774894449731826043141353586793430646513309814480007652696436840778282033014844394325819288913938886267106166317233538467421490925941944470672787613233732815195867153433132598535350465454188041494890088881935472013138644325051496205258588264414187935886741003856937279593335424392453796574430256360360478376172327662444841820154813231518308313126238187649188697835459642902211189475835702379281756606017948810561135657221587833099523772336936681564435772840297044537494143587827228987764164094176919483517129393462080105956376667357744824276200885063677843556315287336008626844958825003400117457148932846860942089596903891237247253978830852933278350094099063490713381780948374962735511265310278442804191645993265366252715065139526150456111211257406935521494407584878009687355935622771113215711940182914238474969593803573577077951778625463525143355022128658968586541187779462023885524090028225282802589769843100174346696268685595889381017845519400730789498548884757000261120275019374918842343224105166560404177657280658836326386748275698549223269507087069746269880116462717462651051548372462776130208027388805432372790443094499113513730948927256923782598976482820872777124281183211322006477711587414713647914803236799112472678904969155424151473234635084858585365292085478341813330370119046452856330130515806700536837552775411633357707910836150564110652196747323930291627609825532635394055593154963666900718209246522148930035062133687177939275226947316989566309893005666599077737781465342747883513755406016719625840168640210629055535451378561922820798901131199350541417435265316955908178612695595289300162467841905006876270344731799353368753519351195335927193495510239773232454791226319995479428853110755041647248094960576284624133904816466564394515345338060714060534574358030709709843054317417886533356594052927864943082529131882159185885445681410511035973474381428510182581819842962604060888036913527848755810018838720547874532030162110699784092820650441613444482768352531357274601789233106552695638038751238294290149323774606640648735191704675047664564786180637606213802176810021851039116793130718647630335374009738796780276520335872508339213278821243475458234917252727530036906056705400481679885518183515339670334473980090265749185822291807511747226309900869587571304351754386826289570993457632837270741499308642705308169138998047295212365966689307217403257623456655313409226243357532305798931406395785540272824980253865868321577584101231913219051114269388566391825224351813530627397359681376023700785204931393258738442765870341227122479319177458202073333183483678388061377725993335507647803236888098810969804537375765812413864952833343647874537959526761233716318785902210414239969796625987271705509995302762281077952170349863596116519180739191820854678227292729983838210278266509058431224768230316878502612116217039463393449338122521926725406067090535188745131744899113702569774466036920098153355978377087387889756075720527230798484768152712420259726739280139396318493835856491850268198431302394656895634108085342319181835147361909982742667424300088636108259782062340055454544392353671994441155280755595327131805976570450694315285775524943352899862874317088873707664999594124239241326379616436433805192978393370571191015157210249630948125533860817184060471287907897560635374905109501023324056926889705038169494375437524520456594913833369697711334402448949142318625569001261281356918672062031476824467908598547158328025303261287796593642990815699826077274987473510875797185144373768241473637328970578420052319276319865423522534176832024254330891510062561591576342613749702139255385895653758486537339238767839202786835477596526228352883252631847873944124544191680512890031831791021814097661145690356760504389329361500499052662896869379008231990267741459730346104898936814535742949970670881146410812165224507436606596568949553212251948058928471895220100663406548859697114057815633462838876699353193331898319135469651539729525727828004295633978703015506384667996519694386612107047239580932099570723809667130870543718492305806827535168763117010544921208008809731357014542393605833148053372947414189707899045808034187568109508456241984848224071064800218749531747011679470078112558749438213412800834731838241687809934503529659163523917202584416847606527024347896407840380800029791213576695174590642217911724120481554074206548251371256402140685160324515933537191522532831828534701552319053217927850999611357567339757300092884919052027762515485171225036776829661407314943888709885130047790632367299285298208882067249960877068579284654566491853564689412515189015980740807295074056532116866603053812189209888379675695578766591262175776107530097165335376581262085450664324244209079495707870763255460331107580234743422074275447964848048814123909453069216936444319890147946475063624464541958217519095855506152004430930064085298792363346528359865931991388825722265586146555725093599491210852416068143144886507569647239003366405075405426310840553480002456726423930980344758603104342353484212675884396550951803374133847778571624680338791214343718904317145819608312069766645727112741741846432726306429980977542035776054553142193513722183066411498458195292461456739307170532011265825012526814836703310264603990248181613042610115603780846746468984048912683524403268680929914559978577253464330801209493555594775812879123105323874667082846548984880487567161247154844674962647996314098864490982688567349571922816336321080264804679811792816417828768462763056007361718982740280657828433325630030226901534920085350609228403654563681993195967111253024885716281407360966302606958293660012796214415541283563825766867232180344512553992192622866001360458940115865507617989683209115214452125654117224861384721536441563626765339280174065352984204891267088955476498333149124374350955172072376399603384444131349336138889637767432503670654287861036554453227470288445892331375496162123313861706043993426191415375200177672905210037241964779052781794893995265230896493751707320939547248282003811629822274404598226402997406646620010578629197218065718421647766901997185362801905410409837641711517518332779271122386564064155886592946176186223792578420376700496044653636065261584880992059407093562702386044933569717091294632132937173067807249030158876080057103930166461917382959277417772657294600992522923148509114563192406513883984866475821807384345431830016723922921228528268058814071208346210991971218425815340646754592636458839000337322751222599381310174674352829147032118869076223930605478192829199985188935587744502611506960604099607173110703110311392411298766552529255319566682203624811681322069141418130461679026018938447309438953645148866850448644412034016693377427312752999662681342677256878954256958193984947624960025532908075083572436178158439131306390692344398605791617279076692093694474139613753593834313544391495469459615093823779293906872845513893424011395014322432295538555638430944986382846650243836758580498557521413302326330626935459174671459246518053756527270236586643578991750070993099803393182784750763130943698355007267993603433895414936499645281877060690907900753241753061504123968815101370346399741121246168074236148590106458692911799002345350759059052169500174027951443059507917209985924164120885521314800172357070949037146085768710872563871325536805910065794510502417220286558286800590752714252506419160708319507201583385971669717697202156604151186161205773743572545823846271230163128369968560026745476839488116312554022057887565450452788086156965954038811628114359062116352707364257530746752422335283254268572301429749501002550497058908891559136492089071674338687135686525126006043705004361701417466016962440949504760769184953427053521825514705064321926112827598303351030980882855008183856736140316501064484177944777208039457735607175005273175296963114730807909046849916778036210279821500740277265939003202722924627909160982488251005521391076141978834076637282461204769329272932228825238054971234898334155107708154901136372058155080412742020706103343413645456056547366981938180789879335111555050204928317929884856694484294414658782249001319088855819694752864505466487836400687712193129162227184030703521230801842072033297378265996217057560924807648685295407967193720706897140232313031007211872612262862274803837813387114256468692200893679382757407425618855755878498128644673183163700363572129597209693892528662890542262824836001368009664032885609974303158294826575318147069067397197288771299914256372179976683144590467767792886909221388129024772201127183649458692965686934992046111950151132922991341841736641863933084047993134697251018924284884496878589588872501546266903291622623150752808597110975444490446376529476456742439966216680001323956213060181540257160576637490627924938173260804023585521739096673187703400537890782336822117363797054801114559098190695826545538894811707773428924034598540870456353852000319365716044514629615186882443732600095803287595874404457267133675964485958302050561187888133505559673624744312163640370331600265273334589597870880836033649396153384138757570771395286786368627416610818748987030508456793648200171854065898407408784835444490789468113754951279740302768249760847022908072206496346842501406727282491670826014072774670873450834079291417740673087877245815218042800203851220017397467040544728043975230630325050812716781225027336960888385696182663195442610260184576071279986195771063018485444855648342411469566462132269777570881214085072128304631732651384166641141843901019295766604701580465322223949469097903354866800591904970916789921820608993393446559151740678960081476592415484170281996630819136025091296209792365134678444337065164400741699065495852695718889889330440631492352546515724519020965752790626686598069410939592795181530065016967241916554852074017263070320510341368035731638807777034382635574470661114821496869912754585709328985765515326343573463846745592574542231792304971218921036198947417167773749243755782360682825018246326703246705433001704066708749261718313040751486233455861909679676673966421034485845027574699889078084454198926496894909969423449016121303010472238169846223359085875702833766563500782766994761231176007514801984061528351532295496829446290973942722417205501697636822946273038303475791096953127155130128107963518736370749501160342980947658258086771767141232326152972213957431591996919083437710707660600374617579343572024747968029122911724182152529289152779919693065399029454301370532740540796397108214741564729736654007119551879441614493015086906864423657168197640863310104200253169138767520842711587014149199491913525191468797677032465931055061402732904080671999596047508844982552250614474148116596235820406777879248320525394466054292815345497867195901803402531235632819779449398530093459210354822252929181797543421041990608985643998386389966615144755846797588941243910045473384324562991822286272631914554689973310591429365416633444893515722360851027027059581655223730361606513130510932854752780242778717234149750808591414124984278438004964901836987829469391805035159171502722809964184085553399940595267433503532099519701563691848941185016950191956735665796062609924505049120071239145848843467289202435814410348397518247189547827128146688377482628269952614961146760663935345757449884489123398856912405731870695868390624886859989247783626364203662979170219321768611767032226485189977059108197602165064654897295322905346006676718994935142260569840238233080001038475298010332742003648677087166929424323940757291963070228445131211101424234031373268370603498162278354501385006724833413597564097407814739247287383635537533509058554788044588470220618317685254106518874300032847451302210940322450599445878593914177559353955469366366388077344706343129927124926546295824711342164374409864381135647207324168421359457666543190219860897151485646770678964056551577733106902304971836425115186078409311704745505679387487695520133411051522870407202943106675537141841323119858895814333034940053174795926621448782971819274581789323082189377896025996458067423226558318260259772531706344129278074445724712017409682474126564509437373480457370826753078870966704467067531305109361128161427094508165809159581799668215375708214064446395845722225648881178588227399118931267307713731946790953787860228585828518715467897974183337103221520438183561282725939850266038041534931894850491444183844569831112906157956309730209349979780100745248716561685922898025932252274531581167228904900916880881552774575561744518421690182407100765624656997869879296918778104527308001820279435081719541798927253367842855997585190832641542304523428995147457060777977059263195211815579523287436052650320710788609464342196804413278102186060255518948763157587379959063963007258776102164775697921972839591911865505316631812250724587708916676360288763367975794603329502899811910125650253228892659529952507327679262018688944908382343069191048999696739542078168886639996104029374630698137638484345943667674597135210381866029702401174064412935841585187251158077376459162373162388028442959057029732028424280681382463837269190706780109265201395719508576422164212525953591981485295812252256649441887971597120584603985529881373261998347842705181181158055526357592971674317896908006100432356595119713324403460828301177425254023004697668030450865719573049414122324682094632600248705261080998171090547193984355081776064214338428531806477197376361330277133982773652794621805400544155929727239598133569480226847209515368743562510029682354129618151935470220912593581206079363875030539803076664516609580010883916278545307081182928946376460640262756057756428476640785973438072810740815227648286419533848499724622133985690203174707213021830041146521088105079579323164933531580524397681732979600573452394412826717157550095033640446685792923024519630888239628796756336061151075758665133799749769861493289145567585389734678134876743030103490759289640039102507743493783926058425159152363374856201319349665629342958373360954669425674922385246225473573266385816125098398080208657686321846726646324168482822608035756347615436522285724954513334850300393303793821540742019392735395444355502567211174881027549414868424300645726000845951800197225266561513104614402744266161406223307189200260711397572109058983593191413442189274052574956922271007498374256506941650003045098013519659425786426576146918859319798645115183538117549273218834025452722175940337214798784800192417871106402156066215813448608771303363046061877175771723596923291830388775595026415727071168272617537398868590265342223098126243445535929237819667048788101901457409389268114702250577036806384929720826597003679117219295525645107385210920074104310172065903291221222000780804235165740865795732293147530719602692317323229004582180848063028675388360623023613485365101709026444653657118533667873735123921948775071626686615822480640974467840473816826528424502763729829286858274935622588995538036758066863652892803346697003628760579748492703075074060256082049152882625620611936025116113586070163596483216567777066316955944496360669577124083782467732937985253972982158670076199189162432267253049976217285870402589492980981448153284331066163673766503062368924883754940006399390010717213517783247358976414491358179508262436131876350855288818251187870170135139343839156358879497104283839856962245779109111873617744441158120170747340786092406572359183298319668755615351378838269567573622376812956537467295269942303219545045425623818254777536358115991563842690975397568377586658865811469472520650078084133032522637048705050417745267874417835577516541623867253073298402116477596863506976996792992796860124224997587455254688070710580153559790793502879916757813743549151960237655890775127303665065425621318404231429872553328380193231634798308163268239864303810003878846484789287759853740113725032251983565764924948919433821636451296482438943637731526478683489003321615797208411049821088032666850140326541126149396248851825310738024677627869056374375261834814354256840074897123074312190599794015864334063630623632998445466065825797953450663856418941075360918498233216014889999084545770136392336526410009236193253719515591231746122976825166507706995829699758358735054186221553619881063492506867540113237247626038013119441694625832337409548540209576677598476824687256123688887038563770268771915387647958552326514107884539839451829559411849542308422380057140821828909568298154569517387796524660178357032984525309327266111651339274315550314920412982844554638725130612062948945828767555131845293390308811729927445454521698002610074798516327055700346835360829701681167774920721498286926610904430356375229168010831881891359055441064555271483428942285440686275565881857549810860741545681622385812103418912991998105814267418193724396475856078479920639077649134651695601068522390361302960787212088904197567054306350110654066825702083354559687329932498946696657549532778717951798035995450805029947827720789797555773730345566428238365991263365527509714855211154831210935157129605491464405179356749271751430872060115654954078179030674418940473075328207928872013793729784174300957226742852787995497040604665411012566209244621642454313981283235769897533989821221338167083552187373294572941473313184461657428043412457961308107331011589930773023451762663842462072935283426240442991548005286418907496158425372056479411473593298637241261819958410718730033135641386746733336259943570888878320751643634288830383733851900441345605862118278547223657929875231238194113021639038263001634920503047361661106262540085901566883647514338486114078577224166166272854913418355748700889428959927758210767484198839286329036778619450317346804610538932160774856431165891176740873855776321715727312260235089357445102156695268881111703698330942285280100058979784107514236997314694738537740893963705940192739677533522715152057835704940111188587522746678663043422945688492931260273313630632209234197921783868648852392163626395209910268004788140226046964882536939043729594730750068948716791785840871018522696311761814834039811658492017345824180611284928642247361576865856279123129054502738421602224275298718072734723401715002979650546046618342314846940421327366598664351616829930210429950359856480773874803306988252179131174272393968451993450014225244407711341253001635437226050887877012206769127000291212522973920523100609735491227896970122170136519659131827371382154373393709864139397732531604176487004944074646605331203883805506859745803229515329460205430098262622368883283023163097111736858207355493615687955345394936165184505857122542946318349220068767801096564231873663672248826067708536016326170147436800398004569712068189807829251745622303665171315899408153305422998579296716252206926912072794466123041378666610706294954744949874067891478508590901589980990272884407045580688616451185330686141577323658558732750561777746694819446354828702458144572333753676445187304977175573607085437876137362365925863646625241020230016868044167303234799937217097118009511601546356341910619983480117116756318984291909684171783228691886233306864198130555461663599893572892028412067693875511983034780440753915840675499200292218312786484832395557954794211594076790015248183567977429994542254629495786335502365274660579263503355425801922328055014905088180657726444587941477130273356630403353939844016133927133201921504589658236695963690390745134800853194753857929876188003274263459594369038410353480830123659668105925594337911730869199622331822646766965803278631289878130137163749213615340663295332754826982261014498233963510655373438549538712091095088858863654187027966059492920043903204803981021794714201022009529001241370242384873530780456831557875896914263202466175583220793466843172633941855186212467105392355498041230092553000001731448675759244445885641966038859914254414709620070572458101856661136681414273721839046086261129309199323814459567023501345746420895437997156877359488632411757039135352359111120240794286747980216343243920907366708464429447900802108898373969396197778230998253181878354160384279169723414568916778906438046477780375740378986298329687780278758925305820861040989766643513752481586969717510937324367666035503218384237057961317631441577543170572788791553898158375580947345398010937220564638689632932584848291155796216897830847852828422053504860910572084972435696941106210318275185968583921700726643124990607605253913324283056494734588294604017560548301872283455476931378317651668410201135644191435503336696355055904022717895877744957143408690664214248997098922888402610739138143500437601446594230623891484503079058872989882335667134503897438630491410550610142235260635225314364266480866682930609434242534869772581809320817430834363969066692954176087671842026519118413353454305492920913784706402319043131579451359860327360449163900863462352022603421831336698977031166615907109801803557586189289052962676750228189645043963470401332391626277539926535200575247975878222507730100359728108270561733420976982925560883903658657252347598124222279958836097864532357692926637162412553349738722673342998434243220125527413985691806351406052357476055768032586237084190845587367743194970706157260198305892120146782624556155799314233920139079624136975945857726422240150279862951170638611075252696748080205554583579838195713167739956224372357052722782801055738301353482658331825513340460972271468188160729674387916400019286807620511882990869633979027452749659923161579250766259804905511713070725581869272311231104489042590504206504303758189322085098827037492010752064791963132212938269554775145859670592028399804984268034677936482392671851719791165351701456515621658267097193729238416625133974884930814986402753405805602596304308045642409910580632748312814727301893169264567106262836842739463033282169558913993190039688770489637119413005487633333747688829510720142351130274811100239877149567726591187918129338691930167183160899895780778893897568908685361139772929107195642574768705915505316730120855699096475721168729685911559452556263622816779489402352939242499759261716839199899014757897698869767783436756578031089659711664947835667301638978245077956444452090694425428766835946918058928077713447469311658970205674442082587786749696636717556127543469215813232319086155829456761321749097442824833632968926534243125320478645178510583031473839089579306891725665684252915726756354632187711678069230476063956618252432940408657809596083878805256120716512752720293391010195459046601021293102523566082890337914162641795320478033177759688739485739581137992595721535364399566467633934226109767903097471340395752993188507039307810628309817371003882303356353324691102157017940047196498988395254456099932665450975550007102601658516903860617968990193709006229227085027298235732663595571906044262214417457303461844497444463461071083569016911258865346581914280062009152100553282981406809626056577630786015508347821662761404446426180107573551790782085896696966039764938805151229066035503452691499591092672912191614216931068223940604901455648590505924644168731239539736002753478598628451803312881303995707558214160148375428035118576973203039814138908152354279984294302787363264093533053356202286449887496980742271777122355612713468548109662919792883824110570318650240414722634476821337665820290082971388666917170676207929615703155236806182674162456260831076605560140268522018699589538109497242499834140821480546056035007723221548424140532441296021145696750954619425066330721079382031733036639909519362623000786965488174307995971297653468705809228218132904076277562622009200369156228771598464231026589921932589167767879591445768924531481568246636810651635166298812819704433914738565366177336684246770683130796308102874406882723077489855708817743699866330510888678608844331263702730983091719431069580093545634123451647461106800527722756029776453538962031637639927427279057369503944074335337883292723644904562558655313330083933519630442925275234148636040160722862711656805605487337507857893562730567628817305770240520439378947880509540986587955324317607579067880028296129875925835072370447472807056624837975006484531350002540072774292068437057574804584643177777404450090394238896815873953220184500670581903884093193199177789655117468099975195728944147920333885445111965711070271071435710748318721223502762810151571225424266018657224021760774691162420031465497358719758175182475157338369375221689137311026476660266471267695901754649043448600422221009091439144793140458228263467348357545831765913369887715120080621076208929736401914412836340041823807734806002984559897924792938491914952198832569909725643247415179777303864531295870062316154300833618465394349480274284548188209058359277297759265396871024121086502945034371885584180196781874059405810791573395825719197156036268865182210229064950090946831213558044572588660077431293204586411180479806202810891911076735998796512701525235966889557000672719765956676735972060907137477402658331101298856316332083783911573276457886486453849191737805701110370539587291238897875356024269136245260334740557388087780738535722023457544821069703091640516119215225559993550630203716749587019886571776804194046387788249944768174562371803438710741283770608926449611775356653361693319607462685301149314306634748505641770998487919954649189244330304869159146616632285160532086400047064791051300369122018116535718788754213895131694810726839114087639254567160831698128996751875475342511174861658275317534736100500163996712711471516491052737157843142014627197940724642455943074560163901036773483194016520844642466456879983548656056692277592132121259344336647656603756615029999029917744609468174737274991753432776841377861405273360320896902567934024404915630525872190034210546698203839190569472225166756142264596578395769648928224957230657593408947577232334746215322220331444674128237079684451992126125308676683674609532487251505598560139357805510163405677250732501374839676580806334080181410803724131688968173014177871944234394506946186629543815518666870529078930272498083650416629391482783560243516619328780734054143815795525738251460307266867724854964065923166883835663850292475951755107826590392754279360049219980335253113305243998298209513531794131848500731811931320326395418479356437210799803609881288517180126007535462210456353848715795044926673571363706238649568515314486028265954145393414607122225230386522736030767242589220317046380145502545102167019776190889574007701169788852141358815456543809673385095836110680662787326941650386867218227977873723126844581529222401396964967257313414545974754852455485890662444718876676439737651933142583624567636346263329125713189125582318343872858543582614791160303475012003324548868839123553579795900494482885288424518277928612864735033393454512476406725510046081705834900191846390611015169787410339144697642925708928234016331217198611723773163524413610273672262728984239090885000132509506701098999686419869371046702202393933181754769486500159922423102770571572467627405333979329376996409108716082152451609885169316558066097770286844849907621755363363451996076079135553472691436430476857817517053427398842115143042265469318933404798189547995271027274515827068709381660826619144026464045857654800093591628151563098731622941872925643221321709663341571947777666117720513285023535674491425107075131669002287548300367243650237739278436024515322499186512319017678075417452874674583467458990139365878795702188308202365007209985561769647125694555909968219699036218943871493262786213256330812504518678997955501651616459502977347620784585338969105776201096438280813740538887092164406479655419052441666313443633034119383215977898237764061270876099107318586146572336241356615426523902668476048326564030282837841015188190881467182322211914347012471869835567326009498775969848822219976363597806918510466141378374115143103547170776037025566500649153063229920426680464548977723006502421675852573815643806818778139060943879428655985361674971615754943245284631883850598021741310274688930655054704834796255257573687347123662945803508854412877918103591970361045507457696321116974235637127658909899101864001725355049475102666710113810845614244203341231106213645381562149771406670367549254559802372697461557607416042659921958933292485626770999185584311241467222838360891382122910330377927519014109885213132620013865059827709154747439773825819704272731213544770591115673319600419614809724958439843673736057319380826425520650405121570510330127721440976171055843582398602999095462593986089346573733681197540757201328913296369514533479881235285241226306570866047680726754444009304864827526371939716233783810413235429055762097384733004607569487683067189078370680706473745792950862528988077895578159029176950215628712392582612126168857244672622991495351896083825198595513378557609697382238127167907792841862907075203984801940550169035615635930790309910962842765012396036824923023111024970907794616641240253466584525841356193455849647926600438929010743766437910541259821939562770787718471982157953452903267506905535204932587157716092630804684264042935005294118355255151122006872698386535681494291721887560257696201294489089408096737002873408383686230500187381194976596981674360024147103664367846341272126752559887527741282481532906288911269056054088868378857487023006744039031519292172394637788213428650480736067842373576286446034790058879678893219804317242809801686976032058904155703748281745291632575544688984322990721314407651627231746507397624382107943187871567417864204444511003937291569923024988910699552483743521484070932257020391500821895365680593610911673569753695478100967623602586187138539192884017917541821771031784010765631191566803182785587975612573632970422895629788361887838256129558781579797168736299608691400762188009907935088543047962157274894404052193363386113576257763154989618726018486186991480634826021217543946317199704194999084715482801682731238298319509741353107651354167040260026318744694066946021577923589104638397479112820411526346171094599860759123855031018540523981246753461270506109208395091951504960633758143984533850692342602531102866392449362156359403333106798133532963740457181530981172108429196800282337409638746577997546366657464385435935769714245584975942060363824191628155731757774326069621503552660986401505006563052354451408162446083564486678448046804067666328611684957135460851117721624310905491260742243253397762935122008773106695461977179271241047825023544593872923586912476401495469113832893801107811316275495364047748662781209783613103811053118728971069067103452262489689554489572469805763995458303862125533933556531813595715890065495419913756469288230863880700529492695712323291915222690646495536917832919219509529000089315341521758343866823666237658907725408131867122869526496575026364631614030292948220985493381115041853068824096510144168685484375222712416107467894958469016318526955459891406300261159788183341128990560924458977477315614543605699416898178289630447043246316397625587182698487856639545612954986148065981505249933800590099006117694697320830856576596944961239865929332505818808873604300185374059826989644925944453124451176289819586482812361699631949996782144861792444597228006013085760124396285682777032465524443680190743625559076179886402537120392172999645814645847382174910128414264291281760486971689684810972545110728771037102886564369861633286964798567870551569092292946560994135126690505098519565267834600385597287566920504654036926833487295899454971295975062815676918398840599790139981028946816830653602904742649013495530238665870255959462270143442604676452083119687707189721452742094410802012756798452877377640265180550441071887011107915976287300003634523506269893773741589102782083234504698466204169540324435565551128791264955044593976458057805048146730182071164483730222259707666790001531353045366684518877420636374569563464970625246637710099621597920466041199615941206071378309158809800312898713598330412303802067166333364294985958923226277094589463859039514473248964249030718591876505430096667325526118397689166316867055311622013724413276671854883092276817528637815981111244218669879442470791616412491941700864680511900210368259668183763639016225536771553988022413820742016059492131977428603009195268294141064088030772596523531694182629252864145593134063104312611186723355350997603872374987548093730389676278497801395325162879486968372273996012876503624559632642500234751989300374647824606155789297715294609641016628370414215221097930900747840567333942708992121900429638361317258463822985521771139163559368512070942211287021842794152540871504273117219774174962634170651375288924048001436675088431862155575624426718446575152885328895075278603405402992163483022694693354216824765570610373543343486330355986120113643044170591716212150109896078670853418047155175721016096465190896466814327469200789726422881549620115923129535005447782875567281277597536061269521182451654522276559146902156834635518967174455404087612505956822581170158390861545782375120840570909369882901162209058125599249672220442787128199744091125103859088525555293164561104568943923522065618958195566223596141675621947056977017846979281522550576497876992217351943573249422425634174074911776192969226311917098770580109829324902823578446728427933828614628818823787436460291758570676108635037702112501904492439438017949030068336319363346984114351089432643880684077930643859474368847534845556718593877948908786862757636043537112944613886785678082489474096373461588649782915230911387168044151211556727639739569536798800326544961389216130196685615106877133630562786616159093267568143182426042889256144667095126952447651798420258052806058459011205197041059855655653467869567427355031537387257193427405406467643869396080705097084334744632565869287734994775233002631242102157676791434094931986316922543842999708825951556468128750574878633574760622408887162642403689693231193082372698844958616828566385848717780596032214476988666286209604717799554918053688186724763711217605099387426630322973661371177286651424645156304435625463366316767252686616227956670504562397718710923095032862509881492485073702904776634644173095295688370262073173243836584394009394897923755806977840104223401837011390197277892939408748035938207819529626801302146072429855834062282999200701028895451503406618059785480184182142928115946668811221266183444734679077087572860184405733713491300411299337780375657052464408431163422964777886078867149523709324235751318651215941384274941536019827638744287020152338454589697722668688492897764181393885533360492863979021994783015722904465398893297693454273689027619059277791956614229677532139401302875456050147902980155276973402980621709845850144042317142215385308702348058875924003938646684076679996242094893177225388456446833022045187272697983264265857919927556250844573806373025898920274394781958329769737171677224554545612594223417220051954881855180736995742299429227107596765308061438999526296710846082126152386475170210506589887146628270934665749578789713917932811367160290589843201217842496703770598067903916925268252976829229028355455555923557723174102801967356997837278416226790784599769378311904898475398423796191931847241923112669932182996177113929130570039424077383184270206614034062117165592942901031741040355575402871077933066253759454188760004535641401717233300273831252953195446372757257235148303089372470675354251869465950232246509627476225582339605273347160479665870782746713286389325132243227541276488371488451378872427135528647031773874460742649106671105495483694573474017165990875468436033406202468461176292610921168376466009483027938689289243870095888789723868433831927181327565238587933980275557365593180014694293208494901061011132999790418012201321775113514396742592394843101504380437911631930145421127406674707960727860903014709993949878918775934596287797645537031106547725435351561494696459741767177251786062786622427678744678738682803107769434671475857031401097924276085137008974420252710670088506941510345927977321891147877776041314719301093073798614963099367431812902401006919786619872651395551360213655253857111155508349411639962725107756470833705227308758302604680643785282982795845840729613398081071216185083040733415119316692753657706473160366990628578609939867300614332609376147372056126375260644840689720380871935105604373187812752270382229958370843570650818000994081407960666438315848635825285092853915497974988459343683762394994277241637100300287069603380367661834051020672614269610962271435826983266494632464853176125196234932435286841990725470497855862825537736300572422035026402779776085578848003835126984232259269604643095171234191072862207690334525317155260270657792665013925088972777687958642244902103545028233412169067391769291857067329555184010463101803770494797948910421030192199412413033296506374861434749307867873512095770995388691380581135271657490050634118677553862853548786666082604872123116639770146408849508032353850406965601395223323060654659563390009697872723914117761429207395903970658255741189021553651196391041687012397500108570237618917448906222553864273031270185964466395874208718274449050885328896289249606390752755951598670581508577265830911894376250464637444528182786574697353539142925057287549971573710734080436621920441960875343652748862984589595449022004172166656723035587216869292971231729079372166973455082159667687387006449856189392544499931655135361895314594518054917583505816774294430574597912119908773489312439423697922444197347009204874574620721558854926066559730227638131066150529085695241495946227240715202503773052728840763462861062266661437319591577342493565018193197062042267651359729378195009285668819658676566964869081563370702283685663370706223207823926873326563037853853934426148776501019352370437832979946369950389363247669027706247719635504909009145724231708864175779741336336529083337010733597321706098851914058208455692476167579083336205468257373947774830569666073798440872506750587590288312887874054331553083193584149999691193332044120382611690987346945656931380123103638016949470663177959603372382283886061727983336537221785536320602426478542938156476526431213592627051005255188566870021775561546421659025762965298736358358430051728306697606446908145352985493166641629375693305478258217049424880337992145601538557542708328158315253987806002535560150303641406715864437699477047327964391076560336158804302869339285723458835375972815083706477109338525528878474850502267242212006197139961556703701606168603755719495659291136414000704855255461110633259799927814085741295169043845035848738465357442320496906588318529135455799108755392756998686379009792996814145668532517968414877951592098000933201658399964460846808140874498316452823230636823750242692350925525564675468592555923028270755383221369069589025862354942537024377587693003400053981422356724666883094565592365178773875000219604319541450753917115366124613846915910915637864537959632506207302436991715521237669305280352039503477434966094245836027621001198964759531480126239201055402348152493881625975415844899144849348594354382058709443221733559761965319354095370883562253849924022741477983567555809113800847808812970971373665260416488982885071216414878149854419313825348007839969460043367073245829615059874426926824715564916239959719005333333595447949726316025628975734569467323063176802823923034564913362555522010043512992036164083457980705572950384582796671849642240312931212075064630859410814632412574669562056212670085037793449199339617634290711665176782908147364928068682921895710673097547413851476588981956960862355496287451585388520791143645605038346662195926340126081114206669946523102336095228402145280021267264006248973355137872112301263042375626330618766192178741031387356170638109913654128273140724187721952960493109677501416757276683643531835352060873375276606118062593133595750014435636692963825887177402055646185118376760608729953945920859093257481236833578089399834715801092322306376507195134327791655302189206946530405082842519690439448771262937091303345109572079010388973400096122652400808324782821755440635699303245052415033776376850553955773655200539998968148398491543927719561457431899009226253304426875612357991158372777019758197855657822144592096221257524468374507101162671325210302910083211718629263131524906312392065916476030981897715984372605350678973511220370971206102175657855773701847516474071458449143697577070843101245798265819453068373447302637689376511595990654669587411925039965088627789088524173443719425058333164254197591571335119340667091731761124606860479322991886560440883099296587644563860740473369635973953837332351564416794706690297835922691630949457318853273446617188399402419142932019309909795318349270522506427145781351474744232700127346419279658819014629794741560769367208821157113875996208668374881699171186504252825840852751341737810381079810059278716593255387898694987934581184085248582295530981188259594468878234591208286683386737103070569916240561309320503197417052329410582042591517034171662324190633477988057680519095705570168098387455684454719527681110838378313323235584162225875126378917535535834266196874094216004148472695896217083138246837192336978231550358361405893612114805608896220759341173909920163750656120380499810725382301303309292331863408872617287000728632773236139126079349558492347798740440150370136103528077509879965826285306685297585533004137101003005929394470519420998342065613320079617616084877211430467933689037272526608284772308570286847152019076394001694777890366804457816172984034467893922363393244479283766489318166908788679711879785365221594832456002783963735971622781807511108482598470743865582961230996462723668985112252923720789589906389682439980564583395936634182622323203530409922818196122219025341500537670241910588144802243601312042265890235751623809133963545840177018102429899889824284041588195035297012127044138422803304375310829415787202499549464052646193550725889670625043011822903615501684010652148909366337322045165159899427201534176708684822593035992332246398663543782562851322930458543985842443837060608257980769297810957527044430733944422678098052388136692840049160901775864672461022716706166568805008744322612506924724878277736476203063171178731926331714650582771986334987514268452447167704601949958008670589111118077212905613116918865985471302063239176158747076641245611201920727540592294552763095471139214435698857802194828734917022152345250214464277564943335025858641766890619723798123380186507368504583365365427654946416242976321099478603535228938624334521552168876679786869825114689606716314627168598987110934537510233392793508274666768371438052781723630514147080928017151763874569753338208709902095018927817497111516220641667050020228975145781835294705976318823100762484102667707803693787028499247921312404483121206726814749105885312820542192043148005238523761669269035739357075409759718464936372653833459247109480039684851767381989385474932537367249193165015505956013047770864874742426323302111267476032475239822958828003243393070049897641478018683118192005722357961370105462289216025396266304083879497431905854131998543292508269112682489891535453879576460658494404767847566111281667229963153711141871748649732819396325472904102444088158565509111394671299623684376290947069692413941984156910492591163863765162366452950338820550007914802048546443910505604686688460467078974430426744332956636079104606940829604830280748156375099686511936580130768365749592862008758001188404395719617116822544753646712648233215200966168359478610557151487186961063164066071672361841471976331276444146684216809374993463229628735900595665236603543603864328437053783567732299424917762544145271448667558627668784148536334045070211393228614245252580896338012073953653253617602797198931883961301767982311248188583167926385489101104511819103612710103109029997194318465373762749127141399194520488312829545596575319427676532178151724435185955402942022204595182226851016117585641139289999364345578722716346005913057954872815563529655018755440001277488353855142477127533773849895626601998604062264463814618200975069329887240114198834609003793160448696938188470376216530683645859740452662826029024653721890605045984357007664618896888089819391629635960174541906748843978761670804016391219786394709414160052560212464739794607201979786131923030514246899279441469977237933661479120044134110548707376510442649575191293341983915696574580065556403755494315930696204903043268324433243088063099725784904527723114385096005063137547391122865951278805856871151786351959853844408157749091312016450355527225979197995389458658763043867368242841282148547186481527409132495922812574126188765661312447626266836440034902122759002336011024088124441094448068628301448327148631927245459715408131208034391291239895813449848085598729895943459643555413534556861822251175887966324298596171664895116444649116228087038241556930024019016139341932784759715136893712832877503329807021931313588789719670596152140104747616640476228296300256838636428506912083383281837994442885656949471022380304272416516436917985457786589288480949068933897968067848770662778140666621927031742387375674975187709309239235832010223504417486613759146639400922385591294318181619560390308152231509957377504034367886206742639454797325437750134873137660052384404189702308244989140272338105461413072840392414010801427299643199399764522479636304149076040102439557357860330387877061985063384810242799545890080738972977561254176262674149439943450070716931566149588748537200098985327422940031852778226155335154425747508625107870724569307232930384180553019643733617721336456550602878824449314374137948464480161864190181641928807651362515750060991914133500924167184234320064610518303566148778392022524254479105357122636248165706843383604043965775407548504088520512476009641599548425316422048280160586945568300927843103225489026618833466596376918738525150599829380163212837403545493365158511488217478112137566679329337647640016459764271633510073746402007720868576254087879664480128894760619492401520270829861966494392009677300393129787513708295420765894464385011943731786891044699737287848037584609112256592852297577632987867132936709608534255767297047064193208974449598789562197413605100590941087277881278236308094825512211178490574277127834268655676895821385369513223634489799932048234895107781623699638075494945035780857775307572336779639474106270729350669272123872618650174688489163285620755078471647226216642819134431074804710585005886265214075291874347862629937168135767215969567517469003998765003959545189073883861835130565767543689073124769361767852640729008917370562234296547308541868335332989230576209923544317589827734691879293415329122742415925286687139761776498450406895333650048243864599804674073366212022170047629751951145417903521034003919953563570361852801987301320203784144413151509529034745748791428599551007837297098132679509119983063053077124864076493625850618166948018574351677673994048525373181922392091855708162871272682555801870712989296075166006933777839714607698094126916650085757196986759627476749297444381890964512824005735434529489380473165255521156867818435262807299567301708647075303796976126975285217083005258184653829593629317022255666456096837025335738806821680446420339067153970007648952571613986383981245577406090414896098044382487228577156432125762882540152671733099318335124556389360405555623709946591648356892400283168565639866200316029021089726181165206740083435659062696218682995619283180210933462929385948252762874880543800988070576039127766980184863882773169739082026920922963909029033813409469567042973393744669763533841447627903043289529819245230184130169742861210031526794831045878739599203705097149602159927461304063265865561528621721896266228443991008596620808125651514664316284642537562342563747795264405191410989372529220548597231924454572512986356130620173594078864228435667661735996203778346694433838041854480994126648167682922155035896451713374308621819012719287592205040413190772921019737390547643753386166528624412208061847350100865632816008635666727652736186371365192276147810088764442580775080938871677385533619856460298192819714109046438792005968758817333485583702496211855541528891585017236182504627181688819876424487006301216330007904851747717222407115467593434475859998705762520823407454353740987381106565804103971276117318086085564658773294985097056066006284689913990877625570260791222032982157739858117314728152655029937443888931673703843314834717049940235009639359667491517455536129730769601904730093082502812594944793298419621065806196655266528997658365770847098720387036006663070260980271022587196880113678537070512570457312854001332813648259812010874734026421833780080881424245208309251507494474390897650841953213521496817334847124960381396638566828825692740836234128893527646570980224570877896169411735387960955765199866611311295122437058610205963421715023665654776245219116908402873696169190044098337362540052874140467267187500441535409150833867253995498214443652531146795883286718952700707461761562813035888642398469820775580939901306067832061439480424305543184436590312094255379913283329541521448099787519705300592669979313749374804537559875099736897177363714735637985971858688152054488675473018543617540300187176170065012835256168289377323830610906643399555197690982356922927049161502687119089819934209364531029684222777489174528984768407967899859290186137990415849073411658184759960252773165756245045107540883806667897712167590088759812834257456327934884650608203732380568045448789658053175295703135951936314760595648352415951093633289368887307943150064378396841893876884045251812797409501000985510925942389887589148597804951003457223667142960781211165839379619216427261281900059046338674174413201442060216932765981538149744584597430537928160849464532129300126918045007569471406157015979686497075221632490228592708398541705941560296920965073585706354624338501869526435116115631657005329586240084321654671067111158547320579632537352602178903668950752179019381609997404912178100770731363291868388388876956881732888473099300986662280889900589690619718977014735726085629703385221498089425676074406767989903261528615987543973609343988431658676162875990843781508131391108822032132240208745040318164234377717558120485751883108041574352020966779652765855789418807941319487407668857866634604925442855698545017213648823492011891872926095532767694899123180714653771923608456026360656279224925665594270616229653537228680262591800787474866069617381758804884085447482918998068094431373448890321624917106378037457539899691950540634066706989564138430534705816283119011250143118526194713190561442267467123181920317994440074904342999162809688702176124273795063664901997001371983053399785071720240232295430217657745671093369343013753453079436239790137725554681888967115038812853913276891057495084181117935938218229383663535703733878725059110390472390553432738204688345348000279809273238655352752502980061741797238388616307245199214410100457168790267913081729457014907751007576309899686378987656019092062286070265021659271795547151233937467271142758016151186220348408687639247344851267805596932564942830141888268061582336808447398307320466886367019433771851715408073770552248110971165886885006004529225908964924584263221133004633643247403043434224501705774538600589348848939965406891334580718255030419626188119678750672312169324071816116350598160854198385209903018124870324916742991532862574116965806077443828044560861957560032264402854718787674242397374200171243254595909757143823343578999247767282724579009471144577272976989876300561266477390480999328916713323764641621695980696014930181999193613989648235715486293160572685495401826858791531763502380780225742587879395078738312036294736419837376279826230387180670334058120958297457214997886631849243276990555407717530020900035022355577202802000933398340717794017801860152482573963327867435846247288546600081530928994097218273913419529067252712940315708320226206062297941555821560091569046998004742952396522681009996930678928919106204559984115990805295363927523006407760247285812292104594770839388822874899152681070604370033716677525974652721490777581263342657932618230619861222060268508877082266415755586621263281017736439015555937588977518637750825501849393796679610585795173142634569576725353510262515412229857383879256358569952997548975232037347136259454969890450392033720821139696345618389520138009522852663141070061931231404699686117136362204039316373785349962757428745241660661256144732288695729224980201895547138534233449331471304345681765077401640467524143309927715529375274760505439581571675604084252568973273591193666910098779992990097049440429810335618238217746523252140979988993922867585124303913301412503537121075362150172322712336433820713683017903153737443935102397866139039146610927214598319656732672306412915578232745043661124924369155720519409224508097279331237268559979960430840810486225068639530856312870492762525432084525787314259708049318724511699425222948041209550089419729137964256904475830469529579564121990629394945412636494931148330929313438482521810540909679832461441488577565417948199153740831260318583578907150861825495288188980918809841947140503800277333723734024611997508807295306428525205261505440473950818526958455090653661159107144196435273469718195468076574136576204976846815744963578882240111358596560834319236576756134034298720967439255946832808237908106078697640244796810388636799414424024214643526525887828988634466888516043888171118959850243557965968964759917531566212169557932960101931647139053136293958617010195025366690486400295136513623047847231552944679488740601457489260058367228388569471313028433538278506326649475409395858088438270545242848342877931376880587339647597152086901146175867768502681154542800993646138207569238282969616716926105939769480303795414359832443256421537439868591463292945624081830797182627801635294773216526810557016143758429212510680213397502476788563452769284832544546530688987608377803891912650597283283513204764332086342407818541298777186485811256912632361841016989593763457480018441700627200841621224771133983258104130910350131408138649144993211926049824355982892345576861356356985931672531756316659889032053009726953077250860667807986578953430549584672059424184676636792740839237316153909702310230838801080602043466641029620413149857328022065819297678958163158440765881481095381295055422624928150166012997780150158634440857335555038553523235993157536998082584394885370933634716483669689365354976744426474963470143578677421966892855685334476125834192421271902736900335472665561435337191396634560964573710601206633588552064061927557397369048839486815133113994426624218025705506439224105418663757978866970766935243106683611703759639025344871769757303341765163719649696408094080670965847645752431590327456161060005353215953418742098574728031505617483323944882788505235193799572224062052645548940089965336360348257553602300125386295098650245844271976158979133875406993148334465611525254908580398956854364636973649953991473728045295132798881551109622424784515967722829695576230244009077659375691289400334201902061919615624030485106161860601098542378180478796322748024093154048297363114523821622152526431702043999919543587275682143719521825725613399755937831888629137340206653039487913033284804570633672519054001021068283898660852612595247959136912385843190841486314006951049203728864533675908436362656896043800899869194927796307789457842277470802624644284628666085117543321387867921354703382864360466568958008854198502910247599989565009106473826828696669098743128159128397678948125856641414901823524157970605756043705608996558142774949610735654541258595223538347613247922496349245716137551635569656118275593101090508694351804080062943653184674603774326775331565188438564499811534667530315931985046834272296089189622517063852177553591075879837234759678235668459106485111531933081080290872588638798996715369664852092773446579637735807574809456905570793779679660579299863304506627368885309274771331850213510325624202730866062301749634953175123974072428476026278839565657840013707329672844132441103756406546823595668554127752685864371637738740751603587815275206911047280060828661669787048499440844045097351630539151359716353905035321336966366899527914844120077049134617931445591438481835847693222058672938109761730478344417659534389096570403580117965512082459894687244657357666838370081860047571261913200703910812875620989508987901658641416348717484218949704546298224376666701605531151277959107746270674630380790115179291568734292002406021164247256684237206577145928934678774361709627132880924457191714347042863639971290956545248772225715595802526247905481978460566916435405115302132606834880654096368626979292910598452015473796870061940189027214972751414668302626829647065549657279550305952592083193702384166010341750973341161770213420499506830818174014259828861927971613898009421529986923685966880507925352822136997162614305531429144842796170985402489969130497215004922003496425270062634337793887638286737622597345127408215210523688530255329393439181019082827488793979947705509983238040942151202070942155863867091013735376523808045967285809333018400560177075289485558685045917417220960314416584434677321977485610225152371134252497718252480728220949690283798549740329085897117084501929316831221933767351437924024798976072873035833327320519097828928296133040615089622349089507918784495074164783875130425406844592911128083356407756536015938738364612313019740491841839883788376305827395282913209312140256209497752104634943862591318995887760051412522697842554749632767940543759778291911231155293145325932889023323935477846707066331964291114678689513227382534895320455963476624466372409298278640336785085690373600241585538637079553906791588214495434324481282971602478152889428993940373702398554927404102888340633045267094190463609038226613181330894829099508122961696071025119469691736116038287646867649527996914565582998399956280570961255059617416325838763064158568309280674040766837938180081588299110064992660642165958385691540982975331291267345575188036197504704504883397221141495194137554669332014363741579430714085883827967553570739971694247183623266055724323321311469891355230848408485084473432180598167067283574973247043686676855872342412029173234249592912780271938956550887360363533041176321614054794975726591578313680468102172421457409722160920946721012526786069299971109915963836822047592201386890559000709435209085045264471230137069083891652576586504044832349612812962809908917982627865157100704958618531291215967530045020020291059779071916000205276511902648581831744256926485084779337988838895224180088445675364048345821095163333087709666923132500921290293256068616092904178279041681005637531440595155297103511314636003832141685748393814338443051113126213969021114154322822445887944604189421919064322811298598455159988235878096531697127117288137152380986953892390112182285276892432218277606835271201587884778056072033584199414040844482451517979093289655287321802548282555357430672437576801609848225560589254023892546334793440877973900112257594247571330424506967056319685753810407614539316874699201609638899818272808292154357501673068174653321400631673364108432489297375771550246687341674239068320345378864959939859920330766082686430083676765824800534306726366930990808924936172498609444156652140227810386009007100273159749300493706735328284668192375737071432481604068496180044472181277944469551177851940136900022393798358767030471125941315711002547572316528859901518627784702151003624336103502887988032141270904832905080284638042774812617562391625270137401315808337052152076982563677443369770169096230895195627498599928490865593624873163136353639720010258672731743338547917533414661756117916207320249484262904011500971465500040196403429786677198714574591196419667836932687025886919857233556953636535031363181463109532833805535479383949611811363682708764102963453714600131177852290704128575879408589333335602033945683227937089057841796799287411219970071862012092675363654203907506910898841671717939151316630655905653769620529977816763129225863975850897798965316174830597783334663691562457168969774885248680993083482166302150567133322861955223254189351564187466402008686584820939959126948002879330317639266846226906803431232073365350936176638248547304944275019034824347266177890787494385340057359576305203892651339451512613626457725045986368455250338166168228933735064236932665809987403506328917986022363413852915425412195441968687965329081468259355045296197437406210749344311625674747922797735354369173233521914759184790842061633860049188026458867027684752451710295806210773768916531262843598836609436646515997527640675697291853006604167648539669401772144701501029823579186433559686963941629032269976585082636543251061159064769763614032800601207916876395551627165664826550611352955811006214591417284586066545063415738915299891606756524918957589515144525802666965997676575671147976524363100184504937615839842062649575103508850992596334186858997223874320577560097205661951049954695107136364562730120729119890078995779851804058019643992043159393655086593943412289475035001393383588170204958863472946589052291298419354448036666121858342429977783954327376954634009671299209332106173229404305812108306911605806539706871681448686990682297581665112600026220121082212139710357008954334730195494972019899359699613536363079912759176773837389906079022871835032655792732550689722794090559012319002739875113934954949296491211505969744647026322550210157763209975942367200046853862717751708081702933733817303855870575659910356536449700092512652290612344485030611886616202129371296887559553113930444713204286793295176882992290844229681570269872998935724034281692740952820710518200230866419584826980524522781056885248684466362830683299273216774858548665813598480266582793626903112561360134951679187156658533696825020243570382765744189338011826795217823624142033845102788124911683130180215162645161124479516133102952253227200515785519136131046349692828111013243905674078334232375582233629100790669600123882273730731755616870150513179499433424717061081497022993965677431122192292894009183565430272849436324224927617558304296599260570195774484932774115279544908297940429835814740829727730902851817354048164686331452544436385954085592049759063003322696089117353232129146049718488670474988851160135932962805908009840100527723517271808050463465186813878100796360959511723570608162679916327665025475958521559928744250307682356853726527862087820974587082573140812122658365219246454996977293678307071464433533191695493061184988657224413783763299108101269009617007462210263766126051543611124057707179331780503877231625544047786806072735046427967538383330491352035499131203297812051907696606627279265201190595935935623121933174542693378184226851233749149947349947889251949542562822227243446239331125690142284795205855182104136410450772094056966397364169483628433513003306147168550076537374291340902647404708548147319337534793041084103041859755708955304312154464722387708713420399899686452112849356296436832602325253369363690219307477551442591508459680446022532525856208290330252443628622752622066577633503688486345940574035892884759944006250117930590377119871064299362290202175470464218180539974145059220513323563803104335149862047768972639545623132495271172452580087962852422482255059348852657809969191195195146420569467892102465579877870086094426752951538329461121592125338721712578316365842789123366199679394399710854231216798579510725192205184918533222296042106280732767132691433510548561174964927933066784596844360214075369798499710450836134388910747460653844055414282099939057191979471932442235881630839079197714634279777345181086076698340564893465740436375170384845133640800041030594554059416187081172284947873500628766710519720648153423489982612518248714554631641630043757850963768300386017722686400735238786525529057544174571376817931375121000364960993251480269463912028766081880026680603580409257089453651725093624516975437121130347069328572084277097469810468934422317653862790077358802484746078982267284919014423044571540254393446074941973907881094504745496474513262017115547737337248856775679904483030443324629900821538617733214579413202983925598172171895316015187747261639287858836644517346704070039338888853194233631055752384471664327131383698268664783762994020037354803748423506349974945994243935931019706460590841328342730773284266359957028435335410131366211573584422524341871853013406548757914317840472867060136882286333596973056284942132608638781722967040226057551950971414603947451847073722610088325451873985766319641792506752439763008302428577467700366820119189721590811175147709434365978872577015712660789674506311654424090280893051535733335509032725596436061736439486960087405813679502116550588404857274751069978381441645117538207483163674826363561887229627022098155403298863406011299981681936345134477818233374341187149774374023800512455597738141276113594392227751211975727222912966164193680446000630256374769342466233771028126756365212368970974063527137287718202611257070973809572502052761182044442252971620152935670748433016036048543116325505409714547685416068249275377412642415637884668572045859670150409605292211729026641214047989957343370578839485508794324357206940333781306521267592880814410203001994571256800819737705068492637741522386088617808219965610292215598097102639165406637834279003813371543771108182298199101708871249558057934761046828885310242633856755460197582531486080977860721950664720652485397514951904258595040324248670632184291574995190911154645103525072162384478138219172050558423125565762977683071654507034586985921145513390143231104281248152127200674772736477801222782538826519294100410103179431441439764474797305923609744119920289007624068409517508446274304728666488951077283767761153443357281195491594157398073995609769615444130669629856074096260262522098105533079357199802784519804420988353385482998650639483816118920636639324448665140366876517181601214296102419025493948131048428825589557949400888898063710660771268555912981034691784868678645455510839109181085104190673437708065541437443365173464954751878716359540427837229654838593629875883931958096247961011214853027612518956436833839977213071817677383488466094239366867371543339818532958597988654789294122732664158088511639420228582643324429559915330404383965840865900435361338471747275796027281952087841951638193355153588314866483016148163715217647963139868857427833754331225345267187752925696206062308944792564014796371322324116669703335733368508932398940973884015594021298322675339539780443580407640849552082777158035435854645997009748086202497691108217892290117483967140362737114684267248074193840503491463867045088669491751879723591570607932344520468547750076036448485171966194251886484254944446086024412482052865859703009844559128362370876352038406819547259019055384602909370020644568435537837100302117584358482677329583060009456106984001499174417541637997072330097726163641361814407186672545693976036502497267092936946072900214938555529426362014774381520108829049817114527060920930758374307469184368995315967932990701884445408018083571485106970051536952878790643677597777029647238271712516216201792961879654982623641963606741002592033608211745642425636992700355074322429893809625388239226405443055131477278874804582368884435188238023063167105883525211056280794703866599965323928997936910938827491181347430162651980114495887216844515269098336603720842828351339976926584456799834040995033214534876517353176111563081886991058812446851750937860367472376141403924985096852822853783771630439861006335131220109697312024031407025641327334589465892857192545241913697853306260155663262378219391770830262232484588900545306872857307880930947252710198634799285458188496139631292704189285442823052526427596907775199816622542784219593724210232651243552914457634277474099710451823039528966627335792019650920822919542615795161392207882449353803191948449600237452241055977398392456571917147652195174239130230566805225764530815990040009902668463201948295092947369237058595635577737052672562427903781247224368850384679423961370608939723923299862719585002975458823065369899154087888648791306321312192920605973041770678946877901003243486756741333978002158664055373954794288807482023669607625364469735489846284672099074751814186028985039612196300407554672812451425068782958992264867373258174848518242598923191736351620714038553591834133828087970069044277836830894738898929162284852708741557823968844520151612730065030891998976729912780426776487786240125574082837734638437022058938085744293502437805369800292121534364193546796907093630209582715233032242832456972840270828303779103655632141437634271187099375240060666872943084169568546479746642597080076666144189756833055216209233942999336742569205824371761762571882243808507100052170449402664493320552910530699459093954812250166245202894338399555809492682758440545754185493443795281966559044066727038131878699627642003152948959001318945617220085483278027587829895438658964251679714971582274179920782882973279571709041402701320157347797178899364094272870064731634650878620032687494160305115146640895770447589796003870197907700203738366693111247798257859463840862404235268270490167784507039854229273751606984639213964860956991439381512243905960780832251071848061737990901607413806591343164425499173916443405585447198242185717392462658437895854200087051635965693104211458486906325868403916141100702640273807296684403525286944191950189639095439260419216405482739139201098809824854143219357423089323815828579083609653868403481566693168593516290134782608325392134215553603329433335567583982043101467345827050331965123824686326257880911094265585174347454328412912356410622809905598922021340315603181371050250685147650444795678395758238664099785906862176270887619034428788916834580491207877098330713281212579633658555321514160104272712769448850547450507519773900080290634877896012313310228746175318751687629750465665362401118202815714267879895549304456967308119061155838942070775650538061446980067352263240999668081492416633827457359910881289764219872127033992770930278987475160601953890118658142381060582985283020745069390457682931262326285848690029635616768985078255270036846660035741133873950069141143461787863317670961794906354025502041917003227577939420259639148610954766898072636892274574745293208616108645239180444045119733725345746543478665676210776690504920781709734818296437226583313118232600284146469362516366017395447214329863092246107615920285750369474297865126260447726685326198023965354287205111006283724210601640422449348387132595769848170372211599117906790800601970167584634172415415235519438880048077293006260546593138211083029436199074269273068967442065374586573214110664365861898446301598795096420111912574001820349895504536535908648246000913751476983669090883078086614454078223823560861247664658229630719355023601504632136589687123891007890860260391396314294393784147300192294662617526586342694662150081934648670379151144012515087000892678640569668132463380561235437371724135959035525612168768845927150924105587176655314830474065872258071862743064086650736408377577866475198922905434209777553725499114089942455163652614544714969593761783191797058953078827086634524019262835947783159905294012706913823648157030190083863720335286228575045820983740778901085771362412616320828727341840733068897167942619962049418624562333578920082390812062585374269409502082836920707809836623638943759669558551853233298527999977601715119357585987747756426414925986285516472810096534215244231862918839053478530832893204106815624875291758700897300625026979360156421359819195796011198752545715285867253208210607919966694150977156273390905961107231669780789368836518479763858548433993146456715990038375180974935995483650050431367536790581285861127899563550427338613926330096117575785841442338257457366489521190367622254913205923885533590119565585845482075171969915982291460667031204665640358104506428573314247689629323831245910591121474205786255064867202537589002541673773460650357043586014353782762003207038746064202828578400473458705939362506861392213776126442243968181181959133376743917303521580609754967094440439215822151669074788364579557854854988693052838722124944066752234230508027526193568022445072488504084991945781841032805920380937997350727361386840842476536003887796415893641222249155611238928702392724639888053294126245486256650381743881946493777182546534986881658004009890076873868967083093764996137091336630414487657093159570290420405280203078489597870272811071627659689579357078441227829569541703405148968791533636826264346279420224811038041838237818160263834672591049866737204220219453856561594162103666685356190690375267903474768051775007708173408347005950798090600478932904405729425774433635333003887634764990847395109179430032510056785917398101693620233523655716900582922848513504740076955398964764040298464147298352836496865642113825073138792159913676054823441651097689698036474805071609996169259702089787706376436422671382460282134305488411392907285024834009609354405184315287764575541383460105445975693884735138433363532299832072862163649470993043077680823363233747069568759540729884775524755984527877003109097265578791354470912832742457176990248619529788054419239029358634624555042932955860321922750587687846774083304536732352480894984120566105346891888655381959324776500505202147043540961265801965451613672047242495223789768778323513074868303078754669274803527571642332517460521010478183197873011671910249748617353409851467640526202107323786598395603507946578847122500780107628358602803278516247929676176636220192579303763660693703493057461217793875268738596609605274207900787067288530103479765597505865309691973916417170388842261829753371963177238963477173529178593144117673850815287520997458326599375158589087201817108096406672698589621173927182738050462412447746812561441247248239993738214652763425143878548462883725040503123467751414033179498835188135283093925208116868534320784366569919701034348542061493915745390172413895130421830895791257194759993669693206882126102043155326891597612572481211890583435422113659949065264119001534503592169041115207824293743628926977985630982298439637876935430228171635693212884877589068280849403904940890450228525661665516953589385557003465392652195245077750817188474845893312862049214077699472493066107558437675893459090244308210996586396937504369073392410290085254713541293571836833038581820648152558472546133774772125227591116368042008788138839747027072535256928289504558675512099485235289177640063161661631399059224989430584696373032160680299763839554102319228708633923562368140133423410708944584438899281787594876245719810295026221860945345233208589229024922645288164596662617297983383321256960820512103174347485460392165788732228997942719581946228388069899285483034391962026513004696343384230034289072479943059294678967434349882099888862034914186962465387526137532664180704697573078933415692513120535494140088135590475551339583754802166005401266186333788100817042982131163872295085520468348398521492406308845432373035558275285017007182127438764307541016734892411504819422891498185360411590425436268894250342555830996866733690904522344563554202417933673531329934596373885035622477711378360112152761593055938599692244975146921855495938264733780798505016763970465083449701916338716144117173350019285503363402879077912051250179661300425082038006282215312234425403184607564119444115231906043770672666662821880444228365469538230567668744242394886216674503287114863876799596860568178345439856941489149873635544550723051932437743972968726535285591379503834388657054731218267877475532424904067552853745359164534958384064034082260364475562233843151178004310600615942147601498534377309210922283415204049885123033852443413255947652476182466303223647900255583249073337495370636142283883063442216842623769729992642060677398425370995576476450485587413571017317735275791728525277864030765062955825900675838315370511878653920325030803013921305645000533438005212573814126651514997784544003054183034329344227636479210669859732662963286872336597329022607731829888839651779046642295708407022522439994839959076822504038476966163110836923752049482226097022735618396402976530998369483834460845481793939949222554851110462804647270202459580263025268376881746487689223449458116526914741751446007168879903920663172298135555839424411886952124387840442063090436763055943459794719959925203306484565252755728080026483197648139782301270840189003692158124180742924625248756880994524258193598361980783010979677376507854315665551179270853672748599907060474300250454697746117975232783673180010660786513557673737499337812651308544550056310456536812633523579802032969777600918780095653168389856363291941868800917425740438466801905952553768283583246066618066750347826433171055150544245397391733292469723669457893820839939478906290144167272448099553798777800187783955204584741449052437780520778580898188766284500463232856515176493057159282091961948134065977002442520793887070586104105437087275662416385585352843826210356740295936440503592206593765960127987000626194138371557450198015413127727331775119087004166473617625276854989906207038509131100760025767309539403468848480668021545867558909931825199438748047587002815339593937288312893909511465395462866829562037932056841773089715693157330869518721228042445587850637366245013281131622531180303229779029699615622050611098453821969934889100283311005977811252877915517366351698718448810053532672450113790896218539590345542547741961860450410361894464959600495125978700657578706132563947923385300335486312853653092385459217914375657187966986377912558675572863582035076574569269970878498478105853012060361132014196278116818871639196059902931512082614179093144209595126015607526105518314099893845493899565087836491962306975564380171150898761544141507148186531660283447368352428015107524083671985134159108349211548073572530010036935500160487322788515361654966272384193064404979645017695242808434681926904233685147873726359240507288663566146985667089666460165725985555778547006504983524751857879447232952732222003548169248104917572539180465346803010639641155983335844641876186848405282278382472851336550194112015844702669815312710039804326820647980528297370529805283127947862739364894177485576966809851137132574206646130733583072047679113227556052929033044461122470994135731498808334229441885851598679229098704500729211037845067021014590597618181461451257538845207092301019603634522792142106110177162576021524067169345635000640777154508083574317740502539204570455207217979120867070321725928569745839071990425780861784544868660072335190778436969823202690182742241918919709693802031130597201147588507804451434528998828019361419977783742868260709737735550357913815961330632919573567591789191120213554945073749184954308906060647557210424582832188722131851211648787332092289422511236594520983139735647241116022958393325456080674675055320462976391247065193376728343747516297711028078292678398420660555739339540942453231581275064694390841156262519288681265418581235847925557646731257959414534893294479259627312291665336612015693510086205317931281113213636672497785986182219003847478986381107847049483141091281654439405528256993339838412688605286186069423263185403880636815901701106772936208419556925783546804858351990863211989216366063967765929274267247112936303377458275302849292597775514246980909207420316025409242915961345520760691816312900535690069025375272476602466897455913504255558906092676096178459078366600415068809805009899725821915859624679386909036317917921679127004519051421386906475807856579178939349135533508908758882335701229187328853383524514165986891620330137614049473596467506031081990589201131357290105432215110602065716717279713396995597720575484799784240563582537579469234395785183582994102999632555489736919575449396609530548922552300845286524660950306674645630616434600963578430136393442028909494303121788831825152654560717169645822047650887646557444099101696287688766473179490218589521391208066726680249432670693745800577047135131246916614952633535241260983943660916134504449810540190060031880393188695126415465276333444043744649857652537178252276721161932700103124741497689031705333708382226551905326199055672771632971822522813049363674664853224828411047463659580080604639418663591002822486394167914055716378819881646218162168002528118706434228476068278557865275386171389442996325026202330361917301197145982989466805252111310168414951089585731659845292760606244553934837287650799144646396363164019871064658704186601571667984939266371687360737403482644198254935428440349401885993422194887519361868962057429340876698583127332897558044836795615691187812266027307072380199608118536648806009203445812479617261923272592392992249258398693416359489601449862639078555150076300430887981049412475246435079952635363211484301136500337781795181300341391572208040108776871407454804269921840143241733273474518046259181489969732371893920753344025775854701953081926227920506743605493552496658111056646673260776352694953356689076493111690462001939359370193259135745896974175147997923299195349509564184663086219623819035395767808992892920317828461735301560198408187952857767685489796601729526775286486398455360918379630086528381776656180550687000827735351412757083689740478763661200245266991896145652346476789732306334132686622271222164262911249774048084005989676060056472052536701964758402209259366733482576293879325569677673421049780148576599059990945652012928457195824973422263056157735567554261577533921158896852945607319311083248252095327460012238264050517605817495371158085474842411570667137424236933205196424001002229049915617094934792652834450189046155119402756181891345357553531600698942693665701182256573190200175476019608547119779113566691738262027252769981390160413847373188944753457428762690709806020264641174839449498827022065777081137730488609438038157451594309728209053630923607609664176557137827340812831160744592798177468402015934729021030385395136690142931743880934139754473236605731386208620867502805000313700919439932159839418495322740035074322763937582523402045073893788448961201021162998863736287273410154238469032299924414903230217753074898378011465637939529306940029811861319632164825859506421944330413302541123944183050630854557984616989279005883715134155223453570845358622392218553733715098842468019761604226564102118069158645245311958621701380313945574206618711548942901066950384081438844356975142905186757318383136986007847899557230356413817172706137311310365291988383880499638303835610903089790024698688144783772171846295340309131743487885759071931105509006068969504816122055525339081299254810193710392868446841171301601496360013473084087733904128203482810953123182926288896196704965365028361702462816086189173986805837430577294446952458138484220020095664866683339978925646138979756507207638576362807284150707278810069495914849756774407928913939279058326819483269029086965077410995865444576510926875019440819432323781454742068027048110112738607825073506992875690826459317593173288674620419334805863264886740235528215777664272977263548788868646736199601584378285956582376541747209348740157709113458731610397415293537035885247717420733857521143080036161210102007020589514083185471739949960207262304274261470509059849549116740409463847148314954546560685632926691535925883861755451655240275748711290015052622422965562057603370457530303397767362521690746725905485954357427663528832793403393307927638718522718735703633022168790044355628321695700016886123519665306301144694767998816659716212685537994378268351303901769157086734356640687993384353860820353556379782317963744466662926182442122959798276150818012384148325723295155440280924425362156870849376241139587250551857331366905873970073495137407325466887417795657054646777200945310770163416832204430246511330083410227710817344060034198813067264101213317200060634791702816524388271762901754055536470953265976159910600961351268202926593454622933278541483036404125457171388723700898216624732614008429787399259195889418428215271231425899432296888030065567332647003298382420249775981345617252640742928199214061674360316981144286000930241488837542274952820633171870203654879364567522454703425713981718152504949653972622938682478662515520427339238459019826098779936404247501724494541569749686082554630097632973120129990770433225191706441104951708961797350162759896318170314886278576135086002720772760049300575413204198072093770107199736425316461157793450749390505583476310171563424291653768195645860222422535231830669091359754937431760141758783837789640994895012148686540805381477212182836289525070035388199456931006668995484600852660350190079156219393941221845553377911938899032137573197352855915817333476331365456932567963606581182404167781932471660623491041854719447454017827238275579734776948943015653986211804704694217670321425003703211683362628011092087557224768658303021724021033572306761760232400198756159628227007848542423896364356521797282545869901020025269108433523380539966651987736976105169798073168247176343428654940469930163883096587919207856770725333133968316605440118186688607467106370243694359198798775558975820276678264326864651268815186181998182270627571450159779933919881522825515702006110262218754375007332354974392025992054127901335039914059371322040416416680996045488800342719745958524415344506277812968431894240938089790371703924433222154818585586254932492863729430026853025250527632833307503918991575312938814370102480575341268993044857555350956384112706153799980985535289200104543892464226068214954528684369435543531127909932693052130655393876001585172582081418277731114784405864425166016761582067834586703956571885544387352734160737930938536248073288995953638850678571369733621977081483863001523501029019257468011490994260080858858589425548329889903472294241902452040973666414510624252906723797871867823946217559096719545283044035786577392053213922904497234087687761781178853309835683723081475533932671254442199079061866108819185446279383524895777887008080385804551630753424187551852794792356644182395542677045594408066430283621366662333512030606185888325525660444945012855594967498360247185565135769810359655037318086395990208899557928806618064810135563516436386115544834207904301604555608419535134212248701371778913679599037850824793985167737772422756542497373856477599819038431560203118721702731229274484476448022688734182937652381307526229917950612526285929471833633681518894480954158533265884631232464012406914142378344579929204614093901856295943555849211964364405695800996163492967670988364707082376368555678463651335722828580899137772749774989237201144162593299353086707290064418536401682467443464641948103754349793920965218154449230015552910603452335398528224619069146531677226796569896625501226998313612321070018353071937334414824142300197299636299511438521388935708087406789098563024679652083020294622781624089126422211731438530325520747487952999168259772192147416281755431612417423725847620360729723876918019150352299579794179621516967047382702924362386638108095881203362066683951724625035931248440659718451158120870058683537593603878720213177326527612609793967007002002033720028120016814723321005113829756621281368440791916028995429885589435381864445544819666988809591381331826560574660065253936363136345461067584620634659504199202322119696640181065199616126953387999366578884144270327684587810176210060836553440264284342613453731758931044811340381205303218532524316527366017661181387346817712640871767374090090464766879636668024982976802645985435388018760416796577812153818729896913212123468115469550629329551672232480553098458060025984674395708863955465451815412690664414278970556715793387696648579965173111559727808818807333173347891457917591415712699648871196600218202087754354034024657416650999607852687769667402549271611298543024050327984119016388057204807938801522453770788718603350553062328988734530907677769507806398931549052181502312975082729740394739279050381495885805167298139466590136862754052338100554364432878062859452435325840820843700932631136580174428264910608483513629400792460671704219758085842238837664131203732858273481438228095347729736177791003431427859294866124513657659920061282534409143296610941142317219556890765726867343878597607687122609375868884941796532022349831195430132500122155165779070577832214458139719501697437071170883806679607446736706190596663375148082012536913657769338395918364185941045566840836551112851211403452352654462866755797260064278454034217380976866084116203723002051182537725526642627696003314123938635906516421432200286937070872102909468473536749362650305490178609982445504300989398782147086537536008500746073412933054237949830503213472372094074908621342941381767872191227183929255898820552239585112815580851846609586983052370137174108959274626217497809853571005361498107670342899357199543491155913639940254333254452023271915384017031641571824653132343120336118326781821354252386050856629324485691514975698534624221102027149526027896996713555469490271339345154344184249994886996452960810408289085055510608522295905152207361070281561552056742891425053269661930192998293506959135783784367183998769758111897978635714912782258983218351312455452280714418374413891903575637627997034374361889219764336990919597652529490274345771875350428436459318428581487358610249119443474298073373342372955171672363752458654941647952792193862978262864337015877351961380804833393128596877023178651083803559709505613741992215975185710220323502987810550233554381016820843533614780832126400505420788673986497366461996434384402794370122238391841712331663399456579822089031801237735754409060492793183425565690160985582661657163820426654654092619235274681827203222682230644877842322844471378165155153516560370249612976502283005087381689412472935370473073860987671846836601185557371220356393196495187635853293085468492413719949224305366282188868102480020687655339953485147941780333624320789727445343671372089060686658578437315048248070522697758438632913603295285278424984704514970273357044658836752612971326830314481038566671326843431202204859682351599604947150753832001180790515748630087745260245211119056720673722842159844312369161691953652880988153235981950781066371420928263395057024609493731106736249007602399715769988498630143585022996728244772493686134559857520732294269322727634512903689824633699826522524289422137777535472972880811138520424454218155194754503837467423390962004605420482120639862940889026863104077807833943472983552670305658016128602899419404510237227634091009578977180942747493352154484794320895179330037674862013268553487685289861557611961042673762601597137916908010252735313180471128884248470625203120095205684435333400247981317811141996359038385197799018953910685335253809492538247132187252309841984450813343855082877490624688159143699905373612497240710055431436144751079108954748087045932520110529238142921766925620953321766044894138493510882079409457770978884867610660802043385327104796263560202053639942589088872504629110032593442812367351837949333188465998966144828174278773546020389237583741707676623981392373149370911700999027272924462540262553121681228710407083046766262234869199249172032683262355709608930716446461094760625682944135304239507442046430979318271905761100285259048164609749768357906557034004196249705897941194007218371528590622908203344573373277983778096187029410412357251926488906761992623695211602536221716214339712443501867506000722047073084821184153573587836560819014914533594868544995090699603605881197007069117515137357891247211121035688454090880770320120250520108327600024869972146619163719624550992020197360565968517527819511483968799626803640346587763411148082829508969861143430125805866477494690363042033317808052245996549488152622111507793937496175498604419271264734580182810106036145245861444450949240441929785060648230183459092772064676278095228569833511408481716626036161483959407712940437825396030493820932179318183939288709886479389901990994750061219182455128334047960892454931185140815467315266102023314083467844517535349819167644978771084192589508857016686937999461017591875585034670497607730151396271613965636771307653317194726542737466676091034694341970973419660833416270961225270798523949410417142374343947475824256418356920682404494388100075067657366415607122102552667933236640699935210855453320971186946863865657745147399090076186877250015299775964095557667487226508112782612430452037315369884077743911670504877541081753196619996883368009147270994788068219867927698903185962202983563850561350228063541460046029105765173750941913874606504744697610761572636750284938250986113249564665384477357904612822423804718452402044033225059837900069204185727799875426183136092921701209031047158570631093648507189434216848257575491572963988528156304724831981443405765997513545201621617850521722102220518049169351887359916391467080304422450865460513801693161630963333378829053136144783876883807533736828196893524506759871025496977495250879480731679338498352464842538102090546827961640337128896505297723300835070766856815385715823541264248735975187863089410539126118407755165599918818900591574833828692111601431203568138768505407392079629156115177710534421142614192745040560891567944507059934244829819360380313519470420851126376519003984886437922453069548584435872154551211163267706616911907366424516793248610533639421807187800853210075620089253918939199533535530759625448779949954776865723812816030027893412865171398878803996783358700451150790720178714218467650255189322348112473059159286618453947652904768233480669108059283671209330039667364248491142821767900362075051128403825312160549330385386914271261425817996365267241705826857657696683946436491969309921173792889479039439837236606466199365127993819227625387572902572737029917149248883726458021435428520733955399988813937751868176383839224387310350552769597758101688459148212170343797592920370107774955222438756349104508570682984837230210290775705586836745057288238545268485311811086848232256805258858773373065956875708189320023120453783985639609140410524045617644832568154382173119843630229870295089984313074506224098203147065006051036311566030899182002544830047187406477636158096873843778213087432322441273946947595710774378161068768191008441556857859276652451528512409975236412956671750700639233048828993918959986499202757952854514673877930214247703080518116959739977871754735953137480642234281324275684342086348420050823572390582675108618174447031422361615116471282315892323296783268879528732684877942041070193635216081076011623687164564486113093531112869397734015527676357923380178211877604401662611591122002094610101407834801934302173508184626788361198797871887747935495526010056975186910108820370253849085956786521632150257158784135250235353755595310533166513367418451475944416192905950637915677861996769953027867322872001833460157412667950668148422149443484355205431503866738782820035336611598691601762010552856045594470373900707233788267469616745826921045762494508509929499930860247461785687507543871020725514521871521848073294333713506591824556747821477865152421181704995172444436070747291636820450519865146230088695240699319681594409465196298964735537023925624884135207337707541957299403388916756817941047078777365554941241975936893751680439261606464031321340353107050045738367582948267826941407077236520781389055220272700097154075814972612919262909588674211709739527512918751551114499181747727245030610102991013956265955482660339157285901946041596131769502329152345888945543278190751069113794457922604154298776336676829988990035664166871158959818994654606672036471204287034825206904107036107889018852897614047600511855883188824699402241794694032468011111147645350664756406759507618917346916188910040178592535057271343729102420911870956034586284570731113507421800442519162873621464006032979510991227727697172186385236920420965604165941553640740517754470728773979066179996178466210769789242961244300339000144448850990155881564237466802628784096689324070975924071121823390479748335013493603072144224568101676961533052436081699210091430695523435132472707774428025064485958643105663876552214748320930740633618445999733443425311407950077556349280058001654936627127071856391932587997477383145467041926208309157435792664938758279150535549866660548766697386659119376920900289881649104782775819350934614740830768469952037843353876664362884135134173195113347640822493685791679897910081064897389950973258972756360550111297718362184875217698202560110018412204623330641083387041972673139723189198098022034289087439017785115346553275103687526391067959182711893089809098431143567047938118221728812583278849254059146133738901256636351111824902463081994137727744463989834568453736830565616130956420599639253828724926851349571142139273677163919838003384631464166141393352999203352238918559559120380978173284496847137339487824938657986783116203700119912125422262426617358925940549885006246360092331589076233861664907761970225516117536131569587055710008014314181283734508695942829370282979390548415527630148113441193026373454065882166070995028686881581478368660689722748800976464313034072155573508923747573172554147959912630162201267994934392463319120472046670822239327521362271429798861744835210064729481388127648427156318060908757023126946020771402624263064545165000159980294534176670304626720562061660353984749117060031701722407470466636068925623893144203115214120780803600246396728702469466996270203288191005385398188393593851760234872928618112587856074331163725306152873372703606099252927251308788355671301639757342804257276391121810453093078286105218843986292158158709879237739531994435721895066828036412011255659714306153085932738453841011378654663692179084012308576386787261935720812927528905637807405155818771274314903266011140385073917841605300903149250211849975958267446833148146006600265628826392383432536687314423059568635993372731547019199582974058917959880968725899248389530913253037228647853372935716317444613914240882912695392664206326008467096641273734745532814588319808678562010610054390693141725819626123720710646132794073471368149100576463771958568832449857622038054282731151333200557076948349689873133585002381518838707863829191281624882523179024946400706978577050477887050885345107474206338556175651816204955690138750733243407709812967879358432412540651981256234715561680350141374028301098239146689416181431837107270435742081817129482074773499557283274197367188104303025719317871536294417203125054348765257307155594290720956371587092064426310861206717257061002608853360803256917260328177252610008764464978803134631408318324634866971541858835471597328727353928882476692222320008776229297979884444315408409917507461159796250343996978418759794198506784624259976689714230411439149420615000004417084403112310974509880548596911857667051122293378762736448637877212510175148465329969348996150496372180276595515783818189556924091941386073136451232889812914043323395528572522214629982728035347194762089034930515959446171482083688005451196081797400192175787454091806003157989058300361095454928548458634061990289799308933281810320786703400042844876638969741901589974789319531830839627849948133716649790471496765148562116137727098049567959380529480257789576460814457942236257794999030950023454865422066301079212705702576009790950571646212642904696788058332079035763886819658461850658100217867775171680088811965007233383013383634478230174673328134960789276665874637254445009215881690154379927682680639329838914753258391654724091194254007459330568701454395813311936348810587992077204322988741428507401774194890200918255449235285321263852663040719884958469574822002765359855175946402563783595760328777489445991759890527311155462341504346548770621337034676325305318960630983890570156343271675557372988210347873933745907848767004317690719839049411843666470423648326774418949101266262759246419648988864977525969520356799016236315192196647432742127801389264389193631893142136814168322826840645995171180190694558767208502503353142980353679212056338144769070780981844257071158571526929271317905098947085748792319786053911773107582604277242356959583598673348585627592590188522417571262147291261305999092433842823702729317184659519987768086344240009458317483357408608111354795549084805600299519852817650897272187799168735411639968672380995187482393502069107981948455146869344857996734288635639140049961476869189950820439426667831405495625690145437743790061674327724921686764261290201108948887443960331992824854752354433315860300257021698190045012266036413311013060479377873615570636243093409591678471989221820530797195883549245342741183516340972931018407018101363645745060508147585503348670588272773116845673236173352096669396867826020259695248365372833631201979619489398833860966713784002982876869593357214913269596614727314914741261157094462951412064622752179192195025724591996214308707562097483629373658005546975519567109490518356727937694421565820576973713657093994471433533325309472706043610651079543515746505276357820059461427050728963620791853272715152044171420254199172044418498704122104742313238347466839281888495888291700621509199732341573044537557998317403461891296195501861871761391540012154265631781390342789634863259485304965311617295238246602055470484275056245792016167405036575184703284991448009072302185884224263601367598400245446393048356913340149100076061872374616322598986907438387024323740193765082104015436835349296330736202573375042283491604694094879654497044951886364470694368121927260063309162961950473651888561160904811758456476151344157050098808432991213194176484559118531481482818160756534467823264611045735140806182026158654412187942873625391889577450825776494085638183486437282313154632658049844125308332029987814402769488287893708441856792720099469438390061747684945252367914565615636436709122587045445193987273090138993487001364804032240780546362568338853567719909631404805443841713179072215631991442082148260590665208222535837085697903661965137629226057390623163226112385078239642250444013709331261103437009366541255622125806442492006868106925542813439571431021598826703140215542721171404861503249755020254063979462094510867155821677926868203188852209690063338210429441336371471164611308184941543187354789014639580865099897621942611975525521937302133271355662935603241420498607870004100059489967778739565836468537445123362063123301731055971194514477563008720961719172653913653486739342836547145984647546598665857573011904983620166449006578914009242033283686517964833101952039272201743956279932383339718354264442349676507225351495946540589200020880433370581807716504048569112664856468059697409523765238837102764627598022694341676130996574742063415936573515584538843349970955340700006358662265514848013323031995500186366849968547365212355851235011305690968078564018049264304787413164131624081917095967548990315066864032199346800933638830541033155411782435041403535258730569936743403817706755392222335795926200199123408441967576200224468461685918296472313744090077286187061856704305537142823070345395214055125201577287826302979924883427526808270252803164052684598182229610737518297433681986254210308203248520054290604680339682219044627029323174580260827795328012118140521437414096260228856484787963203822011949465616074686881098923896082252400775129844354010862227075804999251173156540725379486790223332157897240239392408525397418137051190709811332643715928961914155859802652685224304692956115658764925097241002946857184259837286111332077128565898809821093908801775579921017700719999068884347335941621377263001757923625397965901769077894204528773173731591966281543433624103774168699504329629017391058664865701021716322152079201021512029353132897345964609623023040554408891151190890034053133279864011885209139076052382118981407919926685305396788291169350896748361340665601586706957976549830208594824494904302509102017226111521399205201008339950785650136606309442579711092057819908499111155898775941593808889726461589750918033728049633043526859279759935762447517031068720815575898384477737495018579798354528283060609935357037657967305142591238174755249250215950423686435392767236468757691504122918922818956918737848565533365742972481305758241698709560826322594089002323419681164911709563119249432049010813811304740827993490502380258926262325350348600293955064057155279103636010089286077101898152317017021662764311489990562364188745703040735845842412026260176565105654976635325415324105069171299361009120635761335617398978429097994109902994807197676255679353415898322633507872617209862886687021015850148043903633701245977441669708269862970324534140198050655756545711705365761046555945037102879701202874393951023109836689413353522964761542964529496313933112719748488514158693752944217276875326638688774601669456169357358577069002403293554865338046205291306194278527030113658476271066566862967765345633611787782049398668008246818781746520605929528747292522066385148552067286593003858406701433838295663977637734017204875324575444275778342424789190332234791509108907189252023457080025989844509815057048174042110188167937051908805632217883543309648613139948167599912528814882988986091714012455682708897079071461466702152096726636847465797974142579243600146326841208324019462144802715837576349869350196528708063124038011412011768246025567813172705278945955151751284988589697936963947923975604860262607754625067823544853179758074606436207344217243117820198897130816009781094677214353099297097580318512561925190860228660670908494933291532917754277024637895784030524735609282681410950884047770384654989889079290456606366294538712182688286006228817185298016125428198260673300383737075550747651839313010162431416398723844778543016618233245079555345094096849860101027735009086422111639718564258697943343804707661253126454186321143549736048412038879843163559660331386431302324566677290599409561458253899579449270097097182949828701677676382881660505716964807390207594151481116587364825390313274987987090356917555319788432737771983448455522105509671815700447481020116870107980350286065319286675502166790012092095211605656024686154583974997337127024552161568602149077837586024266469035984562106666172377828046522415717665316065049532853897440113571512548770375974068987640154175680752704475696275554684803029929038981387897710460339485109204036055690449332662579486976607105587252557635808262500274133087319261700411082256774252118351607716589797126058639625178527841925956572661202811992792329084818964982867602811790355759863516872675489114747581101259639671733920886651292154085056139925532148715107448776469957928805067550146456044623846221200794278814712369095646420042908812018974072347275072317487320590442176979715675318796699250362455753650625745680729386299862210413906684452491338902219319071722901737233338666136835024475295784804723553905592783719598135828368540847239775973590545771534286839656695885552573384247319765597093575043361060667998203727409679429458149089730884216134506257261914957133915196330314199647364142999800465453641554536391972686154375313602141959931258388600063573722386311878402461131766034758252154248135803091539670614039814753788767078406247307078400512463473849505832467272085854556569924435832612814924445090840425714000803613223642939944515308759870825920502868876606065146772322158665962180571699071577348680244179941648305257721122946562608904927687076071272046234296557340333249298334630761222909414752914805648005455217588756610357091517764965631245255514690274378519957512782619541313392706233142754385108700572765889872184086570957237774198260546792898351782702378541123541087924510655029783144734875054416553579200004848112417958893281316271248996622663139356976152785673922884224641590270374771668182433591007606938333430438217827781078423453661213074000230637035821981055953149966589800577039624493601260984622006748109438840572331912174046219439967967694673349941616764776911943051882418205047727511747293793334707256281601081538681042739755244603059155297145501675272032153293431279393836383342793106329131433111113260090833686830355184021391602738702572727792902523727254103081961222881747963511174701762753903899434147822475968642447810029702530135496811392184870266157577464956441367695863460857923189428682578221238655311782160849388876136078737901806462524986142701612792246860870359365117820410855619091059010715529260749873070969553322119763362219211294473626143298538112106748929075462232466827410105116848108775965993778010160220225057359695601186077642723920780577485425329574746877521927259537369444168673582040427503327794130890000561751484567457461562718880940976964533700280341168110637352036139690006788897257010385465166962939659055294181919100605014810859911098243648943249593237917512936079606499522696516028313193980566243653558824310859661789619593272407329388124828202883482958214039666825860362052714382602782530143370152028798726310267471255505683588088485394159338916176429691945635430242126462894214301312562807954871425737306926520113036970924369060231171385861427976235932521885902796509556418487180904840713736710907813283562311111908981770717189219516172025703633867004089800859468144318334736969635808677968551426671323925206441601961816254809743484369336921551014588910098758785988368618754619357261530219939864669793779188835455884198227800971595581503437521864076126413424235831547752780744994888518392613305916552697710069532251024337792540552982860859894542845093749122154639688647632190329829306580972719441656816860422548246350671045649719168936132072151247741740391498538783160810297950738954879553502011769028056081484131637615465433209888681436407705676077078521789697787191272862668240037179228969112606896602315925713192394532891124544467829006455202302265291223238788160944699901725628407702087048609682198830816030230795980757652153152579869392679724524904899955655103336985612515754695557408816699590015594627580601574152565383744757737191405430166319323305873995027258972808133000855898050707025954693017027058078060498681536316494673120289841317696254407230211413055745964428930290975171506696504239273625599955704143389654245450273343280759989623404646158346642374505309144082536228983581607791417062324527688331169844939471742113917376336215358786393201122171502554957673624616225077257626846442478483297792059138606927283645128524060071816143863561097246383647035493972853367077980326762966004012900637146912875473013604983828795135375779354785269520960312422143426005452655194745788807708489981588509413510963836346102513743159960150228676534175476551504091618826433857408350113607939159866451268754886566480963352917258615914034186820437705176094798095336648639345258228924784248400843506218117231220662283712193249924351433509854394684757745795483559161406838234597639943346901631476511502402672971246718615750314766361466295095756215390549113404563918239734847662047335462902753694530855542069438025525730556237991124502318709821150108798911726880446405071694194748530809118415166733715506893099210069265737493630335225272693252210816145093946111539423206149549474396475537102711954853170505012254584513453017271977563105228645059489180149668430087682685104795628674687406107251408369697779407769620241056041391303476967163193996522070318934296837488047815814696598369880765624856626350300168330998296116589569149570513827170867357979318898127758775953055849844688906886174776723606154381984803264875846052506477140605170870969245626730857563551667869560123768668407384776458692517260849336999579319213008505289326348470513719691174658313907641077044886486472866413263209128783164300644227761538712105826771932588188640681371526505967218681373356322632902095342626999736468419543597969718567554773663803452237646342511341647801569582411936372849847184694457054935614815030535807900625122535220584564684079492092278095322795550218430950441993425056883654205690416125400549940043617044172454505680615244574107023774972393079137063515502395422108409681681874725803919419323876606891814355696670625382836589826797897093527201283147023040112833784969289038816636207387981277334102104914523051907801390172979127273560697784979829839434948339337348093099240536775838370823010868095129248657867657015982893136542134191662270812383790179181854716879487178469529837657507989807712528337070419465810347988981323896411768238507732566625268193280317986763837868273143156275473250110174385532483368161588304311411165048013290618145840324139994065198931344074216125001924808498637517124613518823176832881330603555298628157672655314657721716312274403015439937755608650477577113745623969581841121148713420433953756962272148720316129564668595745739508558188312600468422956130723165649369471706486557103668068404454953902732646027699377973636734722362607533347196792195833773473702627822827407482141566218610881264297681405220925767120498826137968681536217640704676354198987593771085215480213790639146730787761547361411008248003958671592198110839546157595997612681671675652753058888912790876722557328508360979169552025877990218501732155782625483984777542343373554263833087844838028908257241327674536061533610656462939603791253582900616081662696183793610468997418347568451745836205683993956048696477669963777245982606467397048822808722313385870378515407324780752088678852130980994616247463332379440538692445898422452343485827900140678507322450994711160540018095994686078914911011661595039981315306055188409290412564149730448759772559386731608378764051134446207266094656564720659187299759419586075067092156251000326858259393897444889913229966119956478190643738048538564299978927481857455718016060221928182005211047226669801464292666910841444061834532149244809898144189557265667045434029759956447922265979109459404291795648393471202991770246742548193745053201952926480220352791639170122636688942959502771772173604807323735654988904504811625858293939757953362880216523001674080027997030501083784066000559622759913771839922537293347665496510940416001702192598307422473594227260560473765524112937213404408216586469930428963613958721922284058421666392344053695141421410048985976585575481744147473922211201021308107417841874067169882567833944288100201861125326207589356078384373806282685991997321562059099822591278875950313344411762770233686486839839016030481006603760306281750898360755252995117255626873812052778862839247788261595629549356868590882509182414977953080978723800543947977208006611095204596124603512134793807186563609824941885723804636013857367959282920956858679522588863573151501612606043686436443982466680300593546008763535138444946399033993787610289870103388543138427503023678431783659102943793037196271824025439153759959920333495760186112214798030304048037798927671971306648338706955302777484859030678379755711521635835592360559491506852118937054609754892383056373127866398488874848756772735841168808766085194111088229981125112294273155098480031634420378237543930721003462134740650842107676171575711296311889904693611645814777141237335894597457370338034569939699908578000248543293687573987037127611416559512127028147382267176399419710792759940149309472975437105736536893342582138418353396829651726672735393389433761871679529300242671779212475546672712569869640038685125998859594551718777468450879602020801474314270307047564783682279109995940531345696720880326082409617420297091955186620192865131592353532229872975443320284627911553587219446509279505337612436159214544974516800254747488703009587303631966460556150445730343820719693526821877722787635832411919457630573742199287025188164645595392828103137781530312749859091089355673584207068771984774759179107634304064597031583009829501099580718963222895462615295197825245612498799885274113377233750662519128416575965408206473369999999478647994958700415982842690653397119056855036339966091210831978937369162416577332178236371920031240204728625340524285015657688414010610760667267852271772812930604668733039618702578534031267726594847575801817455887398424497937100300697329732114487548635299646455636854472494032221006730473890417237895661844739927877461065969679697395107752458066272689952302020250769250529821121034666253095439349240389344284594103574591333042709983810801221282180088928114198652884514751413076996152392580513770716753651076766784376284805020725799459176285172270230418125432105241687878874103579632201902608216657064149084215361142193803417038599374540603145955444478532773347588669989180498392151499688853809071920241845876359235741265719303435142770972600526396493621157421641917303699839907684725997599989926717913266126095268411814899603256642143552274523067016384752679372502569305287780513391816622452077226320134826420846694895382579802811314119492333280074043812920194862030966399161852810190629666676926408279120109772890121809945448888962772380969739570499109373135967374333929749916411373956641929269394130041804099366642035289649691147249364982702864047141046712800779131362691290562741025764424093031518652582435580498146189574915731449571793375748429281740786375416326703543263181202001164086119622269466432004711389843268759559530330231995463419425788279882517316877346485953655079182328036981768965168294106479295551827678643127491585395663608775092806355936501129101117621935494655284012126771181292563188090612284767313114837093191630643577818277437228821760132488006607501919069488832929639427847123898500071492296229281634364427955928484179640677931333547642324161228117602592303240073665887251482018469653453854597093201690194393203120173335308029062291873167037923029600802731375363191288627597234319389928435561575710637836984773427602959880859754155666536553741624081014299473509306350535309191148179260325186438601508335144702842853313571316420340796988712077743221160216465540399257653969590829268664548611800365176807911589113895513373635757195180471754743999728100875413516919034273154412817466236336013963065136706191023208478300227967944515670565753977721412553940421411528900231292004676282425412912578017725066067987356209898447130442472796213952536896070940805998496435095628718250179158315862215412812467026842195737342558015835649943563558819710559268468160818969118584425822221726079682047676321895146768796397274638806249495537262244388080229596065238543498321644640921721109727365735737970823737643524470824359547372970583673981252548278067792301672133797715234955941895248541955856596934003805656048037944951874794032198063559184870674819100109561259659431664307546722295801154024171631017281838850117356690961636023801692008773562495625529644748611948473504917871340226815496364281845463780435293490105973039751926513723339193032361563545233184497084156000254536347074088251300180027210447266212032368095491728585385591496199870205407200278103389588784284161644893496405593895460429681526157427205853949247356403447785243895289340366560605203674978192226342724869942591427774117543714618777813118600188174116136595877165152896741082551506797913357493129213648203267199969499947733579436573997703664240864543604065808867567666789706909279494421520081400337950306328959760931206459571022339409063444674512353286853519369174120151210198264167604286797252663786801603746580776951124083105060499777859771892984945701306156689823461348925337690241119959397497469646873352017041115452368593565133219722563738366490432338014663765490721940664444264993259671267410033196786267591727606168012310500328161859574151068844788849535244883468867755073546304542433229378285449796952959677105752876015665590071157216149479039317385883264771929149093883414721536860751996193273741865008755851940768482433462925216610114491876867969575521410957869395725217803424251429526159035614788230013245935178451809607907985342101655201522241267104997524093826668747177032232407519350156091907292130361909871687053586480084078161558091046175038779241890389815721605604842805266856245243393397872207812069416295453142515416968302564198215986737696065642620458231985092914890894628776379403959010407640942798343485817534815880167039722514216277683950272177250925397426365218875144013535399332419380933507995287541006104132855870221268372061457844819223369800785207852962419780531169477150318876818416143607859370094969900995409142285727025428607219533787159236166034068934621692669822559950959874929971703275216908495948014120466057041107169128214885070308976776718013818897853691052338566874350647802020956181711067515715169710691890582752219638291760465444576477732336945958701631897972143408551160314675127382211472945778150771900462542057395997366715154930479654818164831858608736017911800241407299678676167863555055666524714560806142039063308750170605186364168023087481451463754386382760055123039079684102095642373361884227014993279611189382294630555784464685303867925168377394666158136516881830615537418948379250886383807949078135472918118549961916307343983636654142340864075300108707791197864341324993806685228947430306308209589254347693923594335071551636034034136961086064494610634755615439341567936192752535127645198051397137644120188055107021994115352674835520238136286490658663614200446383875895426085337599565869844473791758683304809549141797004746185290499981636507832662840814352746289056809613695345955706038917864030637870883971510309222091855764399014232755120618516285371002011097133956072268101336588719470583403264001933755192289194989145844231260773501699511551420454924258901048083925342286140001261069342919932367494131540902661935365380792970847699143346547936777084176595876186778473929811687002616569782871192038847381610664656598942059061839694531727313414142208058661677563750688040976671543112056529291482451679155653661112266160263345551359569735503265418731136224507890592050725945857123100663894232716772848503552227898274591551182212509868413940109669450312496295681532396536501368025929921867307294200523865002166809865518942347841118157622876358236130081528450664753034526880161692721796272351174543514642232105815721455702800668356369612548562371487618840594065351811704485648492626308550511883758724851635292948929911482349429562234966338029621570450450049452039672920188077518930338039580476502801589765465732588058631278451919803228679749291012654218381192439703563104400860128674374306581532217191080999643915740530226720624913787096256078182798882447157130079905069137279848606692644905241298084586300670802640706505338920139587119737890576414396932417307253708803162527366487236931055635550150219971617102173086663873534248053421630392820860816598857895494787602044183016634568453968284102529146738910526348361571958549141757070528395813205131629000468994033939569421898657972470007227612315952629628959393333337798856618429994460784114538981197985145681822007269347252660075400699063472038100014182744217312282524485215085564735035341896891446758284832989456908762314278598826433414349891955326565310141231043345500917355108112905764335017776899851291473469768010633982196279080046439391206936374751516667204398908203352798453576331938537681517316356138417778590845042201372023238151978855799920239930319251342452277696235370693117884872102065675263256381602750939583022856062682722500658933971742720041440998146221339175093362582522293215249342489556413534833101338328876739453761879711376091561134223425483889736993801169517369690857359017730034710167270094761248174544487547164587463587224786846037017189987655720194983041596704489281201434272162207258608170400529853374746229112775008809534231644970181016416999314426046955404303253070507303664007788154364200324113425148718275030340601270361229420029991538469722310200815399979984844350525770783672706633182315174018238995428886054585138916806156223357508953124601905793302081964274196727431961523856661294596512277370788515944202799529437466341653698654361884635790806665015523144185453709848846418397667164194538685349476671771888027975434364481010082362359051677958399212602801455682860623743351099680074241632648165849909765282565947205159082388099059119919771086545723737488131240420795699578790221659225327387259502449536705965639966268763947315697734036953742171026962103600692157630641151551945844727765537050792830629510499668801477967697277825214039263053866652013761645553745951354396670737912860167489648148282594514529607883057593556169655506978385141173873135125660754626351010973380930953458749465285640778391544846547830556308205820301406697345660714774470696677741881816818934996239207702748284693810626239387555758092043858091758424598085848005974675538458578666852412796217867305329596361430416554857018483782926848392440311363197798350074942675166392864235542168417650514244754296722176710948125575160930594735553292825730788966186983213742459726383290774937292325312865540242557078565110458563572450333880453492471611231474557522916260588747031244224751159279972794370528684589536749843224287360616879180632620915943345832525946788667303384902838158678831006822186700339327723332205253868545124881048449856340170742328849810576135876606343611519055912853242775371683637607465339627234559374089910188287844284173275605060579621036105367841164688836470344064814699779638676410937280786337879490079738912174099176832820784115295477169195389145493116039606926887575077507037396007278688336393205499660388228351559040254023368096418824941689454226896014329904112153034824397395973733710991545090394842706592519744514288181214944736473050182206264364285284832821907248786017611394853980786964952788511008501259712299764663987908266152496921040720663472551867404918877589349200572805263968792360240977743875556823911153830737009951391485554493009852509878395430752448066771850084510518632408132184096724266433400889348657105172845740685321509622078778929696733816588416112153991658086595528267182005965679655799008258610249898711810625010983536460839396728561717996675189032319002994367682057429175575428903988070127962324118658659492529030818416241234470468664411774831222968061013189152828306941246237246998319350943129685188459438282729072572948961665137475250860192067966705400027588656650080162244628713663508838973772974117498069608699778861177337401188144310734620102548180311595174856973217473298094920073569622115073462427846102480177783708916912875641446982160312922491050746009669998409427102583666924431310857213035043008106631608308076850704012306313995976702994668030748035008309762472463349709297245104448830873038665073889860591033868638234308741934463102174680356358837023438550313912679183366729474966106105370638364416473132355207679058830517203980966617933944816904360492502613653193358823978764967022491259692456840274181133778098736278102817336143921467588144478790873936873513999816691083197930682848897293655564433354647581964207392674672882549595411247585164574049715754162096538998332619565648473696628733315715274434992941691359045568166088681312536127975041822378146550779368294194276249585864059735737587176096353109968673312117917461882530532088773201806679567844066281232621109783928589917270114881404186578362464558852772721941957595292597189899916621917755542152774937324088955509069159162033996683985662606299051995382135838165864201351144601103503281961120395245042405848036002884189870017483685003984544013707823584858520305218177376377247423451288991041803332415112303804625142983085181092339543204045726294650941765519156705586987498692716829401076743414806088411242624138230983584836316138489480985891483446268711019825950815409235570160303680441501257866392406041617665094785848655240520136789388150602028638926278734780977912079356286537273098673611756732423184081561010639789866400694101228127874572999613698989709132183497760572735033499150334803406150791215768006814525151935298019633280390366418398600423277462537730158672245100772654624573789479835262583745735925731005789738795964326288140299897609700050149456961931839227400403971154630115645076275971093811826948294445040837913324305960732151159324875967260767396401503214170220058144287214006244194215861665142793455989758684614141425622825598581016165121787949178665676951532467946562923052948867999259029193377373968734606280605497310548189945371551755270861775579730656812660956116600724531857811436406846147781810793622732158692029362592632905212780416378677693092689895015506764970319172252719391722015200432690435788267157709782308938259305058642899402441709373918938503943711145331008968134416389841510490188469927985938968089420639541818117520840897536792826763180836364026019275436094879023666623557457816320654992324154511166166528003602038360514682711904609792436004432053927399163755809036053459987683941623934962859879093840142493195099690820841246265006818884377933989612458780656634156105550091810536205147325384437241440895216606105062898016861077430048941047394134095508248494958228597821545148560462667389878943429236856520237500974259137724768572963307348319269372579855299296033625954901172517646992938533945096624394261030291441365899284319171091587211941928752763526613266887327685580858991130275943203560340914761380154709495169866175661884426981097688110524818497119342682545374859510193825375805485262045157734759425803394320079212245953648781995836918485635988129508038929174335930048179695583936105821274419702025879465941032274289365099198967396171214488228258383640271148057643234125357800620463457581572068701758818379109372070065038230420477200311024126258442038115379583027652402311655378599447739850781735133334926443813444368108468648191022250152099711941559340883462249838072872335194430698061355413725504809248085160834239044948554820934002893912166026309330618465564023022788827663044712360180201393572932571626805822262611804929965503530297075969245867178115448035232160560989188232296912776647526374097318850525384814444948555781661690791155929117515432437288448238801607196745873320547939010023693490860859031391589110117945958928439837131020579493080665532280349849666843299352514526002113156788471525152196231419349868782701183169928275892157267909736850199475098671706007845807774581044776530248745773691920765030892251262486822992905709360024809309551702124337727336763350498692875307730724558638674228239473394220514308795948420573551095336002748406856086277350478393577735074329429575854650147886624334091315942874206630025420508439350909159042698324570901531073881013859461379953449223989323722709496084330039039990556319909218131811309024752466506565569609443596277847768375021691833561020538860106575755369782348445288885182819634625912011587326835006859186433343799780914684389989907346343340825290946617270144552982398693856358107807633045223304715517706068805933959359759362881498963974502871767058911565911885951514634519935138829496205039227800921962016329733980305253876146567505766989683737123730145024129546589463149533385835459902006588193054302902627231793749790212010169742177526208238697350086530028866950069639505659987064861886686125670161128193346092003901498604570310237136982246733493947970868379778024044149683713011731233247230758087009124102248938769290613992382167117236405236048965936082434661775260780072518677498901506597182279490888416000890205181936615866938015753159099112213572746642179056006570852900782262178387570924861902864997224349801425432367081170860226855064308482424356613310251070542030216837722544251032652214194206616308944236823627867285589677375508919710972962807699332804125652572631020549594559942212427893441176700344406181284992082401710286879015142529129774257962752966242553666353299330632588655391172272237637173192953174550837419380566334676269881745932637521939713444401007405744229020542967508870958446428365797023779012885961201999328116435926600928629703686406372048943602867562477939522682129649918423517148298411357030480248353251806461149065603285738288702202489917442426832075892887419453738586384397958177304360389696924411931368494912434732509886697706822937258229122208264402125928287650555670168223481420296207382070540294767189846083832356961960790795298126398481207678476390071418364617447879807960999428585172209564389245551685382030559616957925562338523960358884419601467233893671995163417651660598366914456431764331759409564116520181155933189141803560741937719675206582351442398326377080455016440658101074075370902765123175078516605308003400988908805137367091024174862256833370239247833866615691917555686833441606426542603139341548634311833077821400707755642314141223635619528136110911217032017603574527584123397008801139459600826074891942465207905950109989533739868416384283129856093433772210374378209261513914402604715024205685168128194500135003364782578907259639533723067136788059853906885046201946817268930378699650322656139503122481148187533221077696844260119714116940627488581488130304332668962567367701733476607219472258494909324407636337031556519269263796075260995695849557207893074858743220623251358708301061565913770735024547147134611521264473428801738968803392829040811236209290966803336150811447145962672076555961394415610524866287551108607821674201344033696817226366319542516627147904788972574347674238444832056622179906516305502793973135301876092883336567659799787289009793749365480990085217941969904337312242780005679968654837174360659791568411175646204042222124217811067410830571193077234298548071469180545731455301820114266386239408622886363078646811097435699563303404039621324427850769672379605849242110357215845174088231812841533979331312313637846629092653060658439071164580398610412426203326266327385708134442927707222269879376051059265623720537316473275382385802007374127666675312817650569271429270642183575498947826520786221529370463222972146233705524839552706727200467594532156608234110369574497224651793813316034586962867530473588945880178386171965366691322385620837280947808927444384886523355802056491166222893670192847929584355231646882223836634367061711022830386747336138255391102414494286336592849230769811290386935878581150132113145610242400899918687782600419677847923248322428174996817054941170633302245226450374121094838798251871317248178826883760591269018100417404517198879417506123706433011697902451108520735012215305579578148353491436810978999037269896728319004020600017915890889740594889532782995195411375941095211529093671033919187198518450543801347401750149784387041669204854488462612132593217181644731045186341981892202794896536876764488983628538009261439030427472463515165981386788005917046303855342495982338795390168776026195286368426647308300704230410333462362407315157846144199925030888229179392812374253775992145769170170448317000143966637851994795979741966113632705533333438522474150870291207996381995463610573477539452440047065767664511812839054895839977892791287029334481815759383770921166221123503786236108659019570563358217254304823311368718283124397326118278255405230258505413815204858841315505416202104579924462375197933355868304755148759028166598079470148696191291446459482285231149342782475506542367499850273476938313331427852762465493346488861099236264192261237472722814338872031269240403164940602492835483053593364925811688815975937872442813564532813818315508815522715339466384248977717497518201808818904576045800268379370204072114350419472681784891257390395171776356431318797295505203510335678318879500347442073971254343620082267520198574947003478193744314384578825827222546792407758420667900811069909364108760848168218243937066795623643569382918056866975383687365896062682583289384032061467128198178573497877408940278850599028591225980566630598855414592322707144485761717606254257877726589021404117015818503801832228621642531659392257338775618351311741915813240751398919827355349975487015983149969829179135538775468762650396139161760952777457883650433363685259748427193189583547015807164940011651952697121605465161683317994700075913447431676352858625790243687524849467441954298533635767861373350683375291661292258233996636755791867890513151435616065596558272471209266116651979267443747280716256124553422422612220845081490028865193110066104890560169923216971474657507108016916632105741822005391618116948945577796568937093709331891296480524663982166803171536279620011375513774388061083643879960202826778387718595853334751644013773843812705740194833475975207163697735896795518926421374293277927730671860451289830036925893045172196355753095026999595553291214687631453990786511502360667786969409964873619792792057591937809957349101305393236828909735162515879884851714479687240938012511102568764717233751523141531954806550940910726430228778616369800843752949157440692593720431022149698410819196436456496039324544063483723808467422019791299354308458752299709497682895122103531280669644964477671980561295447160594097951459750680813955117542353620676339745053821691973177125415407728912695573790246322293927810775221437337997768847968663781550381333382736030596962184323600812861167995905381285701348728343800961471366903512802352452314581448404364947753749573033923481705711117083130092683831456899007554873113039388609904214852030554693169861433902553167517098308315725795130940169509442082659543362504662257619230591078214990294829103803758500863058221646395847744267742719352907154712880571361787682818500464597246465198736309405500863279388266148867049512289906719165776866984031493333945590973477578578981411241037550121007970355414458367886597442874391610410066271979670425868814966621422525717225157793784867653567381847127841446502656061736644489108667614210805068819205015177181646819254692670108774373187768419475355319678205159099341392061591777409175570705314132956082521859335964841202316005939137816189803107618246488168913042748370253032149085967354855945380897162671146002913803659038779038319243887327565256799560283438432801896017791478626264048572911618055264257341020904779246033568148583180634526035014387892762875717012509916983583349998274927107348425052986307693756444389960856140140894677745587180478665851481059936659972007455887405014449956619014227639146375353497894048317861371651766980260487880454844298769342476724276276759591730574671302502329807533790634271518483752998261604225167420696650404690615787982237649459819009305335777190035975930036135309592541171046824593851353636711023009518885301534550617870172689212887931996553753840418155321322474411916272320768344742901014844028450517431393469689231545678230619026656389888552742162580557092064994152461644480470288638150968230457988407741805384531544460005351371862505514611958776683051079225067115413482558791283897571563405812554068049978339026263543964535875101473877785212225476711036372847564821665904114358078858948451167887812435406680960222400189230860275130347259802414801316430740276691104529891197959317630700593521755094398788396689929563530490667120713269564993426394585512470050269332673116974293109210180527689814679699392972006651863721460004018638283192823849134855967851135894843779686351716033377299965513114854653037750119921223591709885307555708540546660934693275868974664724368848100064684704993805287102450557496505452895324060640426043754851043326291864998026239466982365012771909932191032295077287588301029681912851276580950889225685964949568429617073516593778374567086868762005794901141916450364756756320680221023889641058164735082897194576977474030609148774837312682684600228383881174306630263912653146765989765367940884329530939285741694133765624093969772140251442827444347415165198275405511415937965380308228235753295138431784332385747515916637066830777123446355915319260046338863951028627844538411805018739807733957499936119579553863357486298598149908077338152339595418547138795701804036399167021033659481595159520502243989503662325685894490798509871788389878152314891991648092909208595372115942717593716345717512993533694343288402050156592876654315897547075413055590657753962346440429304030065475300311767711787793563905619484205320221927561506331200430118968689270400670762621732272953319043047266956220419754002968000012680398652800556645635243494728839115149754518103946655045939956212160067589290871909226319920244288000592345797105905991712381783735846392488492534322622409507172124746426591591797438526320824111314868824262995193567864032377923961360788885373340930117796156388842266873585992598434627007501996757604698441908263156439819447522400280014999279384068335095810090710321776040754586214220054876636388070962643408268853448845371203218311188123632158502573488173892693132136665782111600141830021055778073064743915379951769435945952238313487440277269423447634954279155839774076337773666301474148908904798929137643594688068987934815774730819788145839817101480032958094995102677456975456306443610168544860670738388695945718675839261091634452889210472681021438628829532854944631389746326846155577043685187806294484362291132449381878014521288830505966090020066363299951408105007737757596162782598687620069817187784514902180867064935358817932944440647690865095828458957312200139516815737067785078268262899094057398271137340145135072639067229927303678278079154667589849365476903226706945032234269877484928702566027697498159590917063602379449821784937995413691751476121226304239662352391640554582240773111772403561900522308859413580900571627372480076291693190161062148051350822283472446019105498974495307720382323195690015665450791909329132637272079802164564521252949015921712181606300892132571741152607372176722844666381968634507910393647408318254824372915532996449451198163202106309765132946410738274176238552434035151081103480419405738051730625345380703477334994735385473980632609106597215203795404821798474260877222523581565557804731895527057209470464869237428610100656688397686320404475254364297485112101484402844209772861868920384171682689774129694156222053391326804446112280207071188576439372629284699842193902598599379364749181538766885506347871646033912489620458903312303132894237376600738200354332964912649395706727689774574671743436653963721393241571211211753757798273075077172451974342990957725197131324481664865916753405419427678520775049209776953908194850442744269541992760377908359737353778480295171158389240174433760707637711778542043967068850580698756842670822261942085260173007056137507052873915051245039163181110843027306688482329127932993177498370924414754617955934629373470719995099486784285180856021345570516938585035901319710179321702632441238896932693968011880067346724062302573026914822412066561932615787929249945791596409903571462345442246589327756704866382893069129871035219618717709844074758300797317900093014925970020694563401292351682099065160927216260214801396973401873257117036697638751566554294951120485847016858986270865158229020538275239706533675391927099817477944498797370741781580309778223639805692175625101655951924581869814197678953787909490114510746961150283887452991452034106106266677381690438226032421641063670101710748502690387231516441767531473070027115061568254262130686974518262549564231733789240871041915944102494937455869189137829644625354238062164270207294589134881330820234564489631823782352986037417871144629637498820808824685326374405305305307205175911258558846170580492451171205517151145144212890203668114730090387826339875719918157915382670228004985131008818315178951099250565686102475349892151483415026914281148493197200056336212329101155123401175040132236343160428407821620570963217805758633117801791368505171201700707073549316587200220719459113840523272511819997477278553898696227267477979996937011467042913794778572266760099338034602532081590761681929519676540184963677484531881042242458297310618141604209100535826882029997019722690084274594712661638758437539167912493967259178342330510728110655898239233789068782486402828048641717849519770349544271735488405446760472814694026352779907162770309497072621260841524205818022581067286292642527728419917401733345967585011107091543710414641006129849388684230540069587347904407011228904689455943472013893442133621135941874625268607606433535192712956349051803016631965057185562092269293612453895171878937573012359268051570059738228409100965506473957413951403379214068612578015105788958089398173957941063418650030134876432905189522017580273534697120416603723363006022555001586568996469368611168573995681720161782391789690107365905439452388724904753510682781085143759018423953121064110369383241850824556373624411763738549577456478594978412795513178080160569455853806657801979498431103130530430350264555007626289469817267029772193550664803122958531843018798258121836006560095621730511109090527619144804509248318508701566465063656105219202718025534318492302932320628727634529910807815191405713441820017339832945731914845531883339529255685891046328304566796795076640012148368655084443398731320477754820887845269636004714923896551403978498095058024285523546433850583447354810593274415070659940730794279095189578896596874597239249827933203178455891445768329967576837102128052531842190296485495573596493363039320543558157635752316317046182991863458294061792361576737683034675977797616093508240511781985903435807807827893991820118538534928910721543259130778318872506520003806552566590348488073320672900290957628961459355924411482842224553356470610727505878477131410861858108802305651154678756268615657396258224343287460919005853099358521432811733758852921834992710549934862228345374480353801352287762125196793511800725722427273402131914391317052142206215679257868990353977118613956859344916438915767713611498299862434679950235424704165101869955330780111120227210761440377713439901112581111876624280210394120773968810021024565148968003497889097718474125157098524029647085521899099680140681956824997636773324535785920815407942975299310656523122247864295994895553821715448768639745861839839222762963935338898953928910625544904380177151585013424265504564831868529685644889701199282597100381827797754723828761146212088157263407193678690893116616737893635784013175123061887197606521994712848370266532701949001324558330834485608070723556745781601855724021446255654415026991470002165367750290920980286163431468344756779836249569242237054504787963837753172399024252374682374748673957621768833743777620669728109865703758731377997334799674784653946076311472761954788790086017300737317158702542850973663584056055679341929772125396596138183172762466886132040847991598390390964475808562161349238179455219650860052362082031656092534089467503655714828115644049185910989726909820041874446559624746601117066675856859874673745491201841362136677639499725847973670262996224834323257271145699209639256568821200805311349380368480466150260796169450713794327783275096936780919491072628234641098223669842763664688454735811417527525278228364145019951523972378087592485006986708901391941897483965232622370104698369630870005950042620567882337289251913684299706385156296141400374633037971225778925112608833001139816343315187833813759486655116532934535445086633922653164396515963669854618653364615340159732467667521958357382325187227026964191073672702185312067522060094529449971955846620912255075409243136427316060138266251040669569720051038284033898959078397554191326333455480089021114510793472604854335349946327881036005301139915080375083403948398826312066356496132004474022440249526546817358457026796040125473712774718597606421705796539605132279290336485192494474766062241722422413578137156107526632891506087406553105581237828650677064427852951529475823027155263523632128125127245867014488836215349245066677810621101999393544645300444242806913136061292307433211604897038202975989887777589454775312499380390977978298571210897762027779029708749096687378800801450302570896465336657481075964847484497235407819502626871188857248487391239889816040301639901537398855788625317193532560921426481512322179764571368864014323698069170056549423171868360046541117215803441493899907004318728236213821550474902510053272136398759853041013221646512366991382462896089149673202082450274401255874063750758306568361480365963364478469534903532902201076061961322106522497464547331263701943202659866873020230904861769090521676586460402935111319416282337689334789532511397937951547121603274742180611998795390689908375516652223010438558253432766516977849196782252938268183597361005158654920785861871707314161164006075966378221152840691228832314537108277558545043171243236474935118283781972712905415367493506384256145357018532655500275557753767524814017981436919882669083411873379867943431414480321452303048625799614018788462679948984351599042210165076934666212943665096744986099339058529516850874878332939368979405317479337893706514210771449666022092153733654202225930953707649796111591040540547697921159892248920184591486900875297073686865826027063033056381051879749421303663245718357912817600817879702570966097133487839149413270816324069348716784996012356003111821973106913417220004124624066301270357056790877084155360748665730798181629793863181536472963022747200286888516362348886013592335474167100757214659321695303599395848401510590798337654044666780499426811907975242326699063311029550240752219777905539779637666013934406329136493905767325649706333873407509587934516449001190201859606487584472002699598983153356778942324125875313882481026068471431258996731665528008277723266393709379901123165391429537955525313168811642707383048043043023399565667233702549022698297457991863947335824361223069769425862793111018909756249307480224369152432506040005147272332488188879095614910487617503198483697934108012293122957520860097134852093726229406440469404600640831999786702148993007235926456290210817736135892017242058774982310426431421618103038142956938724226097480990306926549029036964585164646500706089927074164120967399593081785783559002857476233615871499345365488455037391152824571623284909508963558053861897799389283186038675155867094272131201906946679804685427939257941033237045777774968107381653130280909920432885694521887987066580477343323179020947750268328911585214077920063817120159377448516857030579431652101725533601003610275626939439749630925889728488612568779533282415965594034222475067976031587226547905192010769822181408320488763874963343734103774706135789559781776632378625965356146163481281394918846928545390887980853404155502684961578239669368608590990951218948434115063654164490936040118001205443833488131896203456920204599705169112339693508354496804677909496473023717504518878630704059454290353331832312393400185698604947581151070453198577654639395483205976508390185302150112552237776972268188005271564035800509998823471805909476812616179539563909114175792515257761592083661915074340340736123696199556718712369120976919400353035268302304792759351339845273940860047313465046143845796341406932066232690773696065884366500852399355725748381291383436062698983744877213104399381551387615122052236698422308889045662598047409198365600592776828028955819331624523685180414861778060284531113577346315826082778863953492107707220281357506428675239481995670392617247128750220418536516670954896027404757623658995511902645824187361270659861303877122315430618657640993632204855370258848349383790906975145200971129190703938099397101749906294565911815534242282924194989664961591353076136414085777878765513543965002616243589240309426923458975063541695008333648064125745500315890827988505375868950054948385137717905674197004640748079200345301250933890534537174165631044943283151156787074715099112911508923641358665612286050215151584077443405795546115881691701399577695620967260280862590378820912714776023171972294765491090071423438986569863389439592311421627889491421631932282713121390926244639327101511763701420004692775274880542623375415743587752239969165115224338774128337765071645259091626863448431496154280103991625260611323079967147177768529322087843516319445182883762309319373059959040260778133617892731757015110830887432043331413741607778099844279354943845169668126385958877682507887373043485362727136766531196864149257959245268777564835015151271470376290170123358701635988064719805547654445702501981538224267095100927958255150811801324283595030597608253771460677332018215590434225938941045580204575272246000121700778610371130921988299414580995400328910374225507305984053122262138863921194033775839051111980520607834070047825138014031136938656416282934522632275519982817643038183864366346865665418906457941430945448081998341078076929771328228526275918342348190315642898713512628211218621141719202199251385816659581225765992079054653763514234643215445786747180306162316855590993313020385886441553723962720260122705236304026613326746337002754611696222157077987996301759614139527729675251888529300079033094418336054590333929266290924841906037639711684600871518191990062232908912221063801334129254748816368887784342113753984320025155939091865576451221948738098783963731512657158204986591002199845792449975589138650404914731017405873343518825104078112359921635623462786517162886536393111429977405289835896368692568256838743522553385475796969400219289228074197024354508943915697222667020644934457984803008405116787000169012693568141180035322058712415982849187686839362227947091178080987419512432667082009821349573528797994581100169591707084729453800689201823916211790870427195601335749464933790579482152830720892620648024660139890112541163223611619593145662708603064241880865977748676990179628410474753971770636327074260105818307861900132430751979644520802531537080936620008996185802220060014297896451144873405665239228925727201942080481245330066334723570205518006174152103003075384592213263463384593856283748825312714472746927379007421691049290241026003216266262239861634191339894821602449423001514455561598564093175636924747763961313335200871872104312796704382732658950622029671595076434149595321035203007272392548208622780583512266265771298020980341212334184559115586628089207994923768272104467591309635438362118424157447303563293597291140061762097780225722709940332377868204588550385458773945332557451762252516700287597314038379120980729948565862000470160929358200781074914696927164330288848694680635829454860507110554651823898116004086460473949034258278411354204751844363138185579445172116523461623598617269598351842103134499716908327079144076562995890185211245964513477821802485332573736024007811056523321066489579565179645442459509024148655336106331114502822026332351240409930275252693755671634089141312112315130527342462677139233589519869601461718893295527268052620691171805125862526363876675613107283883499568461750986665568856574347234568014834912931202166722908778253196628196700929475854772316478449888287885510057360507814898253866865483924536301744898019537117356817443602083066069286002936078697115208039283921433425523061078131170497721116103611628774925430722273549770665392468732507082327009693470955665613915994670531507712161759896924673359183900801312490666190636202741206225543839028386241475524664107263906738677476040854205599758937878037715100996352910328311835265566266743908340872297557222463475268486391256770325947664579901227897838314559872832765487988135216423420084429378248323895258451064365574001656518927828333003385745881987491782356708115037766448451808075169185861965899410757642943160420263289973473344345020838929862196964699111244438461386625807331102236096555726233017897469439583141617994241516007148426059219527835700435321390672608567502745545686360128839820569102717448973885756843600338684895913630331862820018440149605868473552205114504894469893832451169937219532388350690380521261298949411343014858075138806693626524058037893218945268939051569035779473915541669842458011234797941243150120791263565527898695196826640986160367626430136214399430455224338876925562783501527492128709170362750446755064169998431644777153175691152591677655416667255303548915265370363255907339241387717891359813195641428538405133194446208536962383589245978025348212325268189125450079752217058246892169396808815315536688411440543398678595931155994266512879822766609011375611886587569860798525781928910515856818344235328733255278825895531917681550682090740526991770393856787961906333576169501683700351445835706817773779827849986652460634656359025605590558252634386314409038191964667519645679788755475355056837289166647290121326427847768525683663601950432530861011497455823608174281267941095668207577657633002509980364563895805965560249895064679771374244174061358815194243610987696082228326774830423454697335430496904094924898601278496944313716200126864481972665728926482768846895602401865099854213005129023205399440301000052357131326218239910714372432933082699926685723523344033983906933984268819539061089370359118648313491661866358071274662129768176322773776940801129039541096370445950759432026415543301772735426720133938679830401713704374617333781347184435031514161887345047542752025904381566770635447218338827959801114123596989266443724379988993989483910115650925842983258280255360763706762568890910767126225436031536021145582398141050062582858147790118244934803980112864752577867496652858680563573040053544038868628298324687398744215658602234644958114350251335154797860330279445326123338316080246723236694468973822737394055298810789877868963978693006429439808895812811237945743105276527180646952265816277688261960262961633518012531123912111139374132831136100504293416274142365411150615705794191190565299520003458598250679702319272248893445454091067216115017986501696164404684154136437540490755085470463914084561358028526877923047968575097909390637541603250508028121456915283052962267098604300475370808236895674855299209391259285484215144278908425539515243017270392780969906885578332696606422859921274677655335918834349955545186392911580589437151063361837959742274860857649235284654396361452179914082185918901471340868694070294072271700496358506134343344877265832847817650749668168425229979397822146082536571557699919505885601688710024840733831080257978139569623617376413970766152526948822567162927066255796838148937362970569223355886015775472592815943316118843898748927659984323013130665643027527741266514455861860030834982761656240239871286470391814364561632575115469576547432702221114356611400118583875974801167408154659241177644723302108224264864694362576943589231162723189254081034685587842402533241549951979992034946128783730569887994479833192664683574328848911900085934277063567173054502400013771294127193173554558962599748866558882357838812132074590640425274811042029839034747034520553873081679134365303227186797797861236525451760407969572457753663467828337462197320903639629836116903877713562734366655377221084894380690003236060945814957114552696400985525529481969133610543950995326151249689639973935513531513121767462984363991179798150726471251192384497590975835904740576702103288568674784858312928374347193718334952830193800443517310050228879211030243226249136405663046573965290797273510294681828027098426927450421067984788997137667893501084108594819644955759800417644088693639780164475515946993873049224557577199257747444615890874427568802203198518519804674658846073958127373770889823293927058472201601345711956906820310217208114426536197193665961756339192447534658169249091896564629019457569042427429048719330880878733651480661829065070071208653818582775049725056980374925195252647483688162497723159824361112353797731048076023036215261040567621703645710247003335654366106180540891622566872222449293482972755697462360089014118211208383482928362278051019035434642235359584888061151923899450318379746395349800314024380528479864491458321319884708541058365682625709551948944497298957920219370163262502734283796609092837488953017777428252800808840513673987821804381396293994913850795519498286855747200887995927329108086658151130774056479571513976303441259276199945397970524718957649627929896577923942525768382785350844385883166308638498021256108284763815762512255754464336131757304803143174965490026357086315959526108139982415212427307363506016684464733726029755076877184459862655626322431954776166013957712726560633149483259569370878468060744267651773694888400404038442420550912018923937999868594971076298886101067515492995447947471883123274714093630364321488475463112230579496498729335054506879307700708527425169511410366091460694598888500932040502462613150659980698474369996123114561842012474633235624494432126439959940977039098836300748360581370351614392305286354493655506407526481739552456528429295856640487350528007467183193465737577380516219984411264676916734606636679529841061086453602183991636071650429660174148076941556335214916746246281474283190337378079767096811593164683829335740414159383933497524078848872615377840588429106235088750091666783754766260192634386531299055302794634443823975584886622515573565385180869661224941953914670669136240357986882733027857021829226069727232452598537552922525670141770169141969089260618294492841344025297088874644181475365588685405276665812503034951880132318241476574095019786730052394757727264145361738822615945752472126122805627397889851488062047720243250985218626910154633806884248412478128549320276861894209970718354818452001639816091744928007472204196996225071772228534616578966377323030405129114417039919311307545695381174890047847396493165459352629659174338894095314576551959191888224629268704124270694848640724978580967518912092572466596368209651965853899550293119685264432479648457775627159139433455408385317900794744606659563841132143130803645809189278173144577761850619144013927138662558485479781778359539107615195751759247901351896366091501209274141956782199197955135289053598772638605162349544711356262606053563887792226337777572137263840942950534971630150988428351062807110524462626432856585836568178830610145841216657304865663439722741872501369316390403951338602202374133863406846676802206687556816597728452649344852634435782320423276351049244953825042175657474051072821241541833222421648070985230670694367362888492929913653725496588634744302363757685319909955006838333563114766559534288311714120326003071771424127090939125527244270347803953137057633908646170406694038742831730772652467114457735862730498531534439802537528538627320060469618505514935960256577875848360228927045462138535782776368062339082913437918945027440680524768384292175438510786712101879074734856976817622687076939790043609687802341204757546620304762018676217222150768156364049519062832478066401605739930850958088306931629812329796140052550471674056446469222651008429680854840238353193276953690875467698695607323698343266324629932537291789049027985684120083553073414423787944214582819951114477477388076172880486216087756556824149704986244355444491623523152842593504505798065054566760226583249676711473727715163743166218254065337553429325952545099426114582291316899201573107489011895289400367099775608791237596758083799322372531277017156076619168055163855013723452000307441265602276244620186724918796632553361779141678232955259214515847600860271092819540276920270005649752718623148932858635427562924573617848847268372900424056898672562314734376678088398927852560983534999584013618690000229359869072316322728969614723827960138423834620965481991858222521093796975027263002074252472753930979008217916335724699232169271223576357074418218834129634493857422965989482971042558023039388738847877221735805900711037226363329248595569346613094924138015530060794074559530140036014897799713572902844025173427486062981147946681017519345911591674052035544765182556695275399467778249203030922828494230860466025229607388282189911034433566623892413771488991126631446966097831581844381771304900571417512176222583537304872214861044744335450715503347210014519379828249460342995918102830813984921111738162287690119883222301161575546614590714379411002776402351283689837159482320338132540484951101719487493852627916104265101173361613696432195812619630751364854816043757370258059165866194229016710171407413114201507815839514701627860938998190738015534729138227375142766428476573584187372658291892251824606908361404931307121697542829020156135239630341545645661837078685226106057242439233173455450958215157432768372559346891810307536180648690952796786695725107396417171972555942876256401708646416274625634438643620136276505593779142254574703830036402041461520119566927850780404752710319519477306903567735970926113808431666960793689998270434435124165403085229133675819296536950750486578108692032184327268875289401085889568278675843654131690005121236483282732288603987502320099476840105938660697636920919387559471856377301070730533939851421594433872498988763530197076605879214808424393449118038650875930208316074467214533079800064993253094486713517847085959209411772214823136238634957482213554058474086224649171419828391491836143881766782932035822921686215868013031330749487218565289476704515260968685776788908647751879853647052031767906226832625106398782736749522615465988472833140187993513513377910670370815083517144363490879580874320833209844629280042591081680517523046504082081808380499843625613360285794867262062354007369848320229589572711121000532519429251056934984374221943604659485133156330108105684477484467871717819091843389373115278479200309629387955365639990445006388260265334706083482298587170449228865295271388060774616010132921122679047862273103667124771480340083275323082956356449420832884028877377242308387980735272962428961692411813788119207233642730050425901409553627625417894791519137976495892578829376605031680816198937940739101612705140133491202662423916105810072850040871970635124745141103326977805194973652433223566005499749753075715194516349041251862460463004210045695207547731621883055617430419659248051542594667348136062949501416639642040236942166882890218162305528413601785988927992420504472586843409905498884387614469510373243502671281314411082255391328057432903886052279848154222964874118223218504447169962306093787402037786072073322293977513351999761661168975331951029335708620843438090200591287082598960685871406430455000805246944858023498167963410641163073964597640372727530218774333494936839745272816179327154773449754696470561637337412213369753620799582991181432489796406933926673885713140083777753121844247930756547356106018598388522473532823931715940394714449559607669165561303225538658497626049452872387733018168985036827325410315350251629098066962890305292451048821069234212556653689816534862204306967401202115586309698159070646283509952909790600963243200713041081800306842987761396880356505004269992841460784747773724970244733578261954832973356963041702455058997423055930862477691936126878991503541332327382791256826490650630617095532983134575519480639178381554872463351774805842644412247247701383227923158989035787400724753595714115991368797210992396823194776331592192734570510163216208523600062707922666164938933801988057042720260999155650135835343577183700113657718021244455125490485924037085925545183271404428008493581447475627510636284629742860988169663612614034623368798698577945040519884227049801715755784003626924469896973493419276274905743507071729214894768365030032963488527500202398829362834993692303381226575357165518074926868248125388754450253722356432146405491463798570469252366747304011030994951394665558403330933393284977678612349877433265727242790220457377860942663866155487896215232489507729860692733644686534223700007430058225106533198379743100511231689791817967137005717038739242107822314373459071764433975947020119428158024805031884158394272184281718802148473417630523607153923701559355690624580720589308487279196259867905964502334330601350160766368131182836382209088746620886575563977652361163337963431426270366262598559558940668554464284303878792532291475400326864236652990203189230874834077621616879554481054601225392992781064660920588328780224663319650979843360529925560965230193842010155125164706798583452075341613769797159918062591831865204317023817923935239513254133107054736445550701253402362882873145750145971476872337824227192900591558505137110585709135976823449016275545063769195971198305709027583589737041986361473671210241052346861352537027695034412583676388069407012751809504791621742964486200489945477177418810838323777979199637417356282368133794986181956100061071267247633313670809102186703749112233659097295952738974620483148494375340139521062098300382278194836723126335464225037376730069320382369595633273310030114953371539243025678455212830565038588389486373739537461405663470206301498328812298955737496111457586747861076650923412755651724981277853466440858518087717944217752257567566849540118487799232642925736334868274629877271457298804400046730481291855760517088044155004334503567272954307550405462404472596861572837936998688690727536643803509284613586202795828167238702087518784446512809407746014521479864565489360179466731563220591098412684061880829828477860092972044364504597004368691423056059819184645007770105469008771259927793019074616264318139792607958773889359500936749887874726606857518686343719917269687272778559916685200851678953053170837600595328512865998686324661861506300807632843372380575386368170743682144676937315946034955248372201240613840017377384061999282125864504393848554678759931662267524835051539541514164722770245755991529735416875930751819022932425425031839464787585640028371664113106046347360524234864796042894422802790214703743677760019554183352172858048954565029551899646043571008464533369404045450953767954284884714238455172246911083869132791349405204748053652455317123057492033115848779373654988559922227316388604763951221876656011813441871011557259774065166796766469129933895928715554366443342709361035444983601302900194837753739309322683196686479537014529484889996580552770350340872626691524554046354096897035254054820016332320830558523610176275693710639740375320962495151819026894438291325696846337733475436702448771154325201707272768069978718631790196677826428938428557525464831146728697037052976274950503896232591084997921153211416608604431643470132718282626357445890630039303173792201077652677815017263381443191240639003381504333845654176914397539117783820612159706280718400341228103821693314381902041253868151144344200422793282415808116430814340521404496691333128917402699466532447253506499471430358640717802947205363092478972111636974523546081986994750070348534993788025213992835571354130974812591713371854089748969641919634478084868407336095688944543246629399700727792969411340708227108397680861490486823206325612198590432992494939511160185158440434505429865329885360359527818532990557992150394435337761364885613397405835481513803558642525838540517565933244015944533751551006713904330558750819008908222326827434128774934153354043935189633317288213599994678671621429498344168007438435974530179078343728028861483036236736435670681660607336887158705947176500138202941708461066545106511239028214777517628925016371207893610053890799946401751751782638462305237347726306973623104956102751956455606227535329801720512958814322036074830753912701709389906499422709281901056367091726348109315312026344057175931943540130758130881923867061659886027241463055869453595668821248811664077453342295801363995853514030910434089905256690647651044968558761310852790716193016886965431851768551960792898663621309015683442119646801088326831504946203179623693802316958594106902871202858547243120173560498614987994123391436925069003414853762383032115299878674638032130966381769013236696080483097414396841679398678044387765067623144543244280718305860420912390274762486899579452568899184036491263152980710285162574279915336621194815286465302304361056777585329483139651657366220785383073971777814924738123977372726455755804197689359500795012708022009377949461260213311501031589869302429916548761285207697669159598185170388526047806752900313563470919828966336701045077182751268906283699927141770485859883738515316731937397506526805386424068519363981194776618635038198974148932145462380455194311520455508551262551518304610362033528392458242561773983015533586973953354769340406924765329350276814634067390834241213572515064745427879385779912898338920392732527177201766910309869064139374660165160676290561654199180730272788677986574981635498160607350402977589829047232765190460238690896237289999510754352121738285100765755070404442866263058053669336264128657583280687539678311302524645872381937509947282595016175879063651141947674534374505883275403831880141538257235443987541858941157545646719455792631187405475464465967674974341359957841074102735831152920218344751794739663809061083946045609667347739799687980567089963782432238801151280702628583211771284612801287109163074082276795039134476301418171947365495316052344333782938334345733451915060715879030782466779316299768677048799512992255248465168666876991887200704005659154358914685436322891914827332644722133991690423341633784404142747624872208877917328773628405758853848447904782988513700165251054521376300249568521877019432860386179929164309878861940571025715347257808545042558108197840577230118594940786458958048969766425656771059093981413310083861700466602421089345506470403231567651765615419265728336524237007353468781897521189824696690427393322034199671958390153498098161907217993730312435958380080716786025476091961595040479564992833506308588299104549377203054880717580265008090551059417983449229521008111272303769014926093892674742104866377830079601805022954530886122198894772571651238363867461755162804300388064061943552464777190739174176680047702562248172651607131142380441701547125225683892024277583110830502666787355205240693598002855108220960730725056861882087650263727499142981232844843161254028599568395549865991531885851528141999801734029883374385916366896027801915898365759486908738022623500581168208087083789911936813838438843627635620226145257123359446420366005826558622762063981039527097261704062296093770307323088896026219304022658386500964440814999441649307499943142047422704737587629931377726765176780783835899158882700984225709198990521091844313079520670458196691360024759986647907927839892181219495797708109388055977898994237730130726653754590354236287024844105571798250968661878184173136758934129604579166976250278630633191202948424151442295884872463850744700933350954623823260488634357832511606802943880371690062846885111886193599752876851784966028442920760200903677579327489342009076142814452880088931238462271097489902497639793669650589737613833334987211198832661988995819307309041123028198730765071690475871936405953976149381102686306391219471734272966870735762419179289083646248268592255247849130103401104110594536577645363447419878279028415404746573587198342684889028904821024364341146169859311425838401705163855735690267785140573563300279985677061879879540674510406520202199562143562365233965587454351912638128100409282044740647492297166378623373298140186447467444712122058876052081216682468040552879363718006475693595937766888213222027545432459101572006558236699373102782484305976756058001975772834673030828132371995142979782698498116476889580159015046208121073492711987433936400354999071005223275826422536148751097113464618667450036398128824228875130160370784116358423095263427089352707247426855817350603491119476182729982353630623342997761365192591029134538923728469972385381212663817369730784780637518393509792233361909758910814007346328606514485029501050866143152927489211918093885474178629896002768312749598692560523421976404141247904161025353906857337520020788353222225921544709819252588186735408184670684887553339808728992135716558627037856029729787766283924101960722647858553962779775535015950565407932102565158141537092540047832480878696134789323701788206630497382784061666567395411343338652739470975126308723952772193855222104885339260726169671655730632775234469090411067604246895359501822581621378034119704622086474606702647423736799734731744456459295978218782719393071402270730569347880591570579658152882579417749057240232323383792115609505741062469146453223545535458819720517264905117692890801317920158941463005476039391103495973343996176215061806554977099935665850952453189238603013147105938887533539829972027775640302855331739392671909825883887793641768534981090366922811484506879290491229594888698394088076408078984897525131661798118854486431736837087034194032017236706423764936858809405847833267726224900249755048487604792108935009196046923350342707798449261934682657400871973266125212044319484489502998739037129564932940858787183004244703989321626010627450627911042947548153330381571677661317074354077305091671169310083484117329878591228367850338798306390957829041607829319712493647393703233565424184488685198900297664452848849742079876505756223058560199186471658403257285523439938891921883493696522259087774187281276087468997126885916676237492051107911736897366917469191409622023762734307848667086942035199593930266326599569040241194680340176538297077888523727163630968294320511103515403587902463589916029436096224853441175633043598445709411913450293938163525727095168813000098510046149478095736619557592073730681866740980052404149118851930332461684960909196236909142871483665188480669238531309908834247929075538736640500551462287002208003890768243192710887576707293400349289008229699887010834757009163170219226077870912947300015739106627361457189024826624764892096969187953768758119047405050558308782466772622971321700661790075876385764908274910921903523561121019230565478240924014702448947872642218394343673945712725861745586831125506385710356889689355673147615796101222356846687811948896408363468492898271985791054857137218215704147334995383670062488477388592380608276677661968008840174423664560556204079715646088956464674328929784547035036583757266746570990784562859882702578217180789263057561531720762076622369946406742066301056466183864513836468950206456530743310290366216915060462284871821118825461346556584846484431468867395664791095845002460828476158812559331195019327263283392239855167814109756454219922539874095444440866639549938737301279396141794669356466963603762939617502736174912455019177853418302170243929845930276038864574223679114111279371852958446515849254556449051475000305072939109698823621740691779491934371996119142903805788669304404809333311133567912496739363036704694655866807045963862571020627546201997804554804645960767438872308718084694322800598162048340611219396021359398769012561470724192075642143901125484229894923308131781809925691933629794213947517418083187838150917476910166520566349333049594548732857956046969650340525269264315478658933718749528049678219494239241049182634187525955553790364622200841941966748877768249941836290014687529769615221430402404910644871478794487343012988276848474737770696846027759714712006893361854362237941731472472405976264765976023097786583606029743947322020184913237606403680692152298362191439711187492794507385637867717087003133343493893013874036121780516996594429857288219646826887020915362989468432508409710490608004969322494947647595807540761450126682595427793675917386266171331698067971674395484621003888836642206437538031753130897391320498653530779835620016965992038423938121256513023823552211877284744404942507825456646318269470970008448089641368871336214690921186259520387420663186183008531869770906774407150443806044926812263437407624358077275602170504483466431026854919558056993050653651049167396462119689764089251553510765117423990771557273607095874780383308968205292442916897280801130320943510104802703477968673520037665249549734437470995068456202565681237966888975224293504258294524801771379098150239217128750808652687365462617401220067684851985020121326773142928160038626510797416405775128935982624039475896398431459591839094130432081048515127518872381274204453470937343018641553926299824289757683062665441706341256702549844058351081396364476526863929761302899298484533240766305859734447321556140747811468989115110993793794414294062082758110743485267021886057829372432658930019170425824204321233816879187322126771680579782118603986547985178836220810390628563055469793352406484827230382424411942211968445460421503038448639409965414934393269162166094006772472490910520650301489201624809012368007073995856945383230987287440034026100361571177885322118832878846885421629271846171495956027786968917655425822056676644711460680573138839757241678561584720487650046558557897421869340842285308834304217812167614478491864372072794808265410211101011000128015030178429892519539759105932846472545740367647504533494959202060915604218212912053789606188695130397258855057610469724628257521751100096797997040342461087467688047856704479678225801153088649358008544558640559284623220802322957108133027907108398500177491867243767299142674062486479797774728766404614152823286830312209524927407035698083261637770333665167133777316910963905768800414275142593725245918065084774976262367106755460975059372873274810840850435510471572546082269734447289445732317667129709637452857261679866180802195029090283124271673680571037095477647983527149374697519396116650776287562375249390526452348060852427669679180181821015678038545273920873296626368816549162118399141379105496346302283043817706789477596194169032517476234212234155135794787568375945848029002962309445355993889965677224669444534124062569042208490870627360748623086058288983812319057698570756091259644992061014115011041495496564714455171775866106431659242654856249786756092714707484720533532038767868596850843895787813792057946996888504746014712596945952724707320482973120221060125082289048029918475896743721337897493735725489297954675371287512688190892068243395622420966227212293739367410633746781536580892903176641947746347309561297930081585906716112167992219111502237699292166121142785874742577822951332876003159825993301419303972588690630902250303454684450840275859142918758603309181083539607296999055405423445147834433656247463267910058458526040107312800559904579744065190911016426459792880160258716911612702456154024002276026095711045962982075036415252149695930567768481721037452853941814172415793556990071762001337942500403953495616283946635851403149293632739415457300517171514843420871365831762833888507071400337334539356517235322699130181929252459361152040620660804313873334635932068834944805054550892477887403479904565324442483972006330032483734824856651819794957629778333061614323930333763460722493691012278872614778741182177041876684085299285890416190666156552879305341605100732673503257491366198227685762172526020005888427306537366707087237114935955213122158776545672365932648279039633141307133673991886475686340767390921072117103969039733274046396589559309587354154136246806604647358218923052406595672621357063383559302612786899235355945461262012054761965505114781557802615953651923893854013691068791953159609102635218677996492078710620674475664185796121630761952393303063385588824382257225751662111204586619074041539523576326134799420709798584160592452453415052369804931757729346835726847418042152960640091845354082452636335494013438594661714568827910619059779905159469022316350353643709286017364104165997490028074678068845603741033327339737031347328432332970275408210809793396755414755699685023656234597863551686105951702712909144191112427213700061534012747276062077293559072087373877979518648392501368722065822208565917531787395861162107284976240776362753385809142211050828421468784810423775901273342198571807806066466463631164176417350206403291671761541946197563787096341505336997513831338810998714619005003929747881314456517773627797637025238241867721837110880595461395869783118595652633312848601551494018275403301539369002977493464355323124792020474184947675413547106037945706865811124783645651184430695083999892806768585555148664913997855375176476178413503731829187659873771581941328569740509748934564923132097623504219615451134707219655351346762740402303518032947278892591662963379952948164012838422198511354887473098245685970003403043657074215919992491986264566245672302128753875555195319622331444091443185591293524706007936709243931499039717763745215632197719994141116629193311027444507090696709085836212125224744749220782363946952581417421570883143308824421805582445471995205580676734298834493220395110320193526181191381133153024006358652405688118486410652874424445901243724983312045920850606932090662917222654177482008954347783130550007257436983470135187378667266447290239141025995316283577888519987700843520039885385950050219447317904779283337444016494531559573044977788149552832775290314457132408510832571173801246857107976354467935413564699509010165238466498450210825038340412493340365438401762973972704357296332428479090404955552485879177380618232027105053891930044030202443422468372189713917309163554158825831418456791531106855663089271457935501186262778446712745862668792328346444035888121399387503797085471959709540516935273613230500946654658568273439782850822950683322610271016105003661075975482260196686877476663951373994227375732546504743880334788255928006662113221969575489665385294011177613951638199853535512539858234726883270871453451304285723368414405909400050447483788280893124262295931621856494120026168407860874952274303217815516305622672106931982865632263167188870487002177037500733266033722494605993866901904212410870563248180730517104036742930822474198381424800814083429101285883381642340436974690337435940475618262072980693002201407056418729843823284621886713935527008345003517733078220198679895195436326337038398834557604357188346140408272609645183887712636498050459095499943974146554088420336327457459516276022498072712192600090414039625105636577289768957417706109501789510093196575946766159843478358814461583432013693480380162791093404360649159951755556394561223732056162415678521441288930424623298889028575934287900939698855906345756556260048177750516821296976484551150860355710395991228172213753603493490991492065547618627888780450625915261617562665133432210200558511536168304306729333200206547794430989184385351783607301237638238315926165213335879099698686494729840683359953764244282064483381754061795560633964221867064413109042017741570454828462354165768854072265894829394492400601948576455553380463582522677577911985126662717134146449797152227479262727983160510422320728154834446477258956512244627646105449793008089505628086421364855910524592505539754498373270192654613059631116623875803280693301377434031682016115783549869533919658413093440544272941376893239789144607846464470184181478979863169256977483310103974448312070158356679070160802584296006987561562660757328853160357119197406725991618611887241912440641298457552359221508465737917863171166495699520176561997153607551139308062803095247674677941920646158608910359162007538657335040327179316631151424074213253757585261558368042618527031259118632138518319881669643252538586867221346115037048624492934458742673862446409962791247281844694398407222039426474824474899641671025907118147518027987730445743391864552583561757928990323383430626750276434580217430057447846642131325367145517905769132478712718357734559447505256185101818559421996296493395257186854611628337903872813826324741760383157888548759860538198625707713023586811693287686045207264685832382588564432082872268897400661794766690057256136032430873542205093943465051474581676955385188629463205617018267098116058589046167831677920295354234324594201102923927665255027700731048191339359878130654878136273899443888006973983747978691922065022099298227200066470757157135290587769228777651512992577006168914385850353586698480272873130912983869221564248698908129503046120353292406287885428971200346031808107384766699361063900561288973742145799379819646937821690239865864756171084909644482325522705296539173662659806645944385314097118801948761062440453801914312470450021226232632791160493291647418411532588398106220715462595218663042415177438084767218145042222873959325429181752390171423194329895405082695021735136451505779930261546656858962622550831481629671514450277671465128593782061171619565321122835330784565407991236249604521962640232760750220199509531472275198667151143324050659631360730228621005275281818869304106835348629936157955255805272430760868055002255800893905320886687132996776713245647768257175278458302357935749403201126832025497730645106469576222123924182242842575665369919485188910901192380889550484317054570574056199098094832044163387669056588689792617539853596685562661028049328612879633338349444245881949238386252499646869405541031995029069466231068329082699103517465261166920632126078843372999359662103954150456136783757159835362903483972737812484807149456528543136880941445897437341885826878021442800027932394570995531151272013130357825036564603031963389644847684293172305163325269757094100699046652984070430743683711975090380608961100465884008807045849957772454075179403669856117529271483184771846803395854107692501732283277062964169518364433947296145017507034233510092818024782250813316588058292652693216195265737937309654534885994487910085292399904004902043834203309576701929944983757608840788087918829399464452824247469805033913272634042538168397089890529205164538320895203566955810806154745928625510416185397284641604138249024535520726997243531343365173384460968612156715601094805002308777936419299363105773134417118548019024686987863616598750864036551431562825906841856837827284396591149443990207649184808614891117983974008976479358271150485822993306924401531794828411535779357149603690611741687040920997746149353992745999730676106249098402055523403716653000612975650297511850282068777213125324867912765412765034488811815218988294862986764255347772251822066414381275248711214270197635891396681578150778132492174122474199099304568149040626533281156568234851437249141159108617434115401919641159616505816317201098780471367835923643985545678801637314827210673766689314258705676215470149784506225357363494496301543593593734993834441271845374287298217407916338634895621082423254295888153169179675018686213842219600159436193209418085558401961907843056621673731337857561329450709587848466155391083440568049440340874132737027609269669815131940482258081340283418207741653802558952040764253417929631174951812493514045845443287465724894093501314788715548764897929403921133450070124708187023375374136025445668045796783895062184912329094653756540059270477190197750477182785171065988764442288936485829076391553664928023807204702470821031168764630857622783217916026304948991316884568128395875573870821831372122653821624402366618880076526406327388157849353576604321065488755179008907374772516047821960290385225563386722802339360566348639453384379812215294910644804925401021313709825768491724708624548323112732109331287090464956577714640406287677032175520125401585907431335812656493997944120774551808160097418389036887533899835929357299763509792665502274396045735211516503811700446687591351832889286074013005162398776192376102340699829729491438989987153845112750866286631204613173254067029112694334737247712927882709056823756557851486993774051521365873678455623994354273374467279040246159259162305391577780999645896687127692872900653945404777569699315405763476591931529861271800771726562488905845387741116294782527961432288075682734483360828150000235998787319024521533799886111272637918263207926244345403794231118988417086853482398393933625977692896260742871167549720047968448341418846301446136291907979124327695283565736486632984734385847739371375092857736223320999429233788777658172506789899075483674588008842091771376827799580177513653397405733896035074674917272651757569546223786292815492880780693198635250050872768665248537241985636971710459212892413264274189164732198267512196143090434042758801882332632666803321597530220344099745135376852417342860836319121254397567112593280157680803128723034644143588819395213866417479294909886565416358764271220926066703514006755276412580173739921895844385929221765420695235755503051149314460802997247802936822835689641568368994585282981047827228852669903822618106976994569541844146780463074299654333412094803866904343175613048302560542732485814845092894431041113810245267017631466690151000747284615453287371825665584655452796187608472416387202744082605691247926775677790494780502266693511277173777345431352379729804520204796392936077482337525055838649622630312537372426292944791798715079477254459795759281447328176160030378095814913811294727009408597355913310577427018765364091686000808350507086275348933759949765667061550537033498960713518830221049360933417948861808356152690954515708360820491534182111908928123757835959870025256135052386806839918836693670164457822911315466016289981148934961800139716457591486013224818947201851388707210603068883434036549102229513358213090009146245757391335458328096749003530117674702053192986574694787131737004351980674110916914647083497336368878778900831861919111160687103731712697469933928145694388441921416106977209682215525051309006601996095784206843732916708374516813355131713098892470834185336588642035380029486842636674320376605407566856721625087587162584162270514338396112989473702791401547582882914388421027405022807382084339983973131009390036796219551695699952893807219728620103536017467605185698694875042143715734200013527978405514672872198625818576692297079869239326304351223331367194220700967647609474269010454771544831828037554415264037516763173354071737648183330355684718497073556455584917769224148090893436319203147214170519236935710326211339160836423766567479498845837969140690367529746825673006220565770007010204525926413262996676064972807257525334355884051411582661036514561771790529356402367962854897704159508293881281201953837919036253358252912663229644404661056838029149216967729538897006072303857892217996625108843739447631859980934925434900148648234810622130009392816141699076838069605906533242850992682323353663277016293665159244508055604833174091315892886605353317855295541637417549623972538154307768260364277208336728898457132558801726089670826984001703514007378136868506248931150643209720990823523286160244082071192392664183230300490437397892883349648876106042878366399873997048496356198362315661583700056897517729333586837277927881934580844760772826492883033792460203795308915370311986823863903939175674297920498868014147848516964401796308075516802983147538643734536848976266982611049362412766639230270789188042659081473448103400393587920234281183061905957466113208222905446196363533198639089554691657592046875573734821561166099755417283223671343291937544579790331653767939708067794296024486991448996959075616698769108906601710767996255878056330120478718137896402262807351257706385840509232898541774447847149986993720262724086302439137643086917123735729247330506475628294005773350549007478697041872885583668662302714938612653987261096582778030794789296415956766449605026370971998261493929556134204330065847076730848621747630934873106462560924291130335201114539956028368325289952962399507594498545771094495086173639186903352814170268392776510891914554332278482055149444969080939703091787732542941212354063055444250356030334481326969788408315289617650289490405351774312333925450050474841148469840761208159774563674395038085292949671545824999954058811538028291449524881013101799250997338220309778215496811516947129625923420986442125928755125365628108111852244648101107363627513727252922788759287645655109019701024356523436796865044324155785270264772732450809811284267493300059991622596448184340376821144974326716258830783078552767484114570526305905916217880555223800964954248048951648933995234875147513526635620385275724692980608224165072996508106934627880117146157601530839950611301546815310918617157735161514017800902154244474158879427705830593566052396771464993606060965756994777993798215132573548708464636859771645117049337276505497248567145776099737594668219694552629425504551083449083994233518001215983255064270064141847669538109295454624530399648657922076894798292911797074187342996877231912838527990196685353086742373793613531484460311001272318242994291905561866906427480535941747070441108012944672748503252468866028732194689901043547587329476051911345794479264893167929055085202742059992069580807309578029390832712712438920113066418507820871198501825011235980678484078593462157106556179517322769500630830770924100031389323982786450606340799136235782561034797831577884884217289243195036978901502129548683375657232694515031377693485299912272562786034465375268827207157345874177546411420552771059172689544831935561146076508161604404940272247224335063324312770861040056260746554044954221153035421989583926556249376833932476967870749263364478037330331665956913098763701855973798674548133240978184505630338615856306459023120260247942181135599523210665845218506711166536315477031039746037730475130933558294195142376222887763773475055422560941670502311470745244751511545722422671701679549081012747864488887434363728001353768544938682563934492998327380305613516488345904071031800805654598974617782035476654097273391806242857245099801715997600190060066167816140504886694692561932776977352166115790557064014104981564518700873838293209754122857166604713901245473048187553402888571466881883941095205235394284271958071271501690686694332338729445085596320282107552996531673252838416111822571572680291760161639759547451966271734173400626847600675741806053734388849225684989461171436806673524156231087012937925793261732094341075157855756775822256950304352977728293571531006593334070675616506900529235089168131394371368639736886591173811813099522883048638690634800505192022515500165613487692649646256527883054619351147043167494242518824634616742451583736947366693598517780667626628355958072632882801345806562109844860771569664676684122710178211324258247833505055268118392728461476787806199640606014662492261801250475932653970086900141459030764378088497645049282958283511816086107923020637693687968592995364665045956375304116535580113663669074198055382988041094404133216994321600760504454015000307844448915046904004232271182686084211536525939536710649320549579280360281453995618525309586146306769707934597401044724895361899989350042100334269380791388177938804983320470000667925411811683425000178368789305112643552728530766748341616856008907976168776365869419932226356240976366493348039042205373329828948780769244399443808066368703705928622614254199193965960830224203954876493139237981891394113811116985144985766303210694860960739193028231332063242079997818603027289727218724633168217842529307191702598659038443323158683165893918026483545401944188439528551278963213955862907813368108326278004476689418719362273351859052366181820936934430962853974263800346149834132932593410435493297852317276715985456838003201361094403430938079558659485252893782844210114294256449041884014341459931969387706846846132332606816950712343364823034427698246532028306480051538054380121566372748869379554538659362961338467639522450333286352754962974806759655667068831138176599294320657375621237389796189236027055427284660212914062943118123322061213426222411707487244635599604369031464755280629700516909808771728380367211345201814850780921617992724928660892504394519031598834872542262939433108469981856285780988345844302810357024634236621043723523787251396175618332755188723799887046509086084253547132457266797579944128125560370998723523341233588841145539436821749969433071059905565675175739346537660017151330219777864823303314554168075979318286403602456192412261763164447801751333819160848424408957828448053302447452964974337859841498267369868765254237528133444069025433785710080740290856484964761092970092489914838271818571669128609038912131997722021564112885573406820402249245220047026498856585232974346911067840381500340989486232160464313980014977074685758668464285111370619049791264013521516898862374064520598288269763570541849730940176118464382810336235069459018377869457482873451268658660993007028959116258138551514565765706464260755714152578521551191609403614529988974413954016185526802825908229037001407282346220405315182902800813436128394696868032837623144508433830639717260826142339536527076790367511406397286887977155603823448366236674374409477008052409056846856111196111323757009664744567693565728459186749929125553154631696477435309351042279166903486080099468946054211359621290256216594175487202155053172156981601115179666934663273365754181890392496345575677808387736385964950392660898126689485163869938860684727644896262170454858692849640158975118671377774229192401460480133403798164224596827692682000312824311853847963135295495144946356822752208847051538702481065564012844273286630988668300373083882467180147130744046723516631642277804927535911109567963237992082066812626469263568026711352002784868214818355979567685461895390611524118300905408963022871267037692123805039065340323236505467096180196392697832072524938804310784286968299518679353454018598906726977740390088549289206486600661048002751048911629501402953150028698513344981688566999574465712721884929350431759325444732906110455473119980419015007951158827068169254312703942781143223213502967450862501002346567404246396555072596932584789044110141992415289327053909957793005635488810430512707681095956328351285606666032062949746088019877921968317210986780151359808000180836212570674375782387168416115377561082135422774796581570179176949838698656858618421132611252835769627701487475039200133267974768967311074097884128161030610552376394622303555454700750329938138629817616902619786814076704495172315563092820696716420675773352521566812721076736486314681821571961328647263435086990669839956903492343565205892638631219956861152958916852678358962442871877327163880664077247508396303002192343393086220982462384750100928093101320705919818019407662613936589725874394822708232347455100129552828073551173422014131023823761071417529740265040253303410143361686666966258862621316829537407474200600052816297514983199960777497987383975666984814085651433263121854951404750917384748015430991070032874941318099887190625264001440166739843117876959937570393835301455480969955752542419909027075137178285904604078890158965497723855376101489588144978022734427519377146407026846907208063797323961131481827871485437401856442738988659804326278502821261035000295463208598621321880340265620985626926919457754390604717710539869904988601400460577614778790990615702994488439434152021982597362463233614541801790860720518573792460001686108725919945553999272280355640502705958844693524208812805052186769565136034385227282541389953129624242709061177656337166401979041972802240698363666155761659442664714274863577717602156746830206924357781485767327780810760590722088905696844065683304166009537338634361251219161051976609148412109665874295928686773837202502114605105731899340156374779401869975542858718090524007815596614679698675187440543800583331150049182359636615711528821529809092188130422553125204225686250234340104515146751802301801538183046551813047444079468205668222822380479702080658020359586835455108175032082853790899793712600107719160108303742745674577709756662079876960922650358833922803431144087669547289824917266154512609241884048522734146120181227640457183260875821317601086512717214184964365862689433895787904413618024526919798666130967880207447874321658102079735356248499314504440169543383958654513436621514372676236128371996534353870431568905552964332043176192005771979633523850435374218108961673801338884412360618400326321288018437517880154879593378551496717857745114836463019360093629244937442827113673411966083010110442936367110783524429354214859315550767410126301268962107038420924572582150817225192570299473893016294849155632880202819044111363865596304874385666141070976085614817378441057979259775394702395070995796802463011963426221260091566177105053249693190073555872755267635870469280948908278966199175150593737538711645843413473467778146757548132157217449780650537768810187640124784838772333364505505797107335603309965959383423279028944099583003441548303166897816508336214205970934819851230238636325719699198633818169474066247091191280256139080136371960549083130089696478858755207546621862446891978108141745809962941155078519997088789626427665086520307634571273944863618517096594027691212308547598152784219178139386733291337872912378718191483006776784471224851952580038400703504099278529276093218995139959293531845924157452014377441137922700264347245978996820964791293715102973863296450098544676862167569345640185860142238109434121664995740848042935419758743477906842350300808337793202179874666570041187345111223156936654891130519494124840365532073213735396351355449977840284404248586688517375719944882336342561563615963047394083457880686492979857063870391287505394771813449123840562708836768311263326384853525955341887123154482882951713282127361002929068842688459072556995438382158274386757000869428069875684854100202541239463978992400850466450330075379096435298275391624529430619881767964792588615502289287638710694339979720358170011783495515892801486590919217833902829531641242538272510419232013452085353494812705104081569888066158381690684546882274325789072961082597015669749614831677068704703328584363006560146088344175699084231048551882533375501052292757924445721746014219841195022839014856809773729594960886895552077285672369664431717044306983743591361168734168784747851925565386632491674900542338792022559525047318748532176178292397792620457201061875763717600727448620402626900029418538888031861202809480947874876137693355131204160769711982825343173416734301084965794843560253037989583785507907008560116295392433852747022794995243929120303655620737453537019928135313764212748256881206284789133661271618021978569878273543676295126691206237762908211550482080792903835596912654102111606795619401098841270686250108501984046199013041056122512488664866755656976641455857522914802770379407692998248213019351896799520490159861210944985620264803080356692907986897058941021395903455882315291788226552737315185441618070817066000161851834855990238709616133929917897570306999524886699801816769157749513718188686535031123107848992334897245741498382261647376979023573265472730431967397807122899303385010686663199175407532008688144450416677645018781197632448228444725208639515103237779617629302512049863986843693377662159081492368638813926720813423751146964492201169224808801899371580935984234011267066460719387635617176376816794864584065472980015100987682078684682021351763088572268069259302811021230469861112437817865684709668706441784695575409180478569235380682889865965394900015144970510748292631305569704138682825854040413554510279114454663557396432647001906553254848613468667161005229061935849823272808491155677103165544357267882350758091566369172284103486942786068090467386818254975124496975706960663339118612205274957985122668639192200195412484503294928642455610001332056999786387140823538311346972982824308382669641880377664910097893305048927640223608610436683012475424689920355772983222886926461140111919206007510079380841783495819865079848380927383917624739866161117723784017697751442255261427194736330288997290116412625413690806574581560896732473244585033218814571105032644663037491743481013207473206094956648611493603639043301228289960512113650915386046224652540009197267194988525303723753910032720337539630737410378702337518192849355667723438867285413285940770747912403420927878182482970265299683745839729279638609288245162472257607641783712047262703526921493384337226390765786736949984742655028400984471681712326953277573854379815252980787218694338142801074460865361140794328290220942794191988163681601022304186466310701739408847010194836939919083748364308570434054115049858886569885662663836244791341816937150461632767012469378820578017793899063485715116516052823157681193923924849197270841762863162191426754065739152760960200310997229005968800242896978708793618598225762788441905502383891246078070344261039419848520268536287390503567014793872435730572049690140472558368020373037488120126922906353355570565287936062883130540970019768459671037153306027951021325850795223817800250694812162234110119150466595135313272744985713057896544754953818979282690605779173692588204242851287687503694044612176604222363593735943471280514103858866763629695443250947557810108465585112645340261959589832502315859436651414644741794723842323992916283000365056887060713454567525459990464196194451377895739174118595199741055761691411039628242032968092607331016086293677931566845549357291461572033008302467245717611804031315240112155840976412294463752241714000568128884713879453618916950400410895730228454506361985979763555504714011618001163226636248078868860310770612276184233896392353171792886085192812986052808324361646003983445948206358010824097356821942878628105898091782081676206419409579157515860738031409898839833490392946102217180752197344397111520272744547181805220091638918419808255343533341215349444208412864451121900557376613679110471279265456102786829180619734584358855039741526162943912849198362032741842992868423211008262891170255615538669871869441003962016797122922977349893807695712439490504686094980982750382587222647738366579326116262345509470878241878085464974269104080630085812853453526890222945990437634991190772564099263158584559435753795659609860321220526426029200345999889903686951666586705442476526122262612315271956536863010449816322615116884715977654956928740767048028815886687498408019688691104656748259978449797132687578011932213594952945262303709983188429942911290859258069567112776179301588829696388935144403573648844409144434689266629655174354729229220923415247758284773989229506700555099062119454363909416390668611380665613529324067846569177864173053680231481249154019255889673523186322227947020896832676263547397306470895604933503163274278303555119538755766705595928862001566509203068992271591681018424092366265546236735819007852569681490297706490808205482396461198543811064116418393436966264944261527120380672529245611960142621101076073220549076196149274244840912504937308320500303791255233125998325686299025145434431578575048839580013678089971218278184097725709207134297950303847417850803335061540498329121162362734681396534014698137899184757915479680063123547127436350121112484372623998569314594093859744476733887296686634911057159140335580372032627985005435463694820804169220212461246225164123485304370564154637919017234007979869519454560918849691017858339518966596836746278410267812881870307613576016842727640766181027571229056822913944481747947204972949168010909469849707563521862630808800440890448472612425886297157068184943523458006711719049113057362786777296947829818564310424687946459851702698200516104686057782990605487199966643060959800359909164745284003904011319744243603939901499019560726997065662212986228014975493207494992977973597554793176513840871032055132581116777185179940301963931710657213670747747039700802795788879009062348095279931517432606827400222840676078933551574397155133895512477447195279164998321403962743270678452391943668827654793896405817097969871331954600137506641020289162094777645362427203680975637220460689749523840817903435469845242792225348881016235866102314793492296081510679819375405184235317992068488832221789470517955744231463913116805636735670868909932495262271899127553258074204544715796353990003897031261184953875473543689319820930721943491400177715332452978230300435589110061290047661609819275104912798998776586677101300992591532556179447550566288283321975936986829255546787212383815122294177101488931909279039880889976472074372885249313222843692656685614242927104658646034847019125378118138527525953967738568061282281800395085992512385113859808622225288185376135521127897544386173707500193363837189511097665069209598075441400892031864965723786619484473870407423414163203660188799902151816361059425678291490497328396301341756011911588909134758167193614868554428125304267112597189838671366457265786307155643230243957630659083381186973878541797582344770211216556303449745328205590827433474454086632536747813743764597059036355798389066440592554896569229203978177832066678040781058335015602866103439610641874151525650316809655080819025009813616142642490103686014319170706978316261721801742526505832900788212864093288782745857885123596994120803212129458476945969906793776307608142977154574487189354052708050737012673642946927692158688918236121752326898018291689502032930620409377928347414138561160831142974232261739598706275262983592714110653716364006830829891943755207434175597028572285731566284459783833788486004552086508312263093825177524925969700094433333045124026198187139883873577045721815582457963241789460805602490309229958470752813403026957414128831771092940504425904299592023876136694988367989487550391893720741863541955052775088696822379934663119211665059642881001758741876756442300779530372255831105582735421856596578750401373809175446348221935946265491925909976753575585800862660214402890747388505904004784422890813170590878975896442640582093220208632424881599980178581544095927686311257089136766996545705708454098782678281039342259154500374867448062394584097491377856989775337391706360780709666150346390446510037649725183243577600392045589828917627862552050282926175815844083919365323124463217139029835807435717882385018900937020431453479709283215130192866103773057173773189442486845258998615494656679344056453913363280457190743086579933365355087902421331928511399452692632641354846116795384795001991619284111561310846713381564781072725071726224590731935115583609917704165857043526504750166157066810273322778951421555793420023634598686461239949638650699644988463398983614578452767231773182057031811215275556089898619528432609213254382608476825434329378952199311442963321555479147644519506923882437593624287740751714741735104775758031898498596175189883677891951518478183462193573686913208928382902050979432805160916098784528359888078008901372486660175687984986699263588194004315310600982990062146947160358701920447357818444021078217501733734703640241682422248502302913010879606086686975804107719303418285368110196905619499974584879483068117319043346889985412935253727840907735763255769462003396453120477494531759276463099938277931851116695719595004185949228020736025152484552228623190299742325974507373195204931103302646185196308635534856567068656441748563080701439113100437019628082285889060303889830044209962151699239222543588340103285911512789007755190140073706306158315617829107917611075464016711389008106891053494674747716385802657859922498019635878931204339387074188823304102436576979754637474560906465271826279124702892083099207122954122435215918405245211362512961781537381259163364791054014380691765576083736034792236941855145570156859060280417769859124711160988501335193612294558623102012412890374037846653876141240712897424315886320961915075495958460924431353909513532762473513641584362542262381307349378726407287161935475381739962787326841703505638668563804169117519037061117588554759776576411842682967919145117124534069944836330387274977469109437749701613827898985008593498881504538430245103396144998344602652860309012600321844861256410356185560591885577108586624976365783741895022438794142023696677941814217926627306038928496450223553244830788204236676145216702047649885102519621948725704966009084217366838460062170363705226704300881895118801237711310181362122395266719315450789709439520881596420300877535565216917008377317133320163344272991742794850896660692619577813154562879604067591686959025595042483016466591359389542081120458268416332945004314663702871201135243202713331447154635283055886243153938793469421547395028312277420637861737101699591659597171825152801143926089391142115957482521936600799008756542616519226172854005423703604784844367393359378710578742111538758321763860269910064149618047082867113885603895607648274628699851731208303177065806119119528440966799865963335937408649628986608227588354877284414513662240282496183354428650159635226973703226293526593825398840543480294223530005639256315810579611056490604641203030114320226133100608674786179284191112026177088119755720964496596246059014908119325908054995013505745391114045368279431076279624606345762178720077226722219062890535935998412734101101618678388035445339532700824733640836937975198028605246588762291325580814005390939444352265029620440582945995546144959774203763229619591257500470648652570410132466837411431294013930221378920095046121710619840307502487191139350485219939113190515905973481153453039152805213007325071162372154807692616754355835809113773045736873226510427305059464716991821191570047253821579455274195636529992192548265897359944684187069244276067347260077627961964701151577456127018137082193535392545717379822996138648512402601222644325173752765309818416758754927269500624543936497099773613619142815049403595912323275029746093669751394754914460057353070652566582814944438265902888047020042000253595276678646940439342172897650283394174648427812543996256176731480987064682262234539707469524595477801370867780064591553851036907145524155816825545526000917349110767083661142503853265379978523402486360379854578650207674819184589664338945608895268027355306208589536508041324986688347759780960828732175119579630071672387932504338348649135674150680151498810292965750857584807971531982542455247047622606961724263932338555968715151831861584742883587868484391148014955169775817638925672718688053311963440140912725062409749364106953205074109192631200611299448663312684145263491659247151038186050051021189288429407023681653869686291322722065645936500481575949293715098692239417006935810601354510067974984507640604098300557730223832841292951052136066823198826404978473256111911295250639263485668025580893409378724098691149550504421735116317304935320665621504298198462959251476503338834778208614120242561234294027146213141143893438426552608107230510483322946794288329723571550060989570655219738966692465168898579665159114540802862568757437082438659415489616544215548444919586527594821919782625355233174862183210691321410699095378188598571561128663100954388298300696337128263701761311921549272213429252797437811135450757403068703098329269896886375262958823207931852765045592806006591645548508386061317794811281735126325326113895130708662218012920120265457210190295337668506044481174987817191904007632013466513143167145052442388557144023956377404320047170090955019065654822508800642692212019819201218887653939961985776190226066754775421821636136712677759294436839723202990737297779690480184828557246352727157369877452117546569438963474346626141894273928553658035605925864204351857570134304373492806952377776075070988619901551304434997020530489004207974372263121662750948865438322821086882030846456698818343785525298927482139389705445160666765196628314340735341260698982286814267283403462569645537322494581834970758291165154019409645962144683943722636048521980626853971514855416322636040227957329252713417534106815556351118458467851371187946112618030241311619210281362870579318509568938847936421168188112641697353151867212674339672064239207171388119101016567955522762886642325775366400914893734639113466029700357649359821635775461892142968646175323319872781775963464877599875914605174235171793784564931738122366057634597347415438855308338130057168018010637167532146174785708344216279539087035883528042208423989878504915248477510654008200501033364447591597253021627266484235126180616500010066992835377506032642460813409736003744367268860114688966281030351771404966203795906633394335461673838135207293155916811816238683574985841149134717850682654730769721981666040149972966573054263305502121106835401693179153565716477517029952426272775389875042826648861519268337890491104135263844571126263903834027423374451121072750370940284642615593181979339983497366433297825229937448277858177713008178204559034422218024807086320610361345581365744628917723375116906032448520134712892141470897825751028758584525799605731013539313351609205952765313555907806993526624263404483895376273568598391574691973218463130392254545845646648579428554658696482642427580279608073275600419174692621365922815349246353488859548080800590315717761315591018590654366958299900457841199984693321704685896764309757033591310597273026808288076067531024718333712978967374604735827839054445127070106177028270275415037018309690826973148858408390038886108657845559362657898550641740653390035362028958490723242159020907938604120665331282300597868637799461743446525204064577124500238844104557304773135482810716590505546626138901523403971782104426744654022105111904730950734264675633457935100543623420931828372667643723899899294119312354035438763305853845121726483079908142207735626561113894430237572494277744310428751792507437135516710693745237731748988095709794087704139468425856038707597137720425823760466101271840077593476785544465821289956147239443894685233843470600187145380468561784907575987397592294958352998977398222667511127464354122433447047144868929053061820604633501839151247149766689907085882412242340049627627216203628736443160258535790568383854240225641891816245926835451831807695731751695556228198677336372552074019103649206332574453772494519057170844449380778780530845504970741667562576386480333927635935088088692934674848780535528033234697098330147098088727046899518004430879500335922625306672342672944433305796510194316571797682526296636331745699222412066237451082907248354498050794860192640988662336506033747073626359608097224918789189566909754047397792378311746898120701054011499679907043582788173004460539636968013975863400930963417534798053628760155996143438805390198031377634191628937886119719691594735623667992077608324429599084003170958133723862824642780816948747635585262835951585997352966478723356458893743734329961226087553829198299339568027083636237621654404596484850712576505992887006373168541957399768399259243779882309843990106295678042758626573070611579658066017277103602706437896793839060133512162063994869141066101265147011466229926290126234019551499307220924158832788112220610214127355065759700596786140053932860340025822629992102872143744800082478514679994360542886972145667096231427073848367477904895938300120491311609235771890256209883928086893479980830992138710317066304831072927351212543191552357616299111380127491721989193526218299351687116929315405945531777099973544895981799584137233599629058682773521884875880520091458063306072409691827451810922543672005546336162975052613031229126329471593673012284696478097437546522799321302718600679889492010165218153180667947522419860724408013373854810034462400932804808130251113869442981437802408932167676841988647510645804795311061414185511086753324938062321600341959282317994570247137343730199305631580648393711598121325888782058848165828666254459275692280614555099414285276038503900378139342711305323251239334478310616366539502531829361965261927862527699001124710775996010001504567968325045179429952347836337948346196683802180183286896644623637495768744222516961871638073918962775828221092280791674903255935542451707324339967713748936011306886076225067451715882163037769978445480590502029814658893726734979322478153710662760684063997279479490086088271806944226466926749903629916137467318912398420021760901623358628132597640222546026103010445818557835457933769244530717547467112246530558839690641092667039426650058776802307667303871591261646468230330105358005301959478049611714862949527298050208388727612490718841562835817421478990942025948009070129141931520435981524265271090953292979667293023232835201712092306845850512310340847836081676996612164831328519312249351235376914544862441811886156145774166122717335804770095050528291733887025103559695034348911480354915259381524982934940165774972236660462681526236854193077660940398014314718889542352657374657125524222572205355110146276535076498083344823015844454894798241900242913963062177033983086512450086862925972788194348780192464483682070021550928273275194158862371888830054964485279624647563876582824912630559493652076386958329474430032200096485951636249492177258333537050233125387845726150036859665412209156685637680084743405138950876013701906926759965312195162100613062006600869309563522521909420334262459811010361506025003847759701021082087576271016712486805924767588867531176990633085003401742858563005243581345020162276875625935088485703968944313059077689323894112706760712284324317439451368728859240932657370131539884054343750805643921502919888719899174254265843269806525500013378568225039987940936608842425668507242919211251643859828599634992181962068921553665088747887462645693189185394309996692649350482456817321266574410569245383389252604525474303611969885884917965520109016523521740350728661592722337035311180359333229698968325369403761294901593996964255405704863282207326804754690995810788099027637232620699687131695130382597960073471929925772521322615266450359672945439461072693472313638790532647894340336720998494749708525127557847472507673848782061003465681513821435054961263447630579189920427066346907607796400551405822764962976348815083347599712609082756157945517695611727835841369361903520147206613292458399847468984073741347381343796938049829852373870947395716676017989598633772193685314775400994770072417330008211728571822275829904664093453631580227339466627127004489218257857116822284307003647500409939427736604811470902529720947495710961564532519584185178026715953269576748013067895483621006417897582895904568988746487785195356577719502374538165851482695212034390929828905539728145760657523051494359083336723479105438120954066325980315178203313794319204680999193248898085029163467506741912528252287835722187603675959954278240606046767874835591603503036852674489459894947667111005305861676948084788218578389140178987815395020876294879215966842234420697680340784151376410323986010294805183670986057962350129673882132547166651940510689875441219370580317821018026889464948522403579880096373530949641516119355311459824550813999717740766007135216237570284114584224394835887285181776064699911674071502426740004516462572574144563312636597676449418919268454315997428270407392263662556713994113161805367014260234004145918156875996128863692177854722793209255210436084408724848350971077044589005514010652963099977912220288611424275122326657309261159728293962194370464499262876657889087554373748714927265844305078940897790141768656966815736875960397098442753236537494987965599331608965035802720460277993198480393357112473018261427801134249547581098151048430561492136511022902672376766620264887826785227460077892521577937349899568302898485669811469798232073567625510200931741187134786555078183306455551415829747530235098986161813287750012284658902099370596063810190159869458594300830300086151094419074559074202789413692623448994415800980228525414130214786787832831013667740153901204283235684683283123296328424964146958473392910527657539577850402514839069379631214704672442237810842094595389291389710856168945324789912095349227679105142804833976991573155040680068531162616895306141676575926203857617636125064440911748089867308868706112499449151219883429679567720563375089364830713338114181017327869753558071748313986541081143187559898791258279212824343291558883713208796982695407159926589076744850491071066140197091684932700493573796589542484145955487593645899843962230157036362004467790359934489531912442581382839509705185319303885032985307801206201469758588404740126938295972523359674239227013361762136832422895123112961253614851384341726474570738765447955260758945130714934174722459796450155062918226472982308894018378247913908912397383357005663565447378574537699146010477989864713571182895316973620209165708952358380691039391885770632994671755553826199372532192198855396150132200303819717930256230100837207974000743708487853765171710198975298066862177421619976417649364707221565801363241350173930056930591724234039040521314260557630526398291519253098884008137358285988973606523990451104281941332930173202960886069976586833481606547641317727278226753299768288822458094425035802356947078383549616213412995130490735330389381988081208154473293749814030620519582483414024141733591428521209649880909882978577414721768524204879292956610355588393487838009519547957001880873744364134637517608665439148807277397808206520724562740773117850965327975291895276591325573781581512869730049504309247082392780700515900193993931558826144411119866353235850557545042094624682562179886386693412036163159054679211176617065214777794095590549325274883062954925497929391128424325418104485810887090171794075125646787852944814384017756819517947957990468508223189857745199336113101954160469392765884602046765529515870425959978325623731305072205848899152572047550932459339620285849309817157540700766697094572903731578390797495352505124489790036441054263637490457637592045438514279501629508422615753793332258556477661466366328085321358371169438195336467976990874675267394604438650285113994055513927844262018100054007324344488438815224841695328344476254885805127649217305973663110570238155922474265747200423521315317555205738619248940499188122142149077611213372615587172601337926962806615685035453376204843830172366436136246535861328329947150419003094174115999029821849433453808296572098469031825234874946703911993389345631030810938340741879340556137688229431679997189578885668504132690158934454353154884503774892136533417172629311722010069602863492517376090650605061357085450641579216768054698033654788257756055943971820163260616700414710618356748277552898585039780001518407655770561649137358834114251864965971325930206267372132730721886349151181050767140040322234509562795903826544302839125534048557170663312847568739015749128105384156958896581324261757673853253590414865106021419293744913090668996136932229636661621049639697494671643481348799194701753423505131859916609170666051337375813415374484189019171377538834638559201638549751260903620465768675681475294813058552301706485261642704810568647940786167033144066676045421848826684754767288674158202431634374233185578361310145595315840975343312467164181864847102997275566675902746319640275047163523085617480001165486655478829567473136443045508204825439372362306635395489265729378260822177909233069514324332762457109431038401528650511939630282225883153083544205843467114119812155099615467753697249536385875492998241819215802794636649494339527117355438550591370829134051412872770029009494414905169240588423712639416101752184107229252483557985913935153693068786441609989997265431464384285133301498497921472726569889944569371165974049414553127086011039482503860015217815777498505049248033119428060644440570369752095684079867993381464877084299127447772615974209900302696866466359265750189779894504782895710736237068368023120406776282122739463044200687229080200556689927866286917450918423969431173200561174186391057978631576976826256807644040060399378561162279326751885520613312030173857123285980672614772825974707495711023532041923679243048290742341131156746678159839421525898172658672108238295235700308312979094368682548679032264332093908870469578120701312556369462263831692545935373643185863269382515856192163671722069366262565919226113428989572010781674811461602984427791203303790171295323332699191020481803418329369529482420153636493639252592156759182638234424273799518877534137145400376936139375158471306817880041267145256239895573725953978684389467671042785670886001598636477019148655571288197156933869802691257367384071106517202801020453479511281329802496604766528727027461017250916476967580011848168197988693968532575523573246278528919753771353176584383135170261081540897438862155549312784638363708999588368697054853318508418582253518534797987549867804265617600136686603991431030111583058606389198570599832060822639883126190741983210226283404739093268829578641820556807594052020768610428360325852400562927076052691690459928481217698169126936727787166683832978942939810439070239666806510412894188536314737501719337285507572305040685350962263634729240089680733371190225732042575845741951059600328413815942407292017769705999754191997683411201728511178120763884131794374317781704521831912564804631614466649201277289119340583354988621929166124892452140876669799318845983307781291535766181527762170579948685588568966187168417243723405755015632053006565556962054796550586674660863515011308202153876039276816111019380719318027439975575755806830479859507628166591349859369694999815142637509303301218745963850783116559769039135738366851640818624425501024371468736861366710243521299653776247333344039323335260070613347427845677409188235024990712574349517027881511854469633852676602688510083541571492589433964970392154067758627800063961165016850906190532134796267512332559151954712901354326412166000585239271053665388647846348282418232852618437593769399214559624653141440252285256673215278528539425896370460003163779655745022706368277267637457700258067199179086930196986799605178144870574672378828818898631119062844172447674438873330926795965354151542609833965606072382131722048886233272517901493346196472857698580178134810694975367221065390036853595449400349382252389753595280818345077025340166738631600023655728773599825720018643161755380280966420248216995605178298746426754757774006782738697641278598939352423047175401737580486211130979239797424815449163829764655060777272533779930902507206843725450849637774772198454222817112493738406255856681094416097141517916763632945797324768100224370932698643507491155101410502964956534138866713499575434495099360744645870004488417600121641003621488274486278809005547876799976810387358576133624246546506015526953377284046883214880238219849294434246092849854914022182760152403528852650622429497888718098602711754010631862183266081856800733264730311746563778712249333036700910363684195833844855457807594501392831455498423509933436367685632686682444545628865561586819178594093214390188754967810921186923794193059995007204696426721184450382983195924922175458017878793763707438169455260253725413140931162774871041389840875347222945661838382439873302453524157210385154186876529867635564442024747047350551665118823590130967247367820679743792139842548277708077274834052979195460043172200256074511921355910235547779277811776554792746097201472284420556617200689465703776495524949018227302153788593945911133922021796417935774633113457211297817099853445711306905087989568758596755649101541018027328436578586412091696482983333419492990064726695197902095056772568888146135526063603485682315641750736599793436949457548965598833352394000415014054512241221516542687616415813534825999754188417731348371047656244030957719899543278960960495464775617444462659238969031758697923080621712029461610559372050983994172472063407107775204212736518407046140689565578770184867096397468934547671321303367863327438502539759227856714288855328540197661534158462119858077988222819033998994380532649922192902624125280617495761472004405297098617053802592873029951572466699055106448660192142871528891744043839913754674435579804905969218082587403084140469214806288195456090814567174250349067299943631603357002655936306144980771183322303421411522058538815778862743778822135938908850723376479280230622613722011414848532384780080100794848008848087156562478148089873704408306247102322280289306835845053920078470121667279534572588487965221572255270711241851693162949695942446138383905175038008272244198779820795299148810802301991086999382697120422888814213552807649822541456249140443622509442872897493780422715496710824518340332426029521708916271528064499753210437869056699341372737746000245622986763825119185998284708972689257135460097644290021979306692774174307355977133014382867773050868547956237806316821011878347758851986205438387125969410845449875742759507556554322070337209802988427161373206540912068240449251442210462866950653837212519362269949836581390131389543473387078139533684413764616582152530114515839629347483482903797940141059185682982785093404564049237658894023274566664921487049552524506858186755225846513346123873605309706064304580624497226873874673075957850392118066678468669950175739103888814852112151069931551117673959260880019045904748749586581578187825885958379944847441502845528076902894656446149815405848071534542849204214353069725533205040788570385797116072059623178425144896473529115042533948161525244996276743534279735935303651378899600377515063969537323492360786438227963478005195595076650435179351846524774474325283065320269453168640897491551107780109614404542717077747716861193517572853304833753483253585266487714781326746259253786668748461035862042518097346877206855111119064724875997210766284919613716308429670931694919080088598604157034190406786061191254024492393440333761889447402067841445266881303657631578603330872073921435327518264691697579705718457217875368539453237533274395155510532237978998297035736552838260240058668193683022291288785695835099590237270910722134349441041664434554026388623728158716218392823181930485982093100858944229403484084208515833354295799902985977044570351323654138461305543137379387666395662807079409594203425455117383174520878826257427529567431841102750823251534386787583631804410167656919162703956323992561548815497699941313866918476904108570364663328986574981891947430405824424715750813441203283779353968269748123376211588871339718296782459971122022903251425985113695544211079356574169151248634848100637219297621732485835368290575693645568380391535492820929241469657512416599635601282920439113507279032554660976236081502007992126816783034038362671048023983088348530184570403334937251062043867724578381975946541331391408419947085876391462487316228314236907637189283312644377401647661427001181148339206434166981417157329275520873238102301686629343232910054744384383021159038083123255939454406159443579030561520204504790912717480197811163284406657389807477536551180140738830765393888433914986921124407468080305483227456556642037460510347362870475992316935805014441286270117658819363053689558568077060709417328835906005999191484098223650768600066325039886904946799839211174985940475546066135936981501075528491202021693426692564914554702411442221791912327289755959828894736923786706982115051963055985922339802417483175248785368142349394985049032295703611732883854512058824382825780323777639670068170957372243899899876438922022903755099263409617027078908252350896241682574940987749329099708960591933367526672391216622984693517072428593726548873174077856375421292112970203653964922416964377574646908953091654844817880133856316400908483960036828859077683824061374097091083614934366634376684081106946786455710527291624359988260822407800851012820817290601943786756030943491475673081894015196487449545402822536313530969062527816567815364094604919220378050093863500261349239302727150720979177386589926745183228382607415688893653173818874084134653706039560382645202074563657624536741017055961441904021614376557574079301628926304681716892006394938852997192779802458095038215163514960362316354342355577528748131105992745384129080514934997412297310613141149092283477320173227763576538405293764115271970676008668626539893280694526001086601199539719429222489458165805520513624667566292041480065446164620927899583245658875044797176913032072193159394733306311207228732505500790370634435542768750629102108913944607854599166246880872270250546604140146237832199026129679009126597214421416782659283659551847565200854306151858969527470755298859573977540990255051641545330840643499355267583802813190107397516689423708386141529367963611562727512465681184630141487056469251265449452697209373452210815304236522193052759030218735618382797093376217244635594245843364522439362599067483184234526758093266869854707800800842342820611429703103498149650775348808823313792111763517628659899200286318244035518341581021994170386613026349547841344961454045963107044786808695600753395372689828996775203844320743865829168827317570261839458246984167084592707147028094090520979551413983822725589632235549413018342250081154455647200565634204352428669298762343063216307383063656778644927482929242634031047293438307350883291591409196238121488320332271921284836130110180397408896647326116509495436150154458890401175390386538809713523084518366929883508795254720607478329074635727227737168516643777659725054742514750708743094258672983983986246387241086867827682525335564508905341183352510980935353944513941466683888239931806533925553779308868971840929574907709667187243730964562109876789115454230932468245898815138021092769435365190740366299247354304347726151420436357664268831602739806703340637223986741726718141006587329866486205789623548367028059306077261591103732600972187354653151712568095532271125924017599967332109777583582774225782461694137859144628357647376782898531123297035668236749126581178635594759433453904931775662648383133350035989511235171017462410301089575313256425775575028429003184500996084471574823022254602053786187664427490696887143175779498825648335399779957182090279252991823630259209992079270759748876852664114519566371730128603169925134396431958672663201963243663204111053676124389309905378224204436293723550683470206723105650131909389603756492783389112273726868742108021021135071375250107667743383111076279543769604062205023711586337486355507918659551544793630611509535057269779188357835551953790547328008724128890864018130286077249183487994923490324695354942809699673266352542294845357423906065884760759651561300100846795139866121203606199897027321748619613957810803758529525161188528777280690028850794736941373785162436995238997026103168922332016023259191160834981274895392501677179529417335719823261029486541266582418437370422848116994453319556021064952462382715861540858823467343182039743855064298659029327398962237975779318542460078076750250841591202363098587830705103156257238484241543152184771355459341951875367084566342564600865650595929815971460286358389551915817145825482858486422814195875123781537825211018158365028073784125273050811698875167501088441958946535833421474647208803402376716304829666444313208080810152052822115245083650069571809605960016216674110024778581252959819003093746374712535946365304834727695002574720591344542931619449308726504443189308484301332940087819504709292275875712961123053950418869589466620278625653663901370469178692571735177617765626095905496420785658103394790231481002265045094563119274734335243819794417480913171011534979114894930592282450674387108952346130367693522664547672184108993498364265200603026061811880202502038062287329428839231578133802090638405849904312208060996783019390568802073193824587016470419195519709015161408840338551836272230016445832560852644069953009835593076173351280028999047595867930869972986268518231318006210889773647725045917016216917538164202261072882793919967175617675150073491744340376244109889694816579102548459866182203728356998159014286945857493298364813947178370631606722010403166330263182076906505637883181727888115646160638075444240793751504102174041909010003548307727182241961978324911431402848790561229194045981482842576454704232383235357585960521740864864346386276046415675376932046999415044660074616275273272833668159327077213876092361129964439057604177380029942773490585907089590329142824373733798866372793915152100722769655892496465304584632217881135921508473801106557233466542237047298902700803219667031566782705893531637340571455214739458128284524180728897208220184289152135121959815768988176082577680322144805243032373202964272787833051913925114179783148198512309143050696574172671215094984286790486143493446131888372157647670900904694237198066510066166239852762240367452091237101663395929870676139453401233540151731470523119790818591035046492237882243240824131592389335264743303874809384298269939320491309198876343029531081685551693796112953691162072096040022910819852100960397852547903495396623110606093293635135740221147747840674521265863183334574896899950849749102182138331845451699696467056992318939830686166058792038003988120513231465153254548081527546655212482315049035047660134571524554842635559086374937103737623785195048963544661887026074852382391014591355847021653887973266931038687133949239766134826254963104308555756352501849517021478921970260071491060185386212968283211472536571736422492773770736236829190740750212253609007838716864373557273681988356406410379118574425807625349503798671253161286259979327704536590554076344817893274301459247338758683868093589556275992208581581645322349512551807324872411743325308019667477341680003978461247425062617182080190163151300792390934340393675633635912347252114818231122604154006279024250247676091799887551108386015524018435699066756260919312127034611128202862898696103230825699735257842509925393088473332302220637581021031492294498436741525913626445614883854390200473779050372112264131622150400098684374275394098011152497942532823704823146469849397613436104936639630890437755935175940138259258114311820628003167547906008127307087213412369096592151386501403680633576785942546566010712053049842403781554895190261320253819816175217913913020300498464729082124172866042875781227979614394905670222994466351340230218576719848344902357943422484600279700351305315303268167661969259538988556779680732192507530194265777146734040628401588080057586872207757675514282694428908163959477728381189703793951269687163230511102130440714483812551513593096623871812051827698734148426620754131157178164746060429836154248500737067603894802012650428388309012288272439235174707691387290909583567033931815882502585393503735546881831106778001504737335130872451165860083068996070136552415490678462509807304340801856347685684503676071307583682602769700659747783593799321237250752147630510891700084143973680577281018829874455478340081294576439730053759387685144026240162990712192740122471955370721002126157587201397469722058181694150901240860755496738605192844458127774396944151963886423089603836145988936720507485015436450822705289024587660298498220702017897798636944669612006357384097694021722104550283993887271283385442880021649700712590607508441907760077587278259551967839860702064906420082670224214870315641182555314165232840913450864623051996186371973238117592260370549384130195122924773770302765545439124518326389426371203551039264960354868527157705972230402271775080174500771408121041995192771620696353488193051944799517963358892513289203044927695091140977387028287491895851956946982963582179592268201462634920854442470368334602567344311691358533023396795752058317038991175059638866082893361364835221752648722914775478159593420346543737162661120730975085391082895583812601089273443679664742525686482755920960563438129788514945257394967338733159161198249341383043082902810082172292770669949136042260262353421767431868843844453292522973726237543176576115250273886663234275323685138685374305015198609299051010471069516577146576467271958961161777906858811481907822169224402257011785165972016594778271614637036411827718132584325781773503067202345168253856015755414078864619107824525196591167638105753829711395236332091777311453048852570083055372884950267983815093637065438788801359371363142835825177538407856574979641357453442977816808782926056991943510593873736374614828986775724952345254209451308766202373956545443385368393090161046847449829143775168284073755447577865312561810342006067883786825348237607694930665896513756767028355322234759507553761488233637176492934986716345979821638363668848382108086159452723759779934412890433454364540979002701506239129314384794728237306566661046342881483788528845876844948020144100287761649825395559732928498098253322365206478391002048253765838453414328253923472061411720839862497982378039632980872335973114080918312603852786500122009896602961682014955990487541296233054646696516838883011473760932833011515205073233135678555534842471960871140756138285159302373835535283939443409458752744048565382434862911802561673013626790872265877154009145851197569213069700344505045576908931354732154772303413074455495527680629397308041882375666877621185619467029812486679030102574949176009132294170895950521118465124640635843473437566839980463158446393492549518628215081912548897707073863396717989308737854277610849407758134656376697354347174393838943268616194209896228871883769271729918717392826737553897571913992627185030472860498257513552707845584430294664361182835147074657438291666585913717111222133088126734946611418229099723040819259629457665308496952277145270019029519886245542118985721896700393011979222379915970050397899953928526728474837889620714188396467972284031692050118964429228357293902755176819658769390161505201999869112968537697183978965581551850922027039566267655366602199462073812506353662001331847151727163904985997627520067418364084365521789535345189825248549798975853505305254813831481230615595547833568175235399870437003468462209764068861349328715328249667650754544946849395973606365975467853864767189868684516812053366283112222341820679694962554769750692126569760568471898097535680484663920441546414662894430393258166488975808456032681172171327376946645542443617136066638307718345340006709477206314307656448016518085338948862597532954655776704581939427996312743081225043829953005060525010562646969030312329593862781551069173834403877432008972146142580942120468900744740878504125496348595456345037051429118025767040650109626899478599273738509459216911123129074158033293534013082525124326717280770468504506888888423459612176153126128796389340562369702732572690451841997300992287573520767042988885469510118263725597373020148043524555601535007514817964783537481172899066909066112834810177865316369864597871734693357343419574158181029810835584262131608555937199426824350382474119170066898199576757908148692542022249684483889737142414259227816170051851611359944855109178725581019064884475925215221490957305191418401137234708211230599976941980334181677679169151423740439370024852864222357683754161855139544086537110271192059690377442261528444991395347517696520285639297457174328411736050975927612337761400851905887911827909775838126369096494262774732007368811037526481330077279298263550416904463380759835531106933680613629393150235944666947021791996191986369361747245909569683914630615218177717454993081550853731471701735988355731072498459799985283807896142020045669520644464195838473155840791948090220159496519607748110202217082278176882262208308253234096209844217104581294799598946920026057852867855270507888352876704360146473403424017686824208735267982852479334411497244126294301447451520158499916225069292263654295068845425337006210901892400848576031254304444316783277933321397728885142028574648617011252692862330870316073011982834102104836063652285865798583296844156241889829840823045617508823284657901350170061523788470138802894343274833923740276478365261470575674994888029305530042794682068160999082091249841092274092287392576895980794651163578796848072084589416021408391962031162327283735323838174071309961064854637365555466875583186394473844172293096706985064879039952502307640672308133080344836599687239023406138030094537933716571507517414498919303128470787403461661439147908123911527767813056281536986557920581943953750589331878462200906529562055267803177809950011862869532046342637423493718521216683586601766134685146831539538742661582157295355309631838875438336124708853276135584953802146687411471025370510718428121413284406925148786945584099754831106333582030831492523578437301981136755046178375343747047103401274397302952758619942595981708172814426254404998942576205481799746253040726128323187283464208775154979804265472007784275032199392218342277603319343590922342693975410064612531588190948664378614484010326736941061181314969803766944405042369738034105048084062975661087513691833583146746814224147312724536596576529847250853906469398481873919483257241114974965682231701673255312455094022369880991430877614388243832846049287154575368093005335293997250255617425039202110290650453200554714055445044803120211448223522097687539858528503499563260715905297854403487041911149454899039514694598985828491388089566985923128466017928609443987901466608548381186109159403009877124892447603768829188791849305473514771758108196433952586146067257238688144941766201649555148459240431069905181335375261245941826467010697005600955691162890957099682847627164120200022677782428311219838655833082366035514655071609291132887050827783394622864746986443096364612021047418491641667839609899412871123296608521452574991879383403530063782461454990463430417591164016443918388096036312346807401409079276210276023750741018666868293695356472949760938495474985168119794003663123616677214106960170480162306395251844502090432498126391413401629970082577343385854708947458242155394986177499314278740354139822162206552365452198380381190826221106357804252681317364592143785085427138081263415055502812216934551838746844091137417308693195769886031439039340812917365916483248335417716297368915368717001957769557597386664009261154468619077339243430836542148606513071054461990946981638123317118388814842208768938968976279484220170188944176410612525193242700718305341022166768657654472256218002129958390539501579950951550362285002702909599385499295330480587606336071033764028700805799050548384163969584900476938621580702786441721418102899404492363149053487517920425711957334937793905093420826620265587438582308738902224081614429407834523410564851914725626169409464038511365220187024951988385529336593297799174563214285239756148576589240063603356191349720331883095554319774203494937544245990410159162104738022773417704435292016458484888473174564995604658488317386471493306573498670080814327031452721762911039686638614085437933173913842051868025192035168352991550918293016348627170875159048635376317875695444766439876162954456388856596802679326876693003136436234695413072906837390213873687803419640872679536689945516534788504373618476816933543593250078802096222006767943770101957263782662519125309699443315043599678025685949171343751910163660503805654747503763835327893622011234091819838800204517947392113869420398994038179910695985381619100278738822460479571553697234119786051773359022114548810871750493496982966392735094696833926278646193082184839716332725657265920990750998706098492944523377957636561584763460840946274491295391980200662407028215765576531911889151238968291565937419942781007834042286661772979386046760213199011985182510033138223289437187109610051320677970150995151408126207580817507381473545043286718311618990442666280515795682197089967937976316387743898505512139429216320774174834482854362330331863050246035747155964000074622333481529950727744597042154926724959687735884681448828207483440218181319192115093287910064278598066941393171329810915085206289277931699947288926764780618698609788743924207997215483687109252201927261990641394352994294126949728775339673498346221805036654011501859160440572318936009626365767362105374825939257253360408235583521791164746832509658363798905826307541308210399082270016408935117014787415091633664379011211567994755381629372706597690525049740559540804409736276710257310979772311949361438410522791136700048528304521645489838184884341547608306135187744473514322295823389276972700888429539636752799256875376890569976663184360467832931355937032758943308205268742681405981604627897592413690659791673749468061379218716781152724587065043324247981681617596870952822288394734808232139409191455828221994515294329864493947670570795656737944571908992884077941288890657018809200924789774933064887517053407650824693954100195682464870863276906649237304705100656704916019140149028638174932303913232822599768378704464551741694139688922640789466939199175526850218372393125007028214576672421862506021601017316270389896476032350860488554682015683513084245808989665694522141663172931802862155926747582563289235708319044986129689178427604901508481350429010035272739731941011602599538157199635154684552921533835129738550766123253569709724002464650238853319703708618239545446566431452507616537056818891957668689489691000967055687189129140819946772599504121058376715471353233422876453794172455260139882500822301415885586600914516835608886236010555546292391252081847971340772521427189825330766769405764675333889757351165505085481532394883042267135051558283753809963902648390344171971247657510689220888225920486890999370723894276950357210320336761735555312262105066314523413202616767979430677218057163231209472104343511109906476402639317848932189564682428389099035553151482524411381956686041283555229702305498236295921303953249151380297537981321538930341924309407182803035412244670905974822862640107915014925196840341660632129408526475003506665276625597786512250339757910119860570986375304731375098452873007012321298586524574341742636211777425674182825057459632857743171294710193778154732023855170604524023825641574698701505661916343846306495145091395321777825923237689190975504974506561246488235304297398316617497971137939948560740917961360350771365060850859373210340896776664088321378243205793276870664081197307630174403783832299979224228352880616377303194108510981875912671680731993816488080470321209943800650187512752464943394961706529469885438139897826978243252128821069734307846317216186857421298615915345198877502903134019155478480470792540628354564143605849168279631480122672689161192668850391045304781505445324258834629008153073630728451331788981236217868063257610137653549539485954107191436006647203797298289562468981139995285548593507093046180190502756510617911856263542146307305734982364509867146561120110736909138053500784102795437480929347397262215759455417127416612975820408482035055289443962787158195075348873320807313429921358016285618841312555332198071427773071869103494982339589112319521232776371753580325075429471248798765488478694220513693957408790780538118303111735891022871607043490306973236485689777740596877002571304286868687529467006543230929193374966427361420626071434335230663073982932159272767863390846972778307815189612063311805723992691159329533816362827053230963330699356953802918781936469695035606906992237545654637102650408165359874700896163906151973240398405231814220962703413377126234060390565249899861615844624422948688899884417251389204154843509323689274549953651044866245359230197184992467910682911833866047266984071697343033167544709553130999188396667775986443758922005855312724565975792170376787083642744586816274715253916266308475051173350859147609434408045557325412024254518393892942158848234406372403253026813448676499373238496955093056377344998380084006260317714052119121709273125545622692864004445077302146270041294759615084857235432589750165683438980404561869493596120835711064109098164491920573475281820663133905027034036752192500813764234206311238191677077124451740174053272156726811997912422078265502984933796907108920582396450176229524167673395355630803592986629598650281568922511810836795353736824436906194871439913259674414899021687435454994168101869576548963486626989265808551510667127269904269488821070291632815265574020156537936618104986590518645918642410246237555400981231979328302287855243912967781168283368369022223106797290414499494846772912819579324097518075287697063315484507764077221507502169482376794978814896118449184906058054099111837767629528494956561877202176229811167875398072972072275392189566099817868148394939979266800999758423327017658658520182870386618747050342050883218035023353911109363458496884870733531056312763519383090741939241925865675491245040146034141333028427275875017617163175792260980615280250214289904050871519401793011488904023581052162172201862398175737461502091896292775736608893111956332417821365516014976511216235148057334512671887446179632711645828612240252196643559139090513980331010930203162679131969265867925694721685604886889455495634771211328637024314155535953859623591094608270754191362325016778376682508555032740361528024898041335922945642380037626644377997470117298521450517087975746057968246255908915942951825535701240583608599185636371103355606398375114912462580288878342058407247491945991673161537707585703775242215222733233074115044909541519618326928782792308693715756348253458549095121525082527172168496341344085887349738572762009571731922769908934384157597117997855300004096656757118163924642950413798130705675045883538160051888040385979045515242337036149956707449398980283444446000604803238147586018175348887093555219049223864770972412606605612265083581882407533229806497375673773150523876868701564254296972443850108568018948919397561033125483511906524545777496040798014745505067589680672418843217268366206773686701417826638037837383291469458641806207682157207242682428213648404591639750943157726436779192248422311280602236021628825341454711915856466373772624092845773757957197929423835255832087218648281945701000023419332553703046373400415478521831704079653847919899069419959603777584894306470707072911763417295303393436916178590789690849270354506157400146432822726626482002764895507886868598384166781174849311710063831524860304230584615166934924565921845815663530223081717326802816556314332207764382934403542326234902154771894907452140804958557735657519836352949606429843154131147218761491400182780907518626547796343509629628051089274471685438782137433724386014434409201239619053447074924055738159505319456805727972522836003997478313558078082818475957779128181057153478004963569851835070610599025338621738855808951498682940178611277859740373364887064201773221783072539275454656346931630625696429207919734684673918207092880246946996436761817417012413858505114061249781114821320705229323150831338763756152353446695636972063238002474988699291494371902717774810196447107355918641282674500958610218361235462974614673672787966565443209196539198994452624965008470667094039576148787340736543082080899308268680968406699369458918050979159500580390704671371930158680263703512771791016990745703688372945731270776420581051799755018137991840468755901095406679245607687715081865934410569766452528498772317868006179199624530659495113065579468999343783686207163220358458112726020288395770012151438657133728806862000759790711820892276385804539030228904573064049175468651498774241638293922377250119805884076827010168626363485771244339109609902245866557071419755244209125530643501511771229736297107522715933198758126966053763928706081008178113548375764025239517705746696942734689531555801443080494301395845546715155360179279556553842447164579146533792121758438969055260079233113833455821809523506723468788225117190325895226058298367362908786822694834076488640275161594393975221883147626226605928583052845126954037945606139594328070763870539939810312854833539334812307268368133209892945422174266858943212053861069108933408691309880282671675863837991100827461701646652337824827355565214785619143915539987496073654050752298018996678595033655753447751990831401642647193519365804946387924096545251681171256900240646558787344738169448415228949480876270132867252361618747785157235800376974362645434384685249894896081564532012701146175059711681240174261944943032187777553383005111247752972937740432301859472905086351454348870304740576787671942508301918337134440945269082918647301990353117385539195617513509470197087717052235580535453086707412854650642387435179688365330304233476692755080629278435668793456085501328162773863172350647539609665827686720563811465562431211855851004723307025376154977236377803924077838055284568532759863228142332944372033855805466332850010454647987426287754454705459402374301491668007476275718155619226504562939852661075955855824032890147062015734321264781636290447567028780384226018317729376815741363369078075210149160627743223777165522285550165763434614990704507490965661645499430386038377406035007156196424681774694171515958683154537128130104230409792043003693501485948740601404951573113126632141663835890074359869544599982538358379113071360593170902812661209805068280084914444846355083326908890421535112463762228778859880033243205391806847882086940362597485737964596991099570781695220203530920365185202539208382566231798181195136942736469669467230631858611163784482386212192569679854317689318042006272708629910763803169485871948412492487450774745122136210346692297978235123819871568729761055802885028165572848576316352520867773965602053381023356783261354877945546493447934002058605492096179849648594112791852349001878581050165368232459086010361372347695638563167001908427397985079109140790650068083694903822013500633548045006930786269273853588297318862459186944725262177518232262322795519609035345336594549826720996368614867320289802725109304495764408280053629994473905775566784732743685504598523705339950912004836251700152684614969005440205073422856612122441091585974307372629500150054424353009841347971223089524180749510244693724719147548274794008973212761440960478461290026273463240390777975653252551770779662394909522477068568480579465288438117923790506300118572592618341106804092504799002625518920313393319882626739875440017721211196521189437237581485729194247790277455973315362219507067761552473857805302205955589494982123798992058932354886966844699698007982499951872524762993145888029556260063161687789155489164662036205230339832256395931870304812726907432709334696435265877314599719678128924829665455159425233886721911511522264758353361923462505857371227254414413028186774947927279414572501887461889255500306581912214972395826136161789546669330615704427158379273907291675605205642930518134911661922853196456442015827202489350352932902906998874680869490269877394801022581583316459812708104303692731141499643140801696672050811885583685149007478970315945243118803509682728044865060608292553855484151190539417642407914250635055997301192089378968460787912444491860452324425700268854929117132201253047784849670901731320750030142915304189025860689292731273886138896336498507339894489091347140142115833642894803098344938108947085443364259722505934113080768596203988586019980019095895323576450524830166104264937047648931943979187066363863134341286038478614450720200373311283634045866025933507168166403330066025715415384975977602574970464558525020151206263946490792723873813378721870708099889047593912720475533493698561503241055951757953777689144554713535467247820785868976286247342707494266070855581152184568177396467799854809958232680413583014889810340334355978001293766020751831312016629805787686035770491045952821629979531076084383393390831276964940595911777083323025403677373822863693034542300621434852432078637788725866105999034962795741493776354024834150745663180467077685385298093598126886445673675124540124519953262439815113491200823062659667930737912208835718061481128473755994748284088085220392267777366851427315234931689216854338102123491023874642678262370266748590658278166382428084200807694628839266403519507032773908959969314874049719158686051445249703790387205502674069822136986773682313716861177796380601857121164594761827144261683386663890287657423363208195266536780177899552827881184461632908644670131239886997268291332440450627409681953879616502363150320958722195358672134735757028485550357739203892320460298201666977851123475033735970113794254612881708119556629480859286657282291377608325486441711099391517199791882407978360431389102567174152856348597577381907624941805949107074786337317861804757286031401796649923487820328368376439876179719823035312986245024912233338776848242988194968560973975629809288591032906990183214884861979422472906800560193314567507121679262907188934265693139209490587599220832425501063176324370815359310347464170809976382845062942430071303595636867623172605187972659010235160638024738191432852026021208787996532568469191171556312872510675943666635304026254245091829302209426026062201729831054488808186257091298887612488868981554256075463689580816655859420561765475363568868414207184344423450402893773865116530542117021997211718172428227089326464985845795421029577293076219983094496932538788279570323086949218083922715995431051849768725083720617462479034746419258714954602775295063104538573223044268758037347452168637647784935946608636959093589722603641311229249319168794682039243159086841408857285968937410145504214983551228889489379887417913660783435851876112903158049294856524173744766327962843665470431710642163628563097048932480548424779531231761217322313330365576057165136170829477241334969713746064578266177687912913238470900669695621143528998077441960750626885205674407813034238093686260524124838307090597929128296937452394018840134393221142519619053447940839734192529919296938995019550289899955623485014511099221266534653710258732380582396728715005554476898658461601443403581022374978625384151843897251903594404920665046113278766813252326425096722607260610025081089705317121944825519175729693505474769320260694773664861317605835147878988177953708132424564667064484756541273098530355983913532571636163852417133793375548197279875421657350571276852298068481254402986315995806593762401652023453312287086602779551268080615916597686416236394149827717278571978246863305081790766553974372248968707470130960449932008975200641033160208856076074353584424645242257864104488666667676015819643091902146658780094177489750151978655723184622498903883760437505284230844451130321921510289145466096027561033983989760034628415571912075761902712611288107982642541601041846626061428443955060906728977262757398289671264271533850231866984677323463298726146778220197962070190081144469947558088402890507870258593864994313693419627925634449765820893679770683989823391680915642070516303445308831100202799258124366838645566641033113832217828506015279537735842667408656338679204643855996244523621742733284070320884915987319742219096363364123306534912770505125335684510203666289008972184423490111687037564022481709287276547038655653758919114064757933664999264950774836318002144797058328527611217856122435648393474037214052759519824665254272802298129644180379184025692226781159132881053762953796751044972531915044980289682255301815427021566247031454473130629213045170207709779530088362707803218348291130375892322417566009999836576441002661137072698843271326932475989149874363072546048480016695597230279777721508112432441246675795474370880129423665616082714010654421235254769439982851369311679561769952213267764265891869493223910860490988680752942969612861906521310809589606676786785961585946033930340416652896610281083250313007462766600448180597664054206373734959177044508643927130612330369014617137405170363921362463662281448770762317034649639590874856678916821557324763779202254437924533759371062187235132473976205465548476694354758832408358485970550546076901262704385971198660364802631545692866506512545161049729009472090089688795731921231098660210093502257152613570688419574014578676760050741728578972519766257768780532486843771286042953652583268558575939630681463522545323117327567199518284109990465855130006532802343955239173140309732842754717157558931707668081882059869657479219265683947406778393148309845221841674718630823989729280971043997678943405416063555201182703787839992004504454937873003517431397550293994045702431184017455905732746322270338216239189086435215573585670628105020315870118742752397037291885259263531268114639158568265987672015066779549807100889281253359864629818575493952073482134741023701149599705182271056167373666882363368099298732478310061794430050435493991894612114336052074458006250387006619153519577744026504813632693035037000784683714681992707348329872237725615142237246197472560478007494669679819248470618490339289212152500088229769382547429114778534357513024713367520688348411729982626146532834881173561545683358242652518174153826443251535651354051066970132796933457002597563783914797595702150853744594767786317710150261616463605693588291651626226524725386731574388333407626025131374089643511928286715857596386471243909890264657329946479075094051302130274538394461349898732942449420430992725151045881876208295067970089644493642857978188652824038297874109763526102702232734677791920162455155482850303152766777932971673519019218479724953390840861738444406546057156033335614560243870868739230456705429851767032970975009017792805492887955673837639078721084574884880275274418207410172881783900930659722284904492180474518216746573374431657530451360397403000864842784751763010169764263594614046372823216371203890005985537277151173751563739514711177403891660830969833575987894222655110032561990382453639633567268886042543034490375917108984845815769854249903380643387507445020648658218405156545774686994966814833379399490231188193533449694389398714295866576556608063668566437139448230911879437473096936962670171369732173965360261618760757786559305468915886703348470761533502057012157865425557725282431270958732812830357844860552264195904046108359974688379441319684911052506361503822078540565292555462498966051706489900042251420865827144108185494270418846207121796085555067225684818683819048341331547319029047687115583246043116413831685729301766341636337179734098866774143315325334925926696196003830686842085684702069695972736508588105601727154073629235085046124909143346819561628388110794332753612960308764776930764417119552523760024230529002769308388679435385688511220099165966032743385442180830660560318326940789811969950995605673748153484369255307474738792326741974016832367602598068247967038889253644888617098459861243245085640651285465626396953942633102109691046042144485510101075030972317014209625446464466090824244513937435617560447821797154864147385323196341461340597177833208997398819543969825870812344992528082856247099096626319430214969370938788622025462210217255943422289940686416229673956033255482119887335236125907201702096743725659627196728042028808462989331182758633310189141691621127186465686965754994181130518098017514734230979046534140200485215017333358074329442043269262366478674040224288667681372209984649197827978582665197417056348657463787519021908374270688715082750116897969736702163261586344277198357290314331705331293121105858700782908886477211997256171188848284331720768102041963741640476225390543996757962781440864376683673362203319791737359254898398987191462505211370287384972604139601118079927007669876706104303705637263267086495024864251024844914408500933756612004245737848943270957519359764730207388307849455178642272842957706326690654156732653710495913830492220180798179276906981141829811529543387309824911096574411496944793590882522135315110255260207295519986765921047669940323244055916829331370832465748643571805527427448763900203560308326583970279987902235249057613052254274656187717342787651604098830853164404532566708809621657447422062711781471644295414847003650397048493474378540597067984330133869067981059227884192523753477677863592039778300425954157404184090914920061319347681855528773248425755120124237285471824788327885455608074852986859698576436200475412696452366919994290926037000864717258519618201737405468071642776373058578562080068745831753898509572117064394238954214236525047166321095763808553654697575575378443194150797785340331556553043187225027046157939462566167257415676178415313824151650528119275926461058850347692100347990374131497815490260752409951621701000712036636073425181239329330515808312031228882204026840764939813210932764108414068139003080613559857290327575487956523117952146271542904423441626543524483322488884080405794254801907546696573171297139530483303459606233812047692784323001274863416850901781123947412314369257251030944831429273187183252822072815104834677392273499053777241841387228711821586055298703956247029508197639939240435240484583079113780282785192611481118522991948477823990234452674469978686502467847205294896367243072517078572253047888592878456258323461039693797627321762275690856042396470834944729481728544052493376968150742168624673660078282119171753824421931445663536514882465167559401868719622639297824089968312229809794008703002596749869793106608126739629514146822914085464807582400765838921193234098989093690830771885511389678816686912143246895137321685412398860775906126758779379088566593992768107118686963356854834614594868709312342496617379285035705050601012471228505913473784131857067149139496218843307680457160355909651508831893546701170789998866740954158339536816544351913262994330686927091637558257956038479874081647387619199189339541585769626860367694001273364727034389550859149742769014808610322814900292418936000231728496276603588096977060207022840920409485372009424558008375136743515849634870190056122094337977986011084050041359538814198446559777122361163771423511182047150775553057733630915462643610801906551379404338238678948464672795742578386029815994133889856661591751314358914918932189504491640844736105006602442789758097657096742093776213335096638676623006991118256573444473917829052963000624107529139823443130889067666637423875372002952643364539622474298796314157317161998138570099343792043567120145720348778460623845618210411043629481858239568502669439303278186225155679729007630269518215005551640029292472966220153977626518343036897168107871949192657527969221429503681292048579731047527444375010485934318490110350774259006596224091353608407782012917074880334112123567998945586578885603839441267968666480448829411571558657247142315427061884270275766140486888427514494903980425396872593760034726439291447169198538296648567005731633169114843331927305978590718386342813947105961913938764772243844685776337456640986945634851535818095195872027695346321273044428679858289720121560413284753562491058925200493307907209195517764332324720871678786837360972283158141706069048472169033793086034935821179929238084204233856566222658364680180157317423073501300048194569365612542484082571095910192846026635955442912096535233572046084491438617882613270647231953058896993120914527060711168411920823961855035008298764923350802841739380876693354254552270667959082043212535686726675730850100311675501976176731958390098583815268036853828903017328175296819811092788887556959631080637552615128480753416907340055324054753726146147204671274816107968136691206288189729101583304520889500232337767745629064449311139596950589932413148076709306912522064731428914136145642569339925381721602574489697778899975378134054147734632627384775228728311943720459398126820442938593739973188112908951655560948314206552073173371338183442958737080704910532290349039671450400492150881528733470044484346073638456213056722432521120932597336905970800825328939659519695560690191368309448382792510170653408609623834611244438589299016871764075722075031127838179395033582075062478185325665495342486640166882113507489172823569803024532699860318253730213026882757542752199413202919259975736272490416155740061690686793826636038079591055088539653826455738128028438313693266667199731797584015719297645559197840160407791088194496097795833773113608101354735116029692836813289975564906502049004336774668495252612476319617099428388701896451386017105912794556568521861908285322742282975655475193473281206175139097057103953155614643696882252999801855733717759352070180817008897614382482461014987107819212582803900041238934086560386441740122224545910188833608675220761984459983112921810765428916715703801469527998666651325220982864385191830900063994653313663053407298922621734392983581464808606099975267035399714381730086016027703623089341407175899216937632259992599157180278610955089928770486845944508823654838921696575191047867383109190563269998236023401832914200757116618553791753652695157959445051773745954525686189191091559475117057439162652801201042855539105741626206033022113652819630215809359379591210543320307675717382721133023732147773814341217092671967021804473082786040664316362928372880449356285043430248022324046241443848854764721409551988917710507681298321502620100902012013278718948930871590664022549690571861957328707937876944028273956917217222313851297929880712177799860598328765794713974294364861205203286998179626491038790000973053653542483119506826995702905572066549998367252567067067963804727808477318360180316097351648654269115597153243161266663001455591807909945774914480030015077504565570621869890446252829085310774709192414428828488744467061805081827119667173394131802313023647110126894306174928252458215288875457297124221125041329225430163588130159247884292082558846884572242485871198733247570258928574963496829532830357001177417938065511867705909725773517113494868487424412042671409443426561633421271142799496461073141523797460930137930185807502692651634620593960420878352793783698549399652184360368863188338555265233458132989244656758347998340506113314964065763045375591385412020350294105017259576606650587511265081392242825932807014983627676405049909126299386896440793516859535373317090348115318338270508578003250021013994325770203228829773678602758079111877161759969084470168212719848651298739498857417718243390101867223362861462781824052110793859841857544522827297963507569944725739949429663990066403013680610318690376968253079840818454905827817526847495643163476787063743511911170468163087863598514529308207355014063944527699376544529399648994831411353289779283253464816676596386853538346260923305851712376602890060834320599087144887509991920114569406512566147114149417396797895856325529868188858485746496296182279952819777609123212140299398533561654275554757579798639829974197854613478699516663592826613801979861457780635831170133374157049936814871978080849501391593750968208761686366960173970462569376946466370271554119998266651144698847758614211032848278271952799926063132115788345043895717284256593582371299909398398717271785899421338718329945078944750326982117872198082854287220642777440392695386946132360930775722622443648180068025765607920247775602242502473195991636300382945126700772091215732647505245879249087751640192071867079494974225042303125533373524745963652394906873037975986773636681054716631356050786120118321974080313951728158477698471949787070360973964005522391454061684030833529974800844012191504897552802937371912838724875460728080099148529800515476524573241693900037802308210120097914194285667301927126858611175839986033901911377791308094261682175838165935800647277841214327742234305965092831239267725718502483942298443250337562371670625166340482947850128081668161726165472597907527928933036190527090870716003696193816743111313951164197204868373207290461971342507956605945841245063595202051708306164779350602022681532978113139914864152211971155709370927374004139597971621927251579473799731881539056833513297866586016859425826114433465964952079398875725424521202467821810175474670528367625773587486353453695307339168842546132779613708286276994057060299441220239312875210494425995230732840280910090538802809591560750806373638808179015914993978183281709437672461320429897698709932158408266146385257788424234189242647351412684678784076207496472746836279253944549536703242117302680519890896279061109474864500644708522908427307626600807982081883966053362624826532729408150609382371738107526929180758378040910517364081340849182252175659888763925153100172612636247952621594788292989967093860487970411619134034871934130525901704506288428720952392625698558014312510108693677408693334652990748488850517903503838097713649240408050905766289836130575865481383439642972880296847244547592922619509165051615131396612725305694047848211303195034578989476951150862980602392154958562096254564440327610968170566221232108096661525470255883155062251556528048881995015499285996807923903030664406536229507905401173252931639836851212096476233261344185467546989573077262643989425383596551033555093480617189014547251142052482672424688300484323495569445026325744514872867990086096870911162887366189907983704797117030840847913673944973787993178727981526680743835040802960234546536505458056612659359930183773604809976631165718505735140125961607557230991457628096144634548747091554899715387753386356892126695404681681819430178514347088531565048505078905356812271515772185148249615910819144477521254684315020605516354601359163159516005059918579091990697314146710842162129450475107825155978814145624114368848200090978980355820095564350262260114367260683347191763937339808014474344479566068369060541622525868228691094615130523862806618124095459687631462159807040699419853215726882998166771755285247437055439140496284273390078106732393864851108965452830082177298664661568310210087943967181646511477614473761248784900777137878897549815833426247283356328348293607755418207190105972229258244634441501647669186494462130663642751248319462120216424378383102237072632123657453301915923686324858746469409626579435267515218752485918523985084723818916160514560337894151135102010175672571465824577296924873052950257300530007082669901533273124991224559148644623334170745287508299616518474673152001820770292382361359046377138647122554278780101902040146886744631774359287926613504620012776486237046202892227134732504732813142538581330438965795465209429315498024278170862089901246406065337287576538938162761730062969232788634961246229946315623516912455210458993788860663461438913906997207198220045935656828506440409824788213872713392249423752616002303001338864587590468060717117836915702420216444373852788409087245327914492330964404096118076457378541415857237042264070428719696868893323869242523917614376259038682505056787853195298446461698355154779322936758990865729573326419708059740853569320789433037096942044565510627192844291570622624011167567530524974406258112041375593041474619731241699501359273381440280504519888164697386308473301614506783373000273478285750435779366008352244401734451530575500814170577531548744014260004706080727298688264217038022263751626290862951346888445568658989871005617692530458746691055869385068993719959529346214814973578907460369287304410562621543471189216505654774577161471968990402056516758790755947703607152875093719184438396972772824865010304032864608739101212205397782714345185447107469691225858310335972077938400305096023726478549948147062154787328973361195578114874310791776709496287100034757253416075713450797911844133518861181995113955913561735051805925499924300072837927175565153103164327545642176595690747071346966169639253348529289660067321679782286345153621214728514837277277417910685067570916616799323711319887981970212407994897308093077833551636157394251383785285133949959332750558364534552964148433941486496485799388129383065780736288930142772791165284669468316146857480486477138615562889214814090127972418715393217858255151903496955190892120457863897101646616344400872702926833235165587095329663356297377881117010353794312779086263691377836555215526650221233815695633649753137639252295338837521398220295666666505506133011304339242276409936298603907190549529982657306328258155623129734229219746294757734166754861417092751174339274593898149120174002608920225093179184303097610933611035344701013934420995559705436690572122776799700363075408765899744326045258360253393964555835318086699082432902566591375657345465709806569920788830325959827028579241584600519291825920096487938444012338642302613716424049162603378416704295519920949020552427873690144268462403428824911950513292744741593248916487899102568557346227534274040681886606434720744470152747305118952538026366610839186682079774896040440913469516313067051233992356145965502812980403693562949930093818128184671335891777863253070176430831090119442153642672018464976401634061229497833339266512167671617159325085886077740128045625744736185246019462305467745509394218609031498873743747379776385741154118779821237955210209036768204427055110216065930829161969468816817435844809414111957724872301610004272040033163418764626345856355671071284484561894132718872828434213006588463808580924891020936895253032844633690396655446708242199718581988268913335563038563074310100079107070897514824808613599952072313813350165521364537404925262359302163693988672010287381281706200495500160377959734596665208650871584207043714454188341344068953892638686690256608817283488856857141771544985999020909668040256781183543358843981032378031669980332872714045306160468708349613865552477729765677747100128341073868200870285787083026102047043943924528090043041793092524203428551536883848201430269367092027809043131412044307937700357580699178333379858155872237120824511688145400350385580804375539817295274564105658357582643780572202932584234937614622482625234529419180671718574514524738809214764182068244469568262623095849686520173722251667491886710238562116452378008411210653509751329016834521488298910806899049353752252874266497993939906038825063822738366536716098316274337308958593888789758562583406122831421653898076092566518778780541367570705678281332189403179239680365786951273973000492455354111290614159797240126075531523279889359007046090635935664055758893798638308395462273239331322539893128019703739955545417613877216129102648769081928432795644929747177523861975484973727203101946665744827451451561026427209721625163189435197397440713450264550760309976796419808501287669632383650193921067587644294172734731750779198533156403286962361954062893389144646012256532465224628461047056083923395708291769953656490842677790623431287617014148493002805969355839409303558267279188804714920819949756029626747305332900636428083489387216923987390184217856580280504316777075882259334777067008249198605293134107581358850163805510816818298056418827906193109242910658821706392793425659551325153947039161639039710236485915092476226023133729690131577061492558045915726393981357835281450111986022511356273785185554218521508700397745583451872914361237378413943783126399022863823806134058893632696617405932814862700870849591438316303677368304388463819121828730942922849605091192088551306825020693106912386308657741820955927000519633820563506807894953051909197287549360513358947921312556107824589466723501344753978455748684472908656668014167307472792311361865754420069179629450078303387771060366917442885195960437039126261648236303721725652464830501324939527634614794320659282010955444448034656593158797201202407791988045828222834403526511196178255404134384144177355684337597638013501691725772553582298734665824525979702917319753513185125875724280015341405324428866985567650053034303245309567248094532407774850498538064648367772040655615083088103329168474137733794283363422450395716625798757364080447367587829778142010198579023008546846871467505982100767164696372737061212426633032116897166738299559338535789893611508224801064771073240899808474529869455305632498654774919796526212684241398215714228199700306279912022303648997115402369157250958638686561467244378421570678895996395538866628353433291640505155826181945616274622256567145029123650282545674699935023964110539049235563982109270542515427356788132098621021783964235600521915971473964684264849819623898660765958065869958046541838211024563891130607329767299675699903035374146766195296771373545647236863093106542904230879818038610395793524314972245954015282309144904159940828249386502439879559163901304203941538726437917216359631921366385302178086870174268008260566645038154340308535663971237951351595072642015212582954682704106279129372537967454526540671786213480319442162305037431607162954390993130273477257100113081352777821855008246250617844621968908865293538205412407072375202364584856043128852812025087307164666850348884650488803585494786410132452561779541463505519549874109877695697489455421452919162288163680360928133570522669349833679546357591847683233853199431274460698414297843986377635427220084442276898476959611497636634477342984673681219907717252106209162699372589329755767353429418497380975978169773077155612217746867068394575217848397059456574210290921900665783435362699331802336968814456930161299972344934971828702575004070995907068986212175301549044662467556883741650062378820601726127773739639192248984408790809866765119560387524984252403806545855636250583374980131567434456483075126231590324152877733124560140220789488906305868754053904873292422514990100578383275127686155973129401223533186376595269725549906292060063736664152250048175781095303812635936278782607869358731914796519816454319138838586883775549818430168700452910416089425307029113046445518400890530287504447765942259716302641106343811196468531321218599696750192384603625862175441871980573458933655160035285590098374362323077149168961842540376538970711587526177410086588434355401991288386524709201580181324013947624528812096056272287812413198720324060825208667159549498489744065508491632710814259503340662782285816478631486746689779943529450297072109572054026776326728164174495627544131184474829448539479193311551557202225927731440551032189945934662406555266006345987267692721303743715770610470940833891467401840085450574338460038608723355324472229114521483075486171394198984347180455781634060926436149605187294820995843653289537969271900401385779371621205056955870645098519482319965384948007581042361803214048480174868586777694615230336493672871982357782220124819959448329896921268871480552849846526393166984151598959324150804012163143582879157468576423583271156320486630859339777051327556564221636165728432384362565493539388180585694170412719892749901947881759352912398795428561174384438899753381774111479470088790643439280258544218100167951892409914368285056551815666773527601575368893004590133956800470483580201486123296852525916178167085810819449817609259539924358788562487116844365978778684612142891614463245487671334712895498932222132972006133250429638025823647104442827268096837567335556590430300794004904931901620782547122570349498620438613684734811406136765003748038641931376448180470045693052367280254714786333734295468930274586825781738854507268194948429411415378485419016973254853674096937906113953772257490423902182409260262520150509819255077064587100691549256927497315978537427267231647053664750587266886050592336339278534952493878315132130841917962546937606073042285534136654880242443894725512457654723457044869828908986823655852509172286129654357681838183659210734999753304895303877757070027521893432459914823450280751331423537927488246600465890981982479266517954602318512798878874553244923921045330970969644305737262763716092500371619622275993183784685681500351654615441975015555186385724074268054495064689661235036262348767021651767916961333790522571006826387039569323069126948159113087794640196781077256532920667068364644614944821892848258140133717356914361554614978940564756585950165242652680130606858701506653229853215941054310801994725181274774436308494788969347945976736800376066461174561958055801697500418247877893268678640767114101345146337721171865450113095876307533857096101557058236575188735394079809254284351532033724685302502693920350401753971521772877513444647609360010757824430800292037086330236259690937697995451225821705239451295917609057099038951101088588337933603151780381979698023187166512910255762337883369022698619314483098624059564310526673109235995170029782089169167477170353925636625387618320996071721664482925759347454522068910164762724666156507702393350539769122521033179878965727033026262332008113100245413902444600058448054665939088835002589671184637821062715241217018097103464587730579512526411687853974122746571281243519184790687860469684132843272969223068663996139155352306494574049448026237411023779567976911619207769591030600890093790939059634000662560059647019834382249302497406020843945123756445061541314062133319874473313294167583621723381239616468476841745742292145875411501577845395775294106647561453590788974034057673447890032309689134397701396390274410497078380907855851441081690838473866036774196969573064059227079430059601440737098316725155330566638287634317569251366021631600796129776010064054478244968802862947565507868971437820312149583109419936744155525242652437799015920867656868832756850255678487511588575094012173705841267571361660532818746790237947809405098358512103790056342962990004629296680618474791284055444644846193003911775669809814274135275966142398276463723772514477040785795065064903584134454903675445264397358982554020893694522407536620899963369928978970985993964122893503168809472731634248535554375855903504024659385363503710956194578030069355029844178697227059206202891307813781280629695722648545506236898781000743060445272248424799133766811632460320291504077767038086953299501962299781198885675320786516221079009019642894503949833430971625374201077162242378451673778432457034248992002901410044496476879684436413325907635333498476753443726219457317690154394937584533576100756662654428161103675100800403679498828834163211494662456284602654080793833178189184623766324652667231531493586087726549117068664285682430869537598974582523821121005348862081736561411849711441045070503749391605192559689702725251685943583939581645191135225810093982718417440782285478738317104591626459579618314896007951028213684696824690255957323008476291896909612731129756565429604340150132588018121216847730900674836903572807126745781210901053989215131559717998266543044011186253798560048536981973370545836497727050274766874853091750844357289209908953848038351740366164313836018579158968370783946446368424035392269910759616473175595683395683302760514040862026313647123227128273260767793680771825558394444886084762981070896632363290798349234723902968130052613785694346703625488038099930624126901964679211313176965074764942174939063254491634172048732828111798206607971945327639927229080210714035369334852368571981461497108859251592853909648422096698696987516312048841127025863025134874054638182307885103250602217009614706364972757308881573657337242642161434115175677957901984125190335753440889167049900708765752116787118492551972092938061230665551508916137804041111715131487498139602974431193179723711949100852691000369222088153234852212985420676321355273052698103016363253302723051513775365749957433595692188811848548073034235019784464665694029026931585277518416542065612094731904719230024226122345827190137787728118099896072005274989194277321975847835859096323786994416939266530151662728964810843825168075734943579497393211014533684131983398280722037868028645131501400377359077955415885113537398404157603959221819973648936367134092079050412166040402755616983895142379306808669312978371887150889075868499637260747048905289541048655394332590048240998163148153901791379079478132837009810758736205328852470600957034937199832764268139871761183782871262895579854760436798558036390819150697206533593345022285152509188549952386877172306624747309392765679681062682691964580616770518625379679329341986046929268076793382740314365677221073912359739854018619831655688191920414977390118715402780754037843719314139430229777933562348828750592488127427320138387469799136032308247387918029486501105229702057653162487615689170132666387195604385816964163947271083112044236666042204361053529985485695719351834490089152964570075633106872837689019106837556406646904581742959917406704643734578409176814142659202307505239474907015081836392298847085544017855376862988851648478759103208490017859911551007127898054971781400887389617575141516007822410952333631013042150270948407699325299303672017800642439334320311374397870748791071177478118281680748641999916311983267105939363173677078587730902569601492798776321448190370671870859972697414148040982434044728891106531545351663338581095285564138295668133017308267319515124988737433526057530966892520665540502490794389454318390805018983172262955911035630999964901708077343340373503132484945937337770656015068985138105026351053072142832399086538329105063748444923367675593727461145685304147841428487641735144911846585857091321482348636729537574475326385205223620063802374736414652846171773181808672269125255555353186916083409876140061488964430291492857624043542527600173600398061324173451885426289698660151826496445492559363380048415938271117172040858294308718233304872985253255999754122655596606428262121989898706077398311840563428807844293306313405230013614554553726128197773346431324819244184734694751188292698839750116098364295844172839386557890668933884565340092261770562279315061191950284283217926895219293220185362698067788346505794603443524089325343573231389928046722220295646569980441270931885983456765775425875771779971991535393441443958413055011168088358923081760832069969355139474786899153273373698850985722275029189866468571835325256456377760251293005505955654482945618797175573319639041995164628316811832896918051541786996247358418667415868280146325983310925055538850967713673011691451959555878078217471244133965825947381025231820385291123710873385044726117950369253315973849390038546698329459331615979639768198173522423601632459476406892691102165446905364946779578705620919321320061556247729212967681513613776335722174833326874882516676018482757284267823794441691029527901136252634948844296881514317565231036710344036970411145995348539751978593204550093304318684920235686905364426111232993717042791731116064307484635426711975491784014921676721279276509110987323859399832708444274619936321684234527639962225874467087048442656435822217583972375465248130329628569562672531728448377841933625362075217880463137358088026742017404794937798269890774490944776964202433119848095118501033054418283083837537952074544224423991137876921039288153712926786505367173477215354347007877855344404480473326229848950434086717065132628776374048048669692850675162732555838496180958985339595252121595246870571857346974566063223116793221472918543426474022955137334220556793606028221360166273524877857521452186572626856696179468158248895684995249945596855315935108991662796325867184474353290784195941314800412610260408955860726106939307232188305237304302391545132515432935740202372856511419307542439203039997411925362465131648539912389062055143039727502266184023399572913184721383218352294134165250206820973559660818706226037858098316821611641276514196337540304367136854401356522478545098815274038011771427899427709376276927381786323951062645261864347822880275084881231034946590434414802631911105069674238896085170110632289580215655029393585745830771186764554527614958525578475885423470847558349764211968126292509674665991227023382451469713979878432418141921641072323245394829941944260885432421386780192641866123016426383193396478008180170056323356517319165561648586731838283087117114554723379244079732412668855381068170903358993385961266957643775708348820198499139443313746165424926230964125990190590075026428098996470753781673564519651926723346958455294634829134961265013895433582628860491629650945500296892280245677644821369711367915514952642804905667733211214833965382712404115969244102644989109201591150056429185834641524597097619583927060382922510387331690088735125877255366940793078311796527527873788560885482845413372671978858866117585351677241260585954268731055788595418218230681299647803342382374518136180852867949602413423513684886641371526224427712103876189898947765906021982039819279389917323092438613107375025237307515205638945476861534783487831442528607389355345254710516654868827652432587025448013177870242756249104095239340095506500392791658194335196102185197974552793134369258004899502821940230789889212977895544463297984531841780811642110510490461182818263756612178480270417657494911620357552156994389856574059117432639008008526230431290053366562440238984995580876393439849194849394484972036273775822273770858581252422380322114839954985708570318189580363402160318021722603619555014349305404903048227817433030338645345301300561273825522473690703019415190824312138916899640389246442319788749616650934679620973172798433880302436852699932248489395433237593390598855251154525586585559885466928242769848082189968681171146435065435622462143175012257288334370580372111484698806329675325351494810703815149393465226839707240576611792043755334493644970337260791345602536384425435394791224239630145344765345592191125913581595639416730747957994425536133698982486399950454110589635551330150526292183513772308651510368380949094280802926814265245559065101918994349680933317416088295529983262953796889722238234846737920607326544392561893797011978309032250739736923138579064550845335845038925294535717910124652140326143530221814661768736044503200680833695581143245734818287901518854676716259062452165267459789314847323939035410447056798420998161584181936195773730511731093219641282827717929555039975157948659326917068472651384112370529548348633883594798308423676899011861658192036570243527772400981375454915433630432454295979149084251395949622656745575760066899840484670335268927041529699529781779055460126498171739818555276877937613017162680108546216782673410436466603363203889299441239875243335249859109933471683058811596152011897219561881065155413207598655462809711114052153551683597900925008834064005201830533525156757567486533069425353617217620866793061524334633225632335728955702457321096826973208560372943346170141027752223433179421023734803893738427598713983551977489421638151993204193415369461974567942823292313267211554601652239065535161963169369618185649572137402150388455641392357088641190459119992055419769323863073674102306525862572322598126910605790683573129975625397559362246289239113411290941627824773900729920297367132460745909921220995321807080805607097166229004510004500654522066720585551474921609398242752732147232343806846135205734072261115799288137459384180667632255021565689807975082704351579856461217544898152516396076625175030823898407745637719756745637305238116275504033714777354731315983528662071190290241115020163116380850395373195568751067497587830296228861127679520874336703877747705822083421258171583267030283790380316837805851374710304596716407199420316124546518011086938279318171330631066217794818023079528073631760419680185813871454823239006506274391411252060951641804840702366469457705375755500215872040964822715439748765501830514383058932643404385419601345419821091086161536483932305368590230402172836229236425207468755857967723547106364508574350362858882974037746754965899450778705348060116052092665372149436513389152688220907746815221194376354543736659663616327117449243392896515835776902054455265413233733355458953236575371123626040839629137230876921318541516499516606882428383901910549539788705861415915710125290922453570862955883466427948406337632991498654734431663403567881619700408998654031943651358637610742414429578608187102865327295908866440045165798052806979850214615155189339409848113285636531713324306589519327863504917062157933182086789896243523079333026804695927592049695719222795505995753207241851342120174405280274927006998323847830196215019525922398497819053469531206403057660437760162699274233851594095899865334483802874413937291485609087208052485541093992368631818104759919635641713488325977336126220383700770351218027244858760953221435975994370669403219139154720995440374213788923901997076636311853411971767409314724681787207989355712074989010112802214944774000385535425412070754503766332090350739052907278427868129256827209086329045163131329887327329879866749110276493815134455989641955377742903173680559443410522590695879440593174617224876080049027228234290115287790157184914783374816573277153904560822497584428298386015597895654084384542859011681299448043674804131298109324190921339113734916160301747029147373572114348167081252022127126342051409836180311253370437795108565115144465413408304010031343156911411078043062259284665240342962721282183820071301114845340573190222805107473011356901040687873485858649736874447620420750702265430933293684636495439744173770469190249233421332435605331613381318586602611410599264973879490698787596949462784602088895045316141115852350624534980130948022465102987972988007334636306768590234857582421473507508077395548370320792564191113879154073095470965526446014153065732467095696784086821165832257377317295195416851475668377012554223774712396375747206375356553738163726628899437804631566334028489591447051682090609381993605226619307434998930347786183798471272169029969629734160345256470952389941292800059700250363307719102131451923114173481997283515865671008598097100501174717957301528648219411369386151574620617610222856969101322843649447598089914499372015416120952971708423346664396614751989960618337489422103763475405126720781148429563258057025268114626055816147404794113713934233156044715911931736789867177351011558890347158327175077861111347331462751335770967204582569466501742754801423445846765087077330192389351811439415289881889057576689026023736848432909334796208672482416377198455490173253294732979454251271289924546848892970044645902530188163150558151542554572116349387734334714640469556415188003958247761029854739407637086097355105340147936231138656465074202273237129432882274514304814167283291233474006000213640738534207913234437943430260087127905318828906332632997494493392158801553034285767182517356720987288545379134481133944817042415705954573297387128301340585635838205342073580278041020368392174423851273589985620398817823295523713811116535105234287997273455266111625865952723548526183510789813570173800968608595198120563467856128631021291086123302389271285640528754847034496911185666896986977357772840708728447823467598286918653032357858593257393092745120151036660146880975342204781246143749196629279823917489633115261523896207902591490140887121893361796338170704502626285369410848125556722041688009281096770325602951105543521255921277647537932493343885473363846033219603004644861464504331497377800746777232014246515377098827287059975115585198009593057900146317375563132102583678599379400783531946861559296253362854418758399357541681554370567600024797197749851830296201410190276190660126599733854352131153472618469162381333279201566452634217323452470014333416648050171509057194199257844518035979334050519602909560155879428331217274822037762179910936394790864708150436992800451097215771079075099949308181819086642090943640734215098616621072948745730186517158828461325383736798880618033519564455940153023867739359636701857580342130299283552854146865908853409233205813836066939596210390997364544316995335585610583123351168384401061419931962429890846359796508766319226535787540431100802419730302768175827316267616375039463443873591135751462349583228954530170075516604163264520092600656408778203202754938421882632772714431233690964876578331050954494343144612673171869829215710578284864936341981672929209800941050316519087762314323534008237627602773014919301043947754600246388468450257789802372932922630621556871861001051544420182160216612371908046780384866603415809808612994305820734459220552435939947570845537315765581497592702689923665446202189190792764473164070096892705615608805244989248262121734213420784326436479904542877345817333827232201357321306538394487363979254867998947166433882165767251986036916298809533926630407680448622814942292434425919299987201499015135591210675520478185203610764119858578862906365360806910619416704855910831042756981874503144402495635109877665648979527623116849160468984958106811548148134114874559686064553804032009111413730305107558960425018035733629714890827747434276567778440780369094909639651210113209994263123742221449898393134572721580711867740505822557704582968380299363674504188292145498855006289723382320737485395079409482620464886173737973295026645845755934187852829070321964826741994450915271633320033890424284572272337903273718745502448640253415197627600727303286857798968332212561610737671534391964607175061824265324948168326560304190931853585226258745296818616228600823057533765198890488777194272539718838277698860031518158039411369290450071201538230679493389546078314249164208886860803801556183091759975962959013950611189859519381315721158612678049754041276445299572221062318316712936843445394031256593744528618192652341028681233084727198937405838700107352622426829753893867677749870283124886197117097238246202448737904390392420830940507562472779602700769641900400048780381416063543329690437543587058993592425577820030948114568099549007292132906088486509379551854443221634089371962217622642723675059624147197288913461441625891341724990999119987575424555326657755389536175450313586711557775784199241561029735315810741302168457938874118980056493421238370990835151817479783714060053297074178812799743788130389253202967430815209290644112386793386572525617485747856748394008260385867346541416945672381209306436158306710701735368452550638911860229307197605979335364017293464195640171109046978947061852776129630916054805488576150468181277145824388138096394023119208495235362222283036808291347464761244401819323853106792879107216077854024915830434030123456216179256689191852657220303514033619052245035219925024292640758163698983670927462840328712669873610561797906690669345866896061197755809412197623779102097905372519418208798378353765580570519526049521449091524139022893693088315827232434135791822416383752344944503568153635727923238263318663974325389857185127847602882972531022857069814699819255352642294784264832553532007591330861541696121252179653461197305323695058229422618181001133523602372332386986470598331925378894591909598685610368156684241321627050734708402353030531259964858032265492120530905997319668595502480872142453443111733162254179194206205413661937706567581682147138063117276811032247400707730942561216621078137000412154540702078646024515223486710175068580117475508209231968544743010976802936949843374121783921476241557754951580379225111981952311607208378749737682018120088610106446326718402324111534979891030641563068356644590619370704613926750302029966152565244182869046888437477180217861854142360148489431091778234019835967959744439467205860556141383636289470279153108661735170107435461659778446156978082966457692316991761593871522239351868054499482252861093905534515706197993493771338950159707950852067134679770779406950789748259807576418044629533042274826660866060716030138732074825805203556127969761029139623441161857195561244649065739103281077535360367538709820691918988939023039137208660064206570289680843490116512243711899922068865856695940719248254314299576846297855807603926756402313647940687894017570353242207363412362675092093185420311322096072908560265708817344230030089309417577087074848117397811285133839237824939788324223709181986989296536805248231724481735739081369810080212857126626096018715205163805596174859300800327326034523062228765516731900506527177496618708480363614091962442144243051547816587646741915106558619035753444918124419238985999555044724569543699965234334912462381870394224747429831841408022931637853420692027678189443086781573278130066088087919097118407635776221351000033571302540886006394456243759901019376549802521262291314428648562046579838797596733364154378609357601075027219326631743163675291518125310700423128478702838605950753603690306788351461628294685512802442247679460576075784940694252826766250689483750236940098603192790140448926168578583747321884596070675277977072079741154581549900930919654870964250121796779519234643484133460943497991565603702420374153659414433305667058228035860218167911274939322164847371681323791982745088884536641437590402564147458471912227141380977819631414805008470328761118288611924392675528478048032860143743671198843353958346012260979330033397480247925463976220873879093028176630459630264368887009469366470500374150435342502739670399682245983658190410952768622857295760491492050322411925895179655345891604429753792177163519539396391926252656965723080063658580950137008958452678072984201039914753701752250416490933044423804544173486742723504357944233942458801011685439360417869109136592312107191344535070901458545321486017027789823853296799562931068388173456981565568753011293716619959445615230339907413832640764655821173707238585578902486467525602433282944457149386967823964314599981845601749383122058199851030777049126546288911920478778773056183139370034211544252400956380984648029827880375763342744082163434614266198724900671183740002895401772130270852417285733899774400603741827765850170541098250799525041337744674217268245380300820091231938187716693618746426818226361365428916345218603969486766849843359801852801412854858138668469309137464873309396287758846590338029965994886098646631687935643990927197839525504447423910967010974430810690602031156374059096803692404755723961536308873139884967842573921827480282375205470168699615306421883547014785224069858160978174344480807348324423156657325820641312672830221389432992168303822683462367832868908354717209808021364681830488810723964407472030383105177884313758973048772647021014046161738780664228290059029563545894608038304939496040677542314982398209492638934835609011675437395432253559332117339114446862974946634721470728772204004177610998224491787962793345232779407243163317186002764583573398898932246293991962350301161572374680465680356611715246806786542568321273057629706886816998940032517469143291223125113617956158868430964994549275509793246077369060262839701740025166237701812942121977219289540916273034730156232283330640247085751862019129226613128415546197165261357744508186886402827701060198164303620666524249027153091196290906709891217837243213770311576865553177438924570267482540936279546825373956139500227179521276082924612617341333919616875895260156620291774811372572699323492098020160947098382151813012553313585082010806124507608691917452659228850690183672306117883601529117244326216776348178854754268772590800050131131736670537313768682494115173623194937814477665685860398657107805247951278264942325161059772793256253935573910038601344254008459563520972249912578696707625578221163147419996539428363996879998511102102960351042294071195552508283093896433396879014791406703316278530003205081245202550688788116138124921165621888469819040099451086335246406268153591143707783941710839553007675784450458234994566636762158330007727961437544106938496543266255134564102533681699867061125874839290794982953649766672960195665798950206912034145297878724320197844684222420426758771969199061082667104628414208646783458896182348969127277586347991465039516096190219062255326653826063162566248326230105858346901893134835026454814325000322623496534329440907873946760945602288207994463501351250926319057186866666559824137303479452548806470855311215502408076988073123956963490972441034073860935815987805983615639272152230058622735191257446729696431574117067823031906722692877733705390680952670206382858641858354866765874142239039442620665187106931581063338582273514437800704798091144536988189411948314221930767893082024315756142539162751801939722893808673718635327292154999206464079696405402536843733655679499082693952026733857522991499285675697324284160717333786065737726642028207798192165369508989490547443926691195409725180336326751405940935131610938008726899248035070753298747038846348797042978217869778848744734922419641492867728414038858657936225718958597169668601502536766529395063493899310516661785195333531560949021818373527344802314611321644989728892658742474063533345658484561946408742485730093321063355723243435497316757860305649649104404655226390450900314281294465655821684840381279113783939591507317571314905465621480676803828203844678120792321271875395080705846054420830493691317183657797928279809752733367139963433652351309311336316125641918363537321043243326250407527379739882935285230700367545391189706983215165720860788654161572086892112222286166195717053723923892100727268026559917744218521283386867617602715678473217559743078748580640797586218128529891208873213600969806458197922885716714269466461438544916853959261918698934234228912948639780719352033978987725157239108173923653528015251682499032951964702347295598850759301341944618463325375670531712933697419552981975146868763845278180504880604390995942170160923816041062047821359058297625151367076640125370005103968426527845763705982835781623134996740136124742593253124172065860794091199282347797470585461853932597287853943169367721349809312894160326922052361944039989324064732132645797776227491036445842569433460740696642875992981541451512872129584100837418830662106684181550092619113705523631384648343965935871990961596641794551024887235349976906266212555688245389455199782864296959596620255950386304959317643598773049703567962418514800502164459297744361433171082713349823036840323949459139591835105599696969532864084686586509455559315269450894215950294994860024846631550690842552001543221951951980061310199120807856669570262175048379447439628780952569781772763379058782292974133047914572079484831534661710828484253096587063380931905793112164981540570334125274987009848532778926112945294522887735291984266286664799296744141299853872021921798566032629942189495150846157537794691078808396470970264144023046446194232937476863814082276899243845870110188867176906847103246010921942233094024865114751936491118534856588896903522722511076668081125095167044288455559562835081321375154257615168382497900676971185435664560583348225394870135657336449890183170620235504670181902876066399755807518118931688127204400379101557482061082308893517084083443948612572172637061610127884395329653241008801558102578886393876418714507498931859195360699661331807732309794776302288071112925495185170384681281827751913942462996343460356477979726721800005728019911166353673790423499952309811786135531504069116238597293024711863807843845566280212672066645916663830766716598506834061437965434063324574292286439077515850234325903708357907193332083277223006123240240848694709020987283287152638860331559160480518980398312528328743698299955025213827525060030553517029201123589427196659685804069817714722103976636511588855796357219775381378292343212341924622076818939483623182402904022157033899616793562694837306757771841276208093683118468760453816850432394357996893139755529451994585170101836227387656449693466238944050644462506067815781049431630198918953253565443063456294408351568344133195852118126690706133750843812420120142509528780861724235134956448285368730667670376114638375863108369804774523181191639598864784113916778819417116232501076560104214492521790750324829392296153131840885945829984441694007761820471014221501240402501511599305039700698393724988344072843794732946491407734323044985061758515033596180849847523959365109466523502076370694579895659254234255729757139754898762093662209710754082262888604773440662973252744557258670418283523102702811857729674514475648203815569459642650643351602666600956496524071101765301972411645825810009178512291136768704751215866517050104810999658594610641532838753536907701599886862930533487754683365320945600678710936422556869791902195342297500583570304588241164191748083042982845142760078505671211553764495927466720081623321594199159298153967328196442745391098779412489020015898399437442048600029299430564525303492310454656246127852480137859126265218554525257861915986211724817554296251231820193739282771036952449351706220892791874181224939261276325460322170882976679112961119691879170334274837419971382583505953052283043813339485969347742128604419794670470997786479789998301847137815303375117314053800987929746855441202075674991252725585011949673628718385222753116741390057591290353912945087883905351819001034690468379255770027239004955796992786279453909155990450646276893766278433308571858909984804527237377593949418088889307659105210759660836866290272832190079352642088296868093588075344269321292768423027469478980707943112168786262410187009028192356159630282332626356535395877504260263163526989105005289271067189051692373573618643148456445347114948105247564919413225737822133371507842784828112162442033205940077577669658205680357780575929475560482571770112483126177766568350960689199181991537199958041482039825789860850699453997896694517201775969579736502181540940359710434959985970513570943746162933661350517106392625546835047825115052142806981255667897423955385983967966306810459858358957145122201934205605755528106469831773089479424278474911830167322999550616231715788864685989622472415557370225864529825361023337851926279403973394520658328758196840784727118391391119674454930714009490341586145706888429453322396489596260840197765261338801251367537314255343610082426955372728714955469822894933556675294198172034858145141449863075799049408892335677212115146087654620352090592883807494001264669772989421861593676590179883047301691977377572059667791104079995358356588878061724071727742423276248821271096235396519468672085373193730166764981726783429955556474425999170822706935405278863411772586471290846107367728160287950064221380776418848231144629902439287917000115989309365276058033149017091065768970987275500327195331171355591774748135993917498118661095615004464315332150426703273423215169875075686564374388257099515265112142750042027850130746131141352131458201956053132266474894950627081459675744573286352698196336905329338823756182175474828703497904483024844389438009750163714214222285347126351568163941645831743128292760625527952731860089845156207203542368088698982198312528071286159265693656788379638968356435780534732848901996450488298955846406664219616047504414912137866925192635585673855071448494421154620827038257921763914786951859759217003454424958799249239388782479944995491509516562723538028024467736075272232916448569487586140949082797157333080380426441874270847246106291433365677613141632569171601689639086577081484242268877504099873937711006681966967758440907357353347548927330443672359455778125726688486360763803974425209710061928216995205088704200840650490553578376483548605185378317414725277511116468713061878924088733196456693949914232558037900596105805491369638323893361359681132644083077669969468077607191624395923078900731567258541337372012964049427651463705289531373572645563208925650452044037170526023643412005665357519589143775629484264599404616855057805910024742255386252679413917689368676527646529204983094135908703545363425736010186187961890970803718565158541792482218228360505876495453710127182643249414314893721748754217513292900779297074017688503561447486909922149052330189352302759413046611103269245677016341197996351002503639920457365454063900138273541853670678227659116992852225035026653461766743420598619430806205456731097821604021856106371788774817652625888077219874671752632829946461652573175774968546348000351644711718081199499348889494571878037801660590258217314900296881596592485032186597107621277628547013059260528947474723781384189531728678917047561020740778627550552741732823396731913832701189378145926008580021025170972647691874574992387057247753726810417833024358212010111101430725719265927034902830768202409325187868479916446914402335745193508197173251853584840555065729420487829875969529339862922238779023178054783345039733942067204643484508657823017784465163602046566033379597786575747448882641378051569370494717897569712641225476414968971993876905540810090793658058850970950803353908987064272480084206888630263297446186339174792705702455274286419442441754427926181604414717873485536091493416064882143696789159948590020325587287162546674825432647220955012636476399564699426733195580254517239508187015418483641411969194973231613789357587762350618004953053773919408453188105978954197819619288549396265894510281463119679824250637176844979448128006479015886959633640328009760809040919296496387200642951697482702158660512795355880808528727276468645726548058604720145271739219685703557713271466760495144236162775891114104021898336016533328900208744740097110101297969222769190635907854981886829165262237427612498828953905918720191913691117001573548961448242867445763782148506802602270934796529427064474231126386766329606887336074201651016218966871202058086781365305869370507865008654020547444603243844525436723495268980613790441934709344222103868668193176036705521486181719578528989808364623009334362232801305514041751740796725080251781779203826951604786707201115465416322762418458181481747577965740389406706074319520267856229418798280177812729026612209125544787069928798756264851874415616799560610233218092338719986278804772064258471471384600404713568124289350694447607852252333006706303380242916751236625146706320870042703537478856624945303051835822522124138654146655705562480796250034996728610685994254250146046884610274993444057253742261544207169243745014781441519946274173831644719952874911244719750736148174948495153283282739112460556614616796971018673419945724574065616550772774163703095180090530027642284593849577775383096824223527163137779529282956851283197901160350454570944261334878236728702643316420141571096689801952349316105104544828727720496101094975908101960520489479042559049560808372970586991045625792913018237105139716839522776099273660094157358275730557227227877953459737815523039962023446752730620566443033989928895614224597286124176193283580351653943896362904349900158918993594869156165508459710658808430384274640404326996687711424626196001072253324566284847253410798996916217429575943973620841717876162130161498397929223425560852912087222547225891093482154405312857593972562894607528937777957603321365769407665074973709810504316877052812895169072423703396487014534876740302728582671819768534243541051665643965970305677057558573144425308452417995733219614074122601578616332229018777262695865183198721472844000065007965632304098301059768520166628535391433119775256025258663084299331983226063936164488042329528402829090034667352199117568020918226071289651942097400272747496623478746999869637064335934344978214006031970346529346444917206584127014231591185401526089723143492931952500599283006867865518123163961546739187238073224981853323843254938055222023470836150455972889415165164611690621689633891175756378556083452388449828844556509185240352767001292958463775530230880857761113643369687485596757385842137899849733983730423714493165135989068905813399908378622052159782035533873011687716076301692226649626780557718253321073311585193274821228755144993129362380041252340548489544156070414997621150554430294059499958637951586101556769882062213991350709364037676963047326170150581377972718396735680146814355740884178394630897177040470418986091585372296381433991424137905654126595123604490178588698787026109460815910485814570593802636636487878253636391254228789657944532935223448276447563777008474791065382016445292874937462802235354020149172764300982387452950465195582456630705382332200732921018514595070505704842860314524425433108889915055487945115411217746053999453359227416222955429358588549049822551354328999075163284047180082580406168342286053015923342467858615326330555382117904236806953104463727287201024901187386357188480699325256704353496331951126366572682980674829041054996099723088107720545380734704988823790241767908604279188307565288394366240876031014041115671850707267828253382030467734739040891770285668032855935257367204014247647573594976132808074826355089422144467921201862763596347661699017655446478147676876601801364867014771235744894235910423475452648795404925976380417620835609080196396933955924135179882089080734116700204827524956659315249803691788205453655014559800799904094491556384195858789259326648596960560540887793784440017672486936436924066032356278124898213914509682753398247361987128314502736016201219552669411878813416907880934300840996989777719818118299285721022334727945882409293617907368486601330824434455345086026953052684081818466496597637021759452146806110630125340457423260997574280782043193323456922055231222990167041924555293707184144684734814730787630496771893296395385309390830208469360713170297010527494885847586732557033219705837996745193299885418066251582234097086625953009261006603092493066437668246736051378499536451727000594450545719598911259054120835850449084289738369428781801262799300618318716871843305106473994768215551417429292534151437276110773413812300392283237486920170621179165445067143881743262431543298049257164566758570738594763977973188980300085950097755689871481839725168790323118165495010959173835323612652705653890531896791902718424456409361048062694487376941237785332405087847955971642611589925855281193600845868995424932820826035032928690644935397916963256432707957377653129482697612746392912529301419466594216550010987059321600797447438833311914050538139627338109720445053650738122193841662709017549287212774257326688297762221478246332488002777032434389782568717474364478152754088505435090073314146163535719016220885603243267372271282544562031882797691348102731877900046480433626008103061245052762131929826030418889127193346236911254769069967496735143882305970824019685671715031035346994200804122765540422010632127276752646920454856088226306938150455558661825858567530147215315760166004702487481826652726895713256928622927199014585596358397525799861001559354245147547415484617104552482376200225008914626718906100439974139138358033857359016532852708281143605616270475410320411092898959729779460333721488765292956498382220731679253228374438314991979291302393947016708881015705815086855568628664213670252470276656568098490352451739126401883292484987399910630397409893219894692592147507146503748922157923526143729841502570413669526695357618486473325936105242880657712818350905059163678121979004085496100777258494951598463627122816987166857656191447495778923808472083228028601006595821354695732906058837459690967219537993926459183511117621653062407685165381089427034440533421688143605442465193544197318499427440517650341994977098328876836542165776352453088583431088823903371756099313982633398242331284403862749604694978448439103622572951954284776188199429652838279184884062235124508856244631737435163576033143373975168958621197324508712207850145509108831654682488393447764363873845033990086656276560995342532677207669317020724667859120237941999961305194676587123803990179754905736583041457220923832760532191939420750656553314255995801102493042401900269237519353726893850771209180484739805860137652847948271435280397936547138702474791477452097733746500229094714736967853507363939048140882179793732878236399773203279460114198001054968205190830933387554354144672729885145989652243498405636442820939506942858265461953645948435904671666570531559401099477811510900625241546187006714557486529441826980446714997250452476275894547996472778043728287514048057328661458278916819070927152399961580226789978954523691570434485416010849298868958366568965466677541390049333832473823766428252935554950274476649449139375081927103877266747233160797655563704104275090095974936495091466287658515612758075637246222352219050304578551928582107389368811890223747923377548569935118431806798841840732268436001000377603608798211284751155155753740873519652515793880808533518410051175850252645738212000992569849819465602769421038031827673148378904211803419975938900837539271359333519469911630630049781101523334441005356006330847766222145661882549343520453669510640176365791259001966458105207875161068832397055840802566731074311870274505108194903731594183188998371398266802990836172204874438880560981354167911197869590440146574772194611147058933796373693995088203154149114762620627317334100736376650423979848777458754805205299580995789608668426103080937729274329274579878466628794466260734187132875551867845964620115604975846390148241890696888443517087122622561934381970067077724822758407830836979829521520034827329360920970820385300171136835544669939903800754044251122379202988949119765269704182515214806805832032171773404169302979928587510183448741109099796085010184646975786560721872082449331917493517738676698104279953604110437401409711004623520585837142915634387218463178881018627368114042865309401655423785006319596877175346015890459273830492997439857646929631434764763112026315768601239632372838368677411955549964874238757522968821805826627650548130676446311509802969952918641238291759053822059688445531559137450405420833622433333717489455025325131505596259198317809117737793002712427398787063585045944037203414732004172628012958415817623121863523278540492457465684137796232161192286206108902675961584043553432624714370826303588167812508208917387145078074387391049815354457900192990532184280740689587942058900247762582119281714082336402993166740822703012593715354327647007075458876628334575199782505927618099184012124582853031720477167620085848246141649934867057341097287153136114260982992555194827314762586076706760591037425402350715336792368061988064854316847425756259591398852411699322585897203991256121997932597706093035445485427920985346457883743480067979495679521151753016653083617955883921851248485707421355447343673538339946466768942255450246731555348932893660874473332956283355371281240454261360151764810604360853330310343676702163955295799760190769077443810879882952856326712556237380328306074210481616060260505010664998896027171241947805937250410676704089434835664117148578567830237618678938555934164805204056732100842150909094416027297214477708676297222370134383465313420991283122162719380769121318977061200691057335129667893810379063158987171767127216359660375552354472749362517184453149221241295172639435408769013562094356884060508326678185326751443843595514877932439702532421333497066221826855036895697616615144663570556477856262343897353739516114501753813416389671141754341135199237675515865080948055856038042465123816061132484899058786973434133528919387232050836130326621605795454876263409131785764647967519925721576927672188283437234745202448380179125503543196328645926850052777662700101164314277379092376695161747124569799480381033425600089089455536482482760113112708656518837446378494792119945208277121626785901446700681969589267217617826898030347180882163564534226238456809746050200787677972552248035292552023139415069776601262623831381204216315525626624915600497874578025198050515176807807141908809857337087819334420217873531830400236536292956858084782890455470202388053096360555945657652541925329076300043403849269539421573934575716309612270850062915157544973750511469045856364182368838295903289200863458150336926783595667507284131905455802587525301761206888505961930837887934037467803911790238800942519158210072632503913279620616698704204407203546715679097289596276280534121462921951659353106527832016287590815075996784553529231727280833034325557282940580989101942930805640330798366870912253446943314649808732775318840127462831031970817557580630573778206277296467166285908438117259549575999300346252152496518957106709616180504131099986353880571353044361750200772512721366324555218416105409891909320664865709124686432190415571969878820760184641163679199258015822173677840446537066209079644416182299772865830739014239501394624519043968873809331262423526523552269958968890192738076021855451795990986567685093265092710345746173569263992003109131030443106476054079272101567512843552546207203252840197410608878574458023124868528733997547394629734890741429338506103401606965268943767934797678235254203227346159154998194604691576708008342527895698057649156085585212864758871949561292237087186673551940789881752138921544306977659480205228547889917851840579606084972158784262741291387947967978476783252981907281357741563002355824778153801107561033528418769324212853661956581424308535745105001397318621241122930689413065471276293949407347037379309404129339291429984607904565351145639537555854147171328712389627028791872901437120421296256157855866617538377748104202089244273377407331933320562127833632300499756025714304752941294510890540086878476774602651429796554041725001415869174806904289465473239989254849979725366935539601715357779002944319893219941198568599667838721045234186705181243111436056274513074617116173192040490134953408831884868136584392889241510011208329519413288315721340718070522951265503623844792762282853794704578098450572027431826094864278574427246663891014571099945147338495676717815884788956079047683430044708422823282900837688863411775538478730160953377953914879349902425319455021937730065624836719400731701514572261524053107314968217596211726696712357297932713205539857805500553586432433930962992640067397670945291358114415819663227330257060202672677691012474018838551658706377423071416522638148235563069581274168037336994327669472866525035807637877337285760194942774019360431074588257548077862553178625841875800315198195656014059472371820719460571483700759278138018169179602481062419032005205745738739664012745612028499128339834504744834193613170615290953134142695989328514256621466599820929577099226922971165137631884898924516157187708532418401353681652123784432845610746925759748757117125996702964361314977810248207180440748623782494750565200663912065132314346933362808307883243513421723310735836593460135748352821181006105264130031372246387746890315368557902262442839354735227031374220797427857451107769927757733793575728310966287060837607026228947047000215712338211314696329194101193707343618745207303473144192331965353078536239751126858234578407358780869159056559800985988004267340251540312132460158095527100801732886426158299264278050194621738305402797068247804171707452877117978532162880056110552048212063127253538848218812713770077858516629696245128537617837368591132002229234547558554175310889247302103665116439053022642450961204293970497521410046722352889262208033422250683110442742824467453101604307024374053478660075665979427760714020395373427912809542684866976213593093276414489593161630636685128648534610620175441685881156510686828353439425693713219745077340721991872224415457883207388547403928543899961922244247928686331262598433210866237199261353962030278602013503564506310031633425257101365177379033917614055490844969388742060865990070054561908561194840195109948514637655874188581913034430101246986794525202376814950760281135782864466253367652169834648294832234759471228630416114482764346621652241085631519100062485093246230724530551801573809715898271654190905195239242354186727104347811869525827043737615966963038635704164665368150387221713240070970302230613679657314587490782515788685436342646583287338600061036618066795366569120348956579699081987420409192832941108652382974987683044008660343893285988192591016147477940135133632502995086956614762464615457725568012313442768508288571813284264604025355426211554983811311222401805201859581444986810154313354877792040009891065756732368629076985397719366951954323906400812448221231244746452655287207043716718257633092869522337097545442228506460463566417969622290812117453875201040504873910867203603428753018046038380088958673348452856990311543271693713019657464926702555229247795805029430224624023954017166865554672710234607142982577119624375016032605214048062724009740549588057833806283623312343422120754291219245910620851225848704432571998719083597784075942238659042789948780387723661635743323839804277725416342308234489764369626226156814525303021575490277483721482143384011967031243974826693561809196824157935388313088690582784304353454851260310026249798698584135932847745320319349628423414180640735644680461413256944798408339349093808490053613061617986901484875724446561788879220479335720235140120891041573339029843319144425063045360774828878248039607862636306241641433134398949003611297443927053738715595550748819449582109080598228232117406904814042710344327144378664624163128880643733799495296369908100323928778825980984825302463253130373307877130130698002140130077536687287631984148442363163468738315009704796512603909510059293721775171905914805587431311176708644670954607526213713829573844652656704824039871087641518534183615746072649919546068370062504486730314884784818321191595947954489245212558465401467432900885758507746798900386634483148749938520189863785316003676412182088979275385472187251605057418651547554860365987434193119283866282913483174662575828475854823772687093465793465295249562042793224026195720846024911309891659421140598385161806996442648814809948705194911938546398437326039131985375712606992678582487036797109961169003736192005190227665625841512382921690293852631840262194617558713323901249801427830760603997847538002904652643952302576312781959626136402987109159389950340514086906333968170524597153975898845736416053182254752474752537467857897500565296067047726044544362842583529549201237898135448952768965119800241510798969004072458615367114386232118805041281423161887611153252062412284886817860359142927329221064318619909312950324293766949715886294084936594252602435262295868216841599232577625275735775999018320934483469186377447096542771016357838717977251376077673413998132850405638095222251444350251899296548414558161213701301679392868746498831727146120345292874161668230943694718706152143388158705231217482402238546185740073738329034183119060992312011159990416197780980338673918269964381029777121557799345139483501871398140526885476381000770463261515323458485181187091767363566110911428523590444706220899738923013294095935558928215337550583469474669630746538637691777636280654496111678584273107036171738491856937222905993629432584525902434302169868164697122963877017588513229961664322663886699484083444971435648301312270329774347052440772588200955251454679705315229282369652991778217502630463262805266087239229281878560955595440076336894485155184952487149635223202649886646774909309703443892897910759308713221721706048779325715552730657627348915640241822211053420475876032856833391286453467442678527331421683012328786184589251128513921174250476207969169768817435578644908210884179081344443516539896661040423396944936447256026499075227214189255629747111082754645474982001042201934921155601092002401268283880572340582535537319271112153789275664788823346157680633696203827197090069894400654854415014038978080002143726167886279878022343957769576709729616735770715688460376703069968845337761935098513855713803463974218027629210985962133580042668738751723837260780186757939656819956684350806034001207366376333633011694782877506094888519779599316335594933176359099545784701967774247764114052613689448371429719846140795287703497913433669171312986801634362050990932572532507606457195559068920677619640357982192756582957990983969527731553051250066135383758063244966113203339824373952336073001800875076407067558885836848093351819885738735770382986917760793356408013202697950058094139043764508496200390831398080123276328471247790790780542938459731054999042999729560103746816537227979365758176029869790822367295224741125513053548975334508984256556448338610120008933938601579236939093401622837666466924888553352481095382238551760733106745692742960778154202232708823106459602884848556909240381206763550618765607899693588953154023189884878762589911883052153214159777089747355472948685451831962606297754751919574995796190775120832439221163674760141835364409534336630741898803664287993121165465663938624712193249283649395118331166213089771172588671523584668640372798696799696809409979263718431112608423117282019404388714392838129098706902735284973122698538773231752308910065292783808296745463774751630452093985985871265103537500266514993837612251467584592776671354275499686641228303890594327465746591071059667395087463028876995328902163254431615857833786575554330994819920318814353422570045486579097396343588511264573106961743647019387870244299583231161942996566338754093279425410133080824752812120258138650845490650091263736373137833997844505310569746208502922612504653132393666684391322349171504438137192281961893861258241751480482824632006105812816199480282441170382797592398743879753860864369981826277728598465836163805755173757356303895444195325229549460378950876372045407687590502719550716764257256636602467504559923357499379061413563772814520305542423830351178946893374472372788796409058263148084311867276839019018425140839662879343904241176142542641211319382369510522327943498524396224226597474085677951540176236285704912531930683933602099971673152487098350732583587191344633646369920142808543517538401597379231003061548105256167190609663068505827840769663218787385924079149352920755010889486140179110682975067436713933363200730337749149300662077800568973353419038439810805284171970663280361240079998636553249080671883028159917324107775896222448027380338442856564069785247441912041419433013191757910314904652738907879435873786316844803828140495220646338543434674176869935096587546643845533314425218103929776941174482976938700133999387055730364915202518476623897009281773662666792811843962126021901721875055089227343885133610026080657368042842010453812355746074492007659597128035738108331181071258110401689187794393283690528055035857580774217222464360175153655440425705959954367434268510582013366421356076595137766158312853476082399016759416320854958745522635020013529037457119260411424337038326448758334716142771021039714860759435863321497120889253426031906721874700974860658209375209212692547567773042117134504598050940110930767007395410662852074453196909038584435246189576634267061506754046814762295405559943685009105766175198983271183877135502410078761875574079831648487829511906575236908888548928862517400990234723383854350948979402713885822884171713393664551667537891747205576361863241975067498415224054125806405921667253120264306232410233918936294666469372150215129140233086082172847211024480082458642911078349195780944096197728647792066200837016504887765294934231956627820151539927757255624558229745640187086650475456778619372377358959767661207034970214435819827322089067158132955580853595804758696762260973740875661096572825128980119668948710784187673435137733994128734377193581462217212217503172250293374235234032857688577512212871131362607370320152622599105930492239910354310068685718784761329185268471629393469432349155800925473757493319290800660099496223280487647961569434937089651707983236952684291895936612917795532772880408380374893660214002112975354363249268498125954788793338078156024792019722468085276572101544661494135455250211320301302074518057834777652358018571969879922728300244442211392596431798116172524236520721776034590931857985230258411811817426768407296389152994334323317828612620579000003269597144808872765707766626191788629061402415590109134743644019800320062565805667518138124708850391103569648508113093391819471796752751577798976114923839643710550988094988336739450698424815431806880226896302413097160213714527056756264741024262288749232334740753127645761614487143517415906593322098729481692715494259464717536972139582658061215914777075771693327516671517944628499018377703391946981383627578116982053486969391918699961036133495708230937835181858332579822801710139019543105065594388897268122757618289406042503653908569415402192511889386330279792121396252928379363369487718079373890763582222830039671322788565808362349775271532395053244658396187777334093590895117354574042768064035069554017789978181182739984681513800760839190185122992817000230402166543367187136853804302029961140510277271313481835557507147500220711224387088582234412331181055915727416559828689823268022786135787959018460796152524514003169316594683035013433882803305666382132933892377994403488169904011225429069384041998830782533360142049938161469150530097001955968452979958951448844234340593027832705296783379981474118765085854747820747953000280900862052224578208445371453858995716309063304271660552994174100143020951103776959666983389745730412604878114831449581777951727188824856474608515806040241423012506586202461529630151452063520552455484991058719305453271444625616669115739373733290549165848764632588775689746454224485360501820866692690227861964947979512839081855517443061569891869437977378122549939022474669058003065426973540388644045815972907258322280957263140287416848153841884649071335892323059235075391779639472858683925102246673522282606645426860373905494786829028320445177557474298450503575661884915938592876377652784260625750875885936207571782691854857176661773048651948583314044722707364499957653499472682490659528109794875811062347556109207065038900516154815918439893141951256849097245704428150269734167070840183260963724256637331565453428749875450958828838065094491595170991433505344664372882914274507227490861592866397462058757944114061851923185000323961511718738634197961720278435063217576487781851491497905617566973009173409557448084807281315026726141023463821126099074454992597138247924199910839795512720385548375126839183038211431564642544211690920262817173673868798215745582933599902754507962691113296756182279577219314603196606800642258690065941835786193530279237113906731931335203165624146943324886256050548564547158409882944003389667520766781705498689771134915343687392755862051482063364268743714953319306728818105079397976774476147759852907118721833460656170452127505143091267409093184568126458997986082856242097645655445730316510623016805892174154362956160335549383372150071825294344302988359093284356252644659606651469383970010904777598124986132899454183605354764210560962219098355900201548356852991284549954371990826620011077168403462939491509961936568570087369942306847016912683799121779020471711089999237595571576882529332059751034975969150378986444401435009037566015493231118358528595356479095213942757717396971299812511196693097598266404658656329942413077924218544872050133129552551284223501503903978953872091313242038478458365542264550666416772915529575744096061718981087402212669947055482151325440277664331155330393143146305821133901120372345460125295427865222621737630387770170567162485178391253455487057933516811410343295318977694715603426393251820540063366146734616736790198831989662129091527578175758636351537628329357559203085380078887276486838205701964081798314527008503514357572005839255399157611372528319618595356961374459717345276416762194106512348334598942069166253175112751474841102686277190613691646456910359993204821908316729069956870932363385881625092960178198375524073813831284455124543705386824983187795537623510870371732076808237284931533378657840877279634782536594512927185743804333520769632252308498064126871271842784544703437237365958998254604432414349792491299579264593697614100631503686392795308533895321770689005480283496697509724491876635218564434575424701586001570884273598614927362054199305489153637506237712051607310031469206283644142323650110682646522154127121117219909124497791207533273029201153376786143432616857375315101877664458100039274184760517004166500788819747109512615779179282264579194126246343734434650349217928264558944457643055070081385023386444214645821786875686385807512107307933814920252726058841630381966929926066926380391247531898802747648534483034804117266177614808556656268707143602647588428873403748255509527729527000229371884442615775305919845170167123462226063888967916196075791404961828280566469676890035629065133603235455279122066093780472876779477905264077549862754276448087085684307511778990276620236222330435156620847165398890323286072128970312741429041702495928745678110916271203889599178900683981655046052472856702376326982587633499389747757761126449212467061291332564682332433902698696068588533242020257792489163246902350099777868011074081944997385409188792056974276686664074984473921625707870881740286806209782092068439056395459660212257111192350940685402913766656046044814308416215992552908224506324885834730557476149044122185458347840499451882271616163203360112072488016121984300045738831386118438036725428646080514214220733058433397513729958948083732170965122655440308397429457911648649384987867441558715037596620851848429954548805004756750461825783762997183047770163432217779317033743305004875393584133143937061096373540165320890799143024616048873672415035264293214970246195958720613074570128094386093414088877380662663555896108469448603351482194993015329500606143918441006402638079910895346999347054708715883359382850240573420812279227547065707519254564411985262606382407830914220155264245528307810000765252629314347396926527106428587923821424515455871123489818107846889570683125861141161271552190938600940986375344609021942272648585328289498086611553581904401726494388529473794094830803155710463632739155550373393302675135531341347675709769721427572236863317580078627352384527324343755156586516936963749919245963036770542576163573721469062592456939228405036450289987170915536033086276139699725843814105142380830265190351527992170666088741135444357315070823739650104142872374047225440414675277544326605445760635587275597042380577920194485416192933332022304617069468470682575983181692225768329763421796506187774409841903229372935673489236813063459209636864658076771575959764135554985292014309835295635821613915974057864431960384485041878633999459974177117082334184463908326399829069664558717699462810608481950677710215615865177446922681710699602946069535564332190433792145421585636622845862865767738865421749230488101963176559880384603050000250795831946998011369825735239526182906868098169082889632563543921692396555785144021500342971187188310231632677045521282238178784096934349928678533304084075469024262370912812740761585813966445947980064834086242843811960677557512766798038479756036635723299991622473902022426642626673763705812143291012457172498822935465996954547195506568081998574962305546537544871726309000726806690412629731813517391636866208917444785527947127408963969281458629779659062644797223119027588218457382353070450999922568645764119588740652796155338924315939252716016988460380816023901673557299163775346165425970195945391971449917462220748404398169728067882344836001238178618865684021495049942207318770633813387591886339738344087314802896614765478058651143761293973830466822594979462877002005955662296743982535814291904122836562888236351775500179265309053416167932736712511105266496769136146383760446648022664576846655388443560419888992180124744129414576968398382831157726519400020409464770863699239197849953673495136338415045019854422463852770581619577604792980033191652064040806717269386448302396651000268410447666592100028513729678819861380088510245195483055673883845863444350783508808158792036512881285966168677802808535262633564612802913349970713785590167341053403817895622379377304287495384780431928536318187652998260191678562369061148086611244150801996651192477507210178198454161120947850174331078413561759600357928066336501174086336546878495963719805405790658982500218069282710368679940943777180422471356567815336791104298226878394644945589499835003516042310819676788733065078021451452332454202284716075367228466176577874308651063207179695113582130026481960273880358842701117788035520500893697777297350467076388954536650538221166392565458675131627150312221662714461052280819946692890457758977604305687001438106069811525657771487084616853633357499729828359181755732578415872163437413996760114206576509624157326240188474143857691309651183635706966091684196571139607449405648441497259685217900136393606960081800190642933326014210363794697895558240589893925310492714975862330040598110461723199996441889450530066054733127633145950129526505189677121059478375078379677063912798115066062346359304127987934699449512426945268464281670331021023583796337046449811555044316797128778045027059468083018952430206568807422543779050596239953372276691598489731938432710239282472714963259716537072309277109601374316618763004722151075860526066137908536638770837473304556009787610315776187041771873549831453807108169708219419943943124692070241127300360749180746950937470094664782506746523548243868980823103803307926948053431856625021063648968694649785911392258662680939190290995426976243788661852257833349831484461420774325022075134121923004864686339740392173094751992536274308902654672565884005384803822996238654634171099515992050258831970743140951646095451346477275787409534812866599113561655891244207563142610423530707987041112502517824097412039489205515937386869875142463478531045898196683809095141758021003337075874522806714375195413996933341875285909310926125401948300718962141606888086010173999586357258519548948306243032098995593506546897884475552184075929121100792768313275871198773095052547276489699495475593957952155474710600274887348388851564759404199137455839672969529490147068803114798048943412894457112810162840807320644584719532508386757903006927826151862645771374713987050810543308651902115358829541404146844684820903425348830654425571295872511901449168462390800775110187850759796897766725115780835181630398559840369856293480806386698728010613669994312347097128778836225024045804502353818695377155280083955819468214089840813157056091087772488422764887532077597227195266801578278075199715107801828623794328785213162859152400553726344164445702419635058966470524883921350769365285877015157716357935446282590093960381876682937167351352520064181908821394227070293409517172617783749590242203212709177195904765729488725235923933220269199723290371454944480958918827165091751069549226693088148370919066374239582838865043727391739918310533421262995901241937097352139389233263274186295569559338696386422812620686321719092904993304849521871393171553904262499900021507053296020833476382882707774943470200604327054400455826843807416294957772014678269413181460260599643789085013444827363853472817045456012255278556558234982888100131103322415672144106321066718156083197953734447677822208609060595264346694150750648006740091271179131104769809555832866557944180780470594940337266747726705357169616165809146730447246123751923572029730448966192855374719647192214827265578420228487707527840453466027941383027013703269130695842064836652286618762066571765152226423654766635176450686614889245963097995039055118894506380364485889405135774394975358557469511316712514951263521359750372333764190570690684422786150427560876169451525750893407184277590028268067642229545911307993273861360392076118296019033023914589899860562980312647326222069493156831619807832507141162625043324378830904077167847256355493272305966940465654560205635087167018772529488669628993019027881211135250733338140554604511097267814333067023971968868220409069773931603843908578822220083456886790001973505531984702723059211022962734130940451230796224465170060732918587118752065231108496996127392114817881227248536673129960528311787558136174483001384746797046624188773258094082263507659660697963955469878080539820132534949564851322734119475379502581366413500958230095888803963356020563516764384270038531926909108613284777848432933081935195014223266793632861433037931380284629848152151736307420247823372372293917350385166825469552519683887410844324387912341261054965911405823664861028009418503372510067340632971629193871217152733806702064943723673330300522243081485954279879366354852574454341913127652822553929861503760360626834329635150988072919199439637307123991020633462612554077390958956033968513328619088349902459161026463402597050072523499445466035137645273245894414588938680628112018042233113818149171188817963029843298233169909010152210486002153532202464476132750043864595727074321909021144750652914326899422585908389374327182195649637390326669987667639676558225496956429007319583390387864729766557760902200030111545433825696783574151999041577005097617179016430225249925196008819779089297597988481018760317648291645238794517024010517077596632933876844384875248517108950482860407665743883331661978069686752220044447301492355269372196279898574159281901515180760428483078390426683947212629094312108932238990144679912481037384293047944753538749887634807519870118972152026070650294177443191685147858139013531324712746527542783925123923824653101009173305465302108519001138368207405760454724684822080219340999809811741366845338725752517215236439385460400989970667505762107031385299394377535846729188734281978561895424321134145561958076356526272702377443269487443083759834868922547491280508745148559781106721357604167241462719298330874675634240060544839922870025205875700870457429862198813776388334606068054855897116193944851358639374211978134068277802636684652411621787321429409143210359516662182066752642499679811239010035214840111976184892025090992865440240788497050066299169384400903452678670333227334413529189946709902975605465832426605942240539078957605049728497759049606406117546131768994014791687156526445385718588530503150784643907476303704166378703057206539026469084018646696017696407979028175699057343969791178743918854532184500806462647447922302941759789115687089462766452669779571488293668726374677641043832091726957703794940696112274097188798991648175386205764982822540335924722287014631209679676094952980842589975233833754124023929397525604198577238618325499935075709238800148107307074763049793166869923239741158873239225958598209460825481598437738009082475014633545124585460112569108389417033506524386117380678907386144073982341643394488584750682434108096173515247894844037164218333326635467408202428424439207833285278955013335714623968526226855980473118460748947927896298645993374099965179593100169825982495388214966958038951639925338262708410738809732403630305318565542292531309804671391063620315956664756951718701898573209881723729196080047123256988846757805945810588384858565283091998842695051086180693030685237711421333872233619462567896508072188670811212709297588091685717057571617295161625129491011775249126590573125256895152900410811074717600246236867598939279561148164380354171040174262875101695515726948915969203091096259795794842081894398079525376247441206784037766159518744892234662417996255200995068059198309408477211104238214364399906363874945970418064631879531828058036196444563580496914254925081214588809121876182325167129266052241824894951420546597694928991103489505953402096234905333336262170608540797918822540186491590772049812377387433855987462127918346739647736765337656881952156265314313181653334358741975243359857307934120462078713158454101497227359268894564752777904237759932310702905112708554643088795861612430496835556795528329759948006428598129757771671907888511483368399634757645664179359289228601081706417877061909930754025921445912819258594870457066927864336522901310446576413469943565924185170431835071845581452510810812549401469887425921883962442079474647736822663646865779573170070371063762466318819684736325981401119151310365997302548234041916427587227472064918653476571779882706488742907658897866687050503370073155467722579386948041117788917092045717101957955934344657387111855088332801628795731010292986958961469162377083512354340175299504163621090056305997822391405317256580531272542783267730460000489955845508230543396593654738515311201651848305963110137922167981832947351733730956918655329501470149570237743698407223135590657855745158696459047633771390074763601346004671972854453996889779200702310524709891136243410189059520090496438233206732453725434733839712876944447019409868475592971515928263966430792699465965957672042362042288581341777636416426427744051756394591847198088180924293694320883968934726889328667952930562288391273354109726536056286012356236004962580637296271021385448183289609795230540657269469810921063783644322776565226833983053757521563760195623663793007606253193358960040000193408147406557274053289426657449041329230182477458043478004852549412562964717911881607553608689730815729000425220058424601760839084494387522698631924150430913537064738729058044556048655084833983928911713479864648436834088937750237562544120341413573570392439469589658234483054481173102149431862693905693218731184897610718501314123757079479261327218612425210016413138420387409871576939300043345399295779571712879279842824246680206630951145087449490272869124207696046369171531162468563616544475445155278108059602210080758427724793241388501070606088688096413145528585103783345089115831956550375663553659238644989701884331903065156371508479938827520570856874315951847276845107246822168734593194007444322063156028442044602859290054515421797179595392980552488356951941408672569961605968552639038838171835925713838112295462236214761495222631675286562486538296509568135960468503344790202402344497732491822627283361117924005201794198943464256272409151108164912373679722739246501593294654395006491442156357584985585502220965731620516251509054612632826834284250987286367858448337738201310874008829318604783271741116342602962822687741938379835372294446952477457277394682201781606929880704026244751901484313447842170072287584682816978332200817833218505602972027017265281773638873436527767063305507768159160357198824845796932058260446331767347320059782035773787696123189523685137589744719883319861531925935822650957461797613401238603270838322234783592862045966402521001138605593118636121213328184667579220346069632047056311807350735516677608922719419243040229477507821842289505908527493274114257564107596281669200042037862013145442788396889291580593138838960498802539053320844177415077332704074609320135561357182657001534358365731980593879804966991043650594883008395214351640305949785583622551498687044439027533271829718075246397370620512753920952589367950450525277228705496447657819693961798200478011880034895470417751854016374811427030886940784873543753330856210628286173112481171344862204977154960202210182185259578311407125346058124637398982766861490962844028668744990890557566987753581460141467139231863355350161149576736680021220956259305863030418170353252328182697697497128364838399634407021124924596356393001018447145924014282959958298218320743427969075822967047217901295053446351426191047021789823083629456373974728335934789862310164177278880112606276166180346518090153630713127428496868388303141461175265876950022941296294520065894994275766695359452586875365488452493227768375130734705344826842425988364444772749543394148087523215557145328501920194410456539829564722849288113802090450227474641401650478625264475807535239467975058464077340482947357849057105244795921870367542007169877119316961750837788708423433911473322201504818036137940723116940131248758333410536373925151486789414654357452280451703452948262233705467749569415651687458827214914900507076082672869444656274328461589135495678323877888028936770365630260080868393074345632924896592110283348716534976128565885053702975324559441669503730781515761587619665073161059378440736965772262208706043883225285214138622130855762462664677195900641717707935777073843922333891204531102735127489769119812144372429672988285638567638149040962285482103444247071965032001980886957343771174154047410527788040595025731203460573017121591852608781675441603145286022766295420546072967154744736237129153052930437742777218807944062399075023423740372334855969954519282968230474624986739620749801637682666268229347583837913768581213821704771979003279556210037685415761407015639542320306872921831870072963581152104619728648268638280670251693157155170621522958668155198417919541619933328555647798138065253266622861229242296423782459859191287762087401931278774015250615460535693313931276167576764757789771668723342548702698662442288575731847321885090785039646474583486143090982641259925341143784656947393068188737291826020531392995629664729430084085011331215242618612644304027625467676994459351308979455687150092693502553253608316719481200437420695954822112627813876897100313989846865846014771956445802284767640937334511092811369578419266996481056453376670421145878615694185913144223773503332256392528355103861467722480835346831697446064233327905263106958798102761677120418435530171631971399717939046652681579091447898406979329217284460217541909627393305264137012125925941244646660141296992396371703637230624728590175418898553754518974739533571173023954935833977813912061079172826260323901855362770776411453985885581051196625998843024135743550133579120710126613417840683963915110853735882510307659845116996951193742125647958150086786676296870483897276557231300759923030958842955853247727072556502124940325351620049230354866021577829277621004400672993766879967789916616135104019531171469385608043293568008720489094518160040984476453400535243349400801962953710266090035051285841857902510834876009291879804878869812316325468907242276696753009618984623947867156209466260645695298357692279334743948215424675024423024230342983541641823887681880939394278472548007675914715785075708742506744617626170534980660833830592083548688388123866052837979705233506827598286070881418741996793955726563987397818710338104264516194017026647991893069937532054326143413432595616632056725865581623339752132035122947098731224393398376894886395697432277709950972799683719690341703767941741544856369152574714093273185131263445043029205984298232481299015418215212595461191775533803144981924920543674540862639407030504744778002541465151143355453299769407111190685316038886117355120728700886497900643333048807700886492396344818235522799691196246178334357592180895656932347020930895680261207503330536048932502234890125883853753163261861107339317122517283961612516194940571075790154680131899850728638254984325824319862450184644407037430483303913158709698962518289364045143072996258413217960904467632367279562638390985505301225160666911216359516865202816368958751587529097582936451069679008312457318129098446513973021812641169128084030486040301822213445026639728052522796905831593157890447892893512580975055839792367060058459445006161658867888585181733580112913595224758017072448062555447471071217885261340702014628689321950713300539206844140841958040214117450316771472261360419281429345603481213673065800289589997845367228967001332210634455091323350454666466638419473951746239267974805840469458323432045279664118321614774854474435425274722629754960935018093961407216649521507349882320475407724296808106895155046311397931975157948526655462001393470929805501055840820028845217553980553085507292444588115178493886684768766918637339332105289346879473132730954642720638296667403871920241913567773500200664500328005398624116513744894390616820843228182259804667020068206092032489276004041725465832154131228406875331227747300689338527239262648394308782326084005095610537754866257407904929985593984070095888060652374239207465393259804096833879640058298636433229618902322744848323374960454653048434108413918244275800954422691279280615429867579871025821921308142562454786751168171093145954670946185661907516370574525631154583269645806054824937683017347386819662919276852874214803892348405226668130870315314619563926499892240632625071369222776660493320165110838174964434829124962004867233125903462326485783392869767961428816763906773923474592781086098542710186082804719433512344427887965499735392848782848201151157311105699533936158245765371352493935866565536035958075489904069294124826047921570802930604183390585710717656692592417854905595465984873207338627520717057673919186590740195116874517827574971353376296246061321249844724167350236456423763163140133505562204718894940861697556736790772431348842314598421683448429258301765081364691345833414317206453634463324829529203733741488763996900185444762009111796972463303856618641633197811091805376787127127224831585327749012932663562908409871675847206394882044352735495691049800851564645318053867519445441871714277540738256775445323889361001966229335578692365619663738850803986135374549432834730557245548238447003286270221784943419145101856560464352838866357387023137273390831661938275085243582885924461881850610977250305787607355386424863329139534683422024416373175615112914448700235558384754748014941383422143166907988852663258070114484001672525897714511999584436575619701929310091320273598635804731940170059181832512603086903112988835869687430993666668433500853478576177195197830650448880796981066199789961059288618661100677248715970188549840892745070521372554337864237056138124883300118266417825085586356771992371992075814142380928811325736766921687329182508654473002550120196323785753448530575781906633865966494436081249254587659530826876948752990224183269173014874063892509508995255380907454205147134055770510715940913683657289581383138139050015747616191125419796936724721271960753779758401420146797155660527190530373299448047926202525241937452789692837329809845564534278218041123784480992797949874420255000936601526989101519551707350827926477050070747973631622588880177875092631193413951848045468835612428191289754299107330934711564950647611926240392036172339196083886720346890974642983581575183801862859138750171438041493730914044838258596230794935030875387526882359867768236851372728310251812432760628942454287717109542845025289521616246170713860620946667211345655928062224767104719613156671322386009241255063264609515021964663883713143409807178376845802188274763641375722647901081406094572601493642568184829412927393420590857068666569605454650525825374857172826588209771451849194793227498652536210254702565765477457791049826893694823284785165818401537843462434697183087729592640005492762893971367323404267816169259909006260377221151042285964795743904073093694272811405778501527408557575006569085732426827870473786716781439085454929281911252210541991746519897474708922075827610527322577235377623275265229166128493223882659184887416300529586455156306726982219814489728699413684868003258590179060641060036451340245965416902046255432543511972510560654005671205436775078006718985572395060814516853794084836440791266374363028157251069240423344417929142884588134188029836835425970140230564082915913993026047459808249851516956399369008311522516360057613198808773686255958940443084813838574005107803466921364935780719705289097601496970646515141919073226202447625651025827512130140402496279131285982691016396448281475070041113082566946876482905262932408072023827298226503267368272269327289202318455371995375603233304257980462345463997738662936924847510430071837914196851487100897027552048584905736486661479005490380980381640685059520809229652915727131842979582365797655673467757914585919289196070699979085724514123823015904395009076475748760533908376552450359772436612897917585590278611352072893344829889384240792014186451866277700920320256315650429810367289353845677774312112470906521008228404231249864033816741204148898818537385823495182120542599812276938593849314730672091290488667434009648914982254905257438977398723266468966089327510309053081251602909636346482920512432798957974873717376493957000352097728664494918008172634361287820842945838026058068756471697784734830126747345380375157801604853863512744409120087691735688060318041241931479755585594185784317643593248810554000874291308686356772967545465563349969063497600657126604006416479469267803996346531349763590416058022479377481395683194218337293789661469608149350292647245531877298680724566696669679104991211621885015518628407802148925426884994162278686199521923920974275017081659512229199393867510168795168432833002323077106856372644074069598134470504462910120684407266670547609428139361704111708924653908234376971119811564065910840572343092002592522053823091967664727782075663757126968203298299957325625914475478167978433573460577943819716850056070737736084023730888442936419751990949357604458003503283367218429332322480625188564030509864898622092739311853511604494399563554680534750784923760877538757690161640551585738545113664118805593054968114718496064002944872227995893410361160745547027302212409423721700544160672408152406161438039960875373854205030649887092102362878994967575890340254125711822607510598681493885360926835479640122281352985814614777309373870218672357423848012219055601461629778017174642102711091105575967657986021749675490467194540297313720718707254718655173795576632428394088033103520918527629712981554833219224708905897721759631502228123597663967434602001885861581899289812563500406144123944824045781910434988225568651020051714565151704380508103507982350823238411883351913378077583322070529440278454933163011871864781532067034705474145719773478956711329911115710935786117750127434970202661709016029295838982866029611527831446489198891649956302828462528829293669343044315790104824739873312969126366800704326501670013493038323605316970070014078093346967702117329614257419749208742465225083785785353367619094798430644463881335275837175389631293570749553919680084215453544499910144305848076027925649261398595139791916977414783777699885444384298147736198951497039512979369815312225258242000633872376099158808052250132965918472534101711098247510521152028767435420630431143233296272861133930819635213016341011373041719612035281314619066418139002462156674419202594922981642702749816972261103945553620715917848662429610837919309706692666123734320725187017708255021657286705520552883286066930229396362765161735705932852415507622127567732652116979985035264095644189230801569528303336554143792226982228713741454860228822852727704311497450742397206862699867254218747409775351656756265033215683846426885968694424014470376722736070668894331181113121011705432181199388769401544899863700006421731366956582444256132821220772630915047087916342847942058742037259082017501647612655132507675750100911005148217339984776630165047296624905058864855089242035284816823505479742416710412248182880988315613276966192342176839963735134293282992834270727555070732026867184732149552364964959349211439898401909219262718527088409509000856401652104596056485803199376510012361682633829973013575430651028477232119585481202493213712049037644619070145338077038118864800596119650117761988388835041667595255503015675455954186537769476300731602690573722228008663495498595414499317092406043008525203887487653169393934072343319287255332813792721764502563290406209727359462548659688042910396722181373822061499872202313696278997499709086089525254208953537708761375667926784283476777623816206186471175179366523429638917278918177718509184263023091843249595001275589676160775638263859175925739294777129687547674616436356058968211827944053257144920556435481578172231901250605307207057199549380655433473492532104715760006448364558289340234716800707737091210493307816689896602892027882092054232776699659337917126321202927223988160038450223232889448113910439572338400923117688055341384822384769593873695648532052339440233231772290535069541959798563360405229759678027949156984340832649633624857842487293650186880356360939720728097399936450941333541117368705171561833306808577904575081608744681611361038032581457490091948455181633755901438563467374389304111374507676467814922656107770869559382242504430026001948466661581294747501750992620267664181254386582454304809303877684282131598689463678308706883305782274280502439291256112759567218161935741058955554993885457519383770520859952899303788241734141834485242462796692785672957195742201760424054917708627515051194187297068758450936760039919243787389127643436435084574095650051525967647442919686957153098586021498015675976059427503950094733877387801762878210659740827550777972429037968729422597063147167919581641248776457635593318377921501154975024749228887882454343811409317170762967034944017180689807575473740282622057179705627866047637276254324720025744247060221647643778674741745365838673834285619188833949442309809896727784507738744059132171213657093622160666891903907130193202731869212411553337615914989569381767668257925021073183357696715133152930258227848458811810099759223761714519288397192849392212254361468389820621069585107701625280975826865373590306049722533545234500757316389464454260106546056038219701143989926201503392932056933615800273085159070148683406648677701714749750663496192702843593736131720188478529166384197440117433810657265916374823418500225208972005008756779241676484222605101819899335683308431540625631318130559520711982620638097893673861355884040115139834953019003260512864295039016182886900063906873422266361995116486662164870904371151403893555200587182011527264291031232035556867476934081488083284083442986482250749711552146906016025089809136870135658993103480188393762331080377517397495378555002702155544078719700582807381264249600454600872037901038879932627197093484369659248616705828495676099808098011256792342408639277415924130992285210102242433474515623812964043046822650750087839561562958723035618031488428599730588208179003651705484797208365544535198190022270551597894704789910144563367951540721166142872256030421482177550037435064960421205927806306258923301686683064179521870190348961386268827328412277592500660224362190087853495512332841145413406097270246196502659857514351722580946573728953484962792132416485883898795603797426520399792542931440266666963055595626893784764524175513998347867751495478093498068779014745249876816607940761973141930297337420166936224599894598671643700276084655911692655462693022519919493410576755014245728182050135044686714953001133148661960090936883688723668177781987635569536563505904020087617514389589910219231557272841057154682018375524373882097346026592358086345556442705647336562475112942376583462743318735985098752096867034783817310836382076602672727347922726092563418368565283589598554874000856162355621292481639736806014997412440450925514395764676422670998182544090346235180065155244841136819788121736409448322985533417626531503908547489209831559854176869227156975797271213583959185041381101989174867942983933327608925967972237993608792331393381526484960474532123960994515907221853684089734055807046377952260104771424006040648062203637544923481830794832557141520528825246769451292610698967948632218709682429831845125167627565709994182004716038468044553955150788373487423515840895032769715394797398446226749990363229933272083227408920401462399700999155607157058063072611563722032400391201524155180013111089275569514690148753234448268074362051491014661607761768590277690439080620761690412730662855265546214008764000607094933433739967164319126295993346980529378943105169759725927392212207047522721248381549152988844655798303772041214893066533671002468871305506084480790545606117331159128151755042803165725539971095185917007522923704738267724738700654681645115119738114875511457907480771057869629711254886663407521506327852133319421247537816744286617998798020579459331020727998852829622170267628066433403678308911982507552009047147793399697764366131265125016383519195711046905203541528455901556319166293098957334037751561055304115561037035362722379779011211425123739077670207312046905292862234854188921886779861549035382003323131776484513107540926496460414755548374056414975467953369644376813798216329981345176438686475971098906470646433430752584812831089374426921470714803975810225706711204744776041360869763895513894550855507698403318608466971548924405076309165609384383115701693431475145705570462420418364542107186915227183882575228514815740971980993232383674297810719842297582178817258051277779093395629793519204707704260405308380563935645895440229881004504497769562246728629470180087722377586858723741320608169333614385485621656555169236464797767976847379423052358051227913028079896740078404501753867107014302669944125339002149067402111226441342164549963286691219250519918111869843296732778411540139855884793240306818814322628413614817865493172003524085106973315592843753908853494908169863569174944099554481678459913457319874941203777530076265130343069013006602072380274122353688352666287621147253341743498627071290045811606347314805395606746535900453624623032665814689131577892536540778592978642196497725966316083253501813450331670904545060379974274058569826910261792658231843498644848786992052206205640750014739192808579548799014180106574922266182805511735174659936224423097996910059391329616429441213271679722925229528714430474837712929888066186840173551737643878105163175139607904675922909207694680251435784593047834047910059490677036320314079037353577524933152198619780495766468658529153967830878618772669956285344709030383108353929771785979695179789192788986695121127252464094729998095671502711304202875930942402643579250726064768887779562175899762856110805858127272771259215501951491773702745206064168053129721446617319142461475188054546554216333375816004458651226612234179646213255449382640702230500286441082475748637570043160508961644754655185198553844393676268768087960331970212044121237569223527419317992212668905262030932819239332597219593993600235236928471513303824193979261385338505492638642889365392642925899020638684932703779089025153141106322274702608468197022798778988509246496440498202285181908258314324941861816204904024346315749981392344815619781425968384558790047542554840631716558406445218144579312147081586995647083907062680713434625515033218797692384058355596666961242530943644193283508780034824204040811711611030100160237150199326484495339464886242331560776613325800975987867622760485291982001929625419416713820533689874890692355443508790634779502505594429696188395349344595407265388648663363021125301350044546881978564208251357665193574770282120414392534838511460695678916651238744600449000459671990987455518169787892211663141648975687395709389503503019036588817278049526953887896941730733353841440344134229188330647838575203781987158231011490504924102280582261445543454832635277693580674089750081729040597315187585811462274518970838177718730565408199456391521126216063163093174438726724755271240175287518744838375534575356095255955312493459498120377936234828294772401548621790894118629690328799806608196127215570622897346691015812483936170805363501248319810303649481918671246499361218737800491888881053552967852924045575876540244693950556389703649003075116393455910886823360355974546870655331164644534982019381521972850988007491817684649920056036819565033732955297176354914016500691981585160283057479066483336014043830680380613074727941819964610126233097079066949182351815383064564548224948196853191833110440263115797362300746956481018395532255397704609818891464466861186024522530436371420005930964565941703958189775052620991196152873837627456689566202599282285221640400590185182964993269665331980624400402349396600114461668708844494761504922863577000183756679089221995321000066876570249127630449368077263102990233485449301436809837567103449062091844865933849744061535128111098574269229441115003404313647065726596856135492967662252691706796298253201880290914935717511904562393037493964326913060606629882637335526549418417522281956965121595568798537157341449464628510285154865170382937355599430375571265397552915940392502486412470003022313384620522179516938826003850191834048788492425059884439790647778481013733849612594298351426699773783882158554780649298108868759295154380939901258389959434459517960347568339242627108880467638799473978175108911396207183026391833031020954255570244960902438799380931199599943547834788311286011667421451420490873752652092771062033724167468150779304908074268169937517664169231584104085648885084813810450873953024280693779950138263244103217065152820948628642491078399836056410533412502445228057891131035706977753473777707037038495396872415182228017451867221067747725219474940987533241471107732344853327977169237542011148089866878023670577780635100075670315196190006059895397093274403867497688243483279529762653851749510396048396115960345140309592510798713396064663380455707392735054862521961083527516735051645316862435210547057544930902352945470708937053736511867865454578273799944474980458625683120876904314829709546747697763777976000888903426776169223771753170393073649840401120336143880934657746348161238498389496507047682892930270759412127746877956218890843787927824259777573097406422217367969592357194642865180856733186845565630106956978884367138742029471584908499187672241727992774865405882852705475808868906200147158308727062371932520529276142136246267300217061668674189255664831590368228767667456579141579999765480236390969458652864297505905830850755031646444367016694062585057539411751121521369615840053224620293677691231501050116087916843341850804005120751141639548499765706513345144871011106996002812209382860378289901088562097101426112025728781405523028102958792491269356535695630326048939806867904807447673639546854592762320052745571461132461014057215011542974981386895717261722367146726003486877294923706552851032301525329233308547460110194806776679473619570534138540282290530179786536047213776339245196406655846662604179360779967083195166662026985161102129587929986394285437838817154911934899082491693112882784399015999716871015627823430794129221383139994412320681263341602884674940029309422675908560514298277390935978939012194626346498837687664960417506840137436700152271721256478581222591676750266731117610742420392242297848928119567239280767380314037392041886432104390802668121661908991204755188101826949857324450920228152965517718083477150456654000725685952072755969793869240373564612590012486840201539132834522215173953616705363105045158024029796182202456179946541547662066159138626070119035526784315333590676894761778343632918759156298406718954982298724283073768565980398929365302704172003675327813090826451217605463430944487167128286842742285843316526209711814680375353808162504664029328779612085545671838486581891312143786025623605317760145523273592237801440790448313061694432787605022680667705004829950677040925895728680751953873026435810994476656211335972343865731504030623282133222610463650935779317225264280066982879516121027487409534199660006769154435380142139771691055505353121858160676403014956283310094515313669193449985824729869200926605205873933394464825984578129260010338555565003114317948609932729903466470338308238381650294955862317714359574031847107080794721938868494160121029267954108688859225478095886421612336285154647114280553631560926991937646136393400979258192619698356420395442871924385926586187836021680850930829036502461606485585374173870222430611775326434994371056958858812623040271937610761721184649682001856144683622907404838921727988593229465021737795303943890930183401495271203856598446057854452617346775886032296008628608477597166318932751199560274298973784103183269755301499742431178332216830186377831275703108460023129906268436333619574205027867416345870723353843881005285889750591310200989142394902997273515938256570869194945095613617073996126189821529929763509302699271136294782491621298961783781005334042175377869843430384754558375681102865967795709052142351293221442319064901913163668668214907850560559788145710435496219381262594495857783169754011962748493357527827936865552520841761928281602420653525642469291942005846954915382997416079588103406015794291681608753678316982044798459594838172176481937890350845245679578441851902994803657768686129939671703483702404318377740670827258818164661403374495356859192630371608527072161045990032354936340305827903699964468919083271956080794838431829915084725170590577967043866567896657676031941473386198912190338351048437644720652783165487301872646952184937288825060095956783050299870745310848592775369884632447462848775723423242973352625664079355763466215711930311082832800577577685178533452325477907520871465941590399637052355871578343069576505713758790026348904870803427080533821988189965413443481276992077946176639548311471741441095796019683876256960259878213192496371356123310262461000839800562078319839527722667551214463035743788527791612065755356440585336279974143572172485816874878217798018549007551043009035462661742679161924940608821332297346976934384595770878030347430467478669912996887200137357939726188905777793514803534714780545450386545191639212576795600783960669541192556933175314801263933098993149362710303484625697379807228705724291146846848458700836436900958206114695417041443467199629850845695700970622742708529533682168235316360239667606972582891875520255631668143995502126098109729782006850957543005761018022706961876481721878609277720649594017095824407835618187263890841601099443598110913299291546706754467157823153859584281782985134902679084237463134495565121243449166187365325989803223063578441791071786727163918413019572004238436604925568455988213785319040234778526833161153364893742510781838810457581084435801229061811659730712739082510884771432141513070245487295442080289895550799686475331153423394206643138062995493809650038619807554804923205900764814430032292042194686363602147919797146737102003643429952166066047289779805062080449284572175799260855877473896867303605258476278387463375005420589974830371416260608877833661684414666446485224099873208678052467283829686817773917860265120937950776554853933137794942187608031698940339563751280935818286137993725017447213579613974745419309596537700497419454530336452778784410003817808409064030301494444408534926034010912226196114345962311761587346785799396848145989279594267142951361361806472035900398895647367209325028281442843334769215342522940215803313119386474778143865787810139850198616628759667341282402457851711836581185451016540824671323251306980999865839994740403303496991425644382988026448697162297969395223913964719137641758867529858570035109626769006037852922019634400737391625844544224805679687841018595405667160354415465303590656487776953492992497099888711747572477015456036696776343257385187899950261526796135652680862837101692133479053601838616123059757525652816799518536442822880247628281370862816529572145208471304930542691425867136841860600889979823294855511582897304843367747434255485263761402489036105607764914803936972035570103873340407535229459456340441489607501186333132012783630137239349286332371641131268597669994268403954150206201442775229261016631600346706469275810050018630946189359546137055190576210172480202047401421559658933347011728279762373352541531063647387587763834271825410740976328960790604256504516459673411614799310795772915893738521177552840309283343665343509790104200801624667443881032700577441998226881395397688236537138340447092986213754790472733728134656585682718065504927765791589495126901961537737352204699496617021598195529045514600793153003896445134345735873368463455273916670471543631286642604393201706129237642600650766652133944903377372498225135224750084805972382868691291953587443979740145816570409331051769938226901192025464877613142458492381350492663401530262638509832703630774953017690940192971958458452350723605748150980586928115455947864398537124824854511820886102164540814548383504796136920805360475975726537152978890005468620154437969629141157727315425790444193450437062747675889854773414818657195559863312584527260469868985870760362612418023482432617795241939747622213959361063643710948162576036739298638085452236325273989829050451927963943434408916814695816026520003498099458915915843139296552769643480172172913113736521938229516342459960406708940369463167310251987153293089526671306047767303298493308389355158717517090868734824226335495681317699193689543785910129147465298695287752796379353535740114848897637350517324979318532278875591958829131971716987472778161688850968695079314668351595076221858634271358634135833990841929543675326635743309809381108831301478503726096606074384462847480988653127395360276349260641842189950388322100155857617084945742321893592641554702647169967501532576234486164626348809002407598003985814915580395835396024130342740092458940975332122763684999286399697417511039674246754484104805984195432190509925215033871800641037845128042835643038994887311346865447766688087284099404697518324959962062408146711726030105985771494039941263113326849017334058138033713330095732052064153759504102793970304844544283196279089843223666914433293921038891910656195139454681546235761109640090983355637163021077318861047864581305816102976071602687003308471451907023982483744726188895510665339232332992257143343984488653719280642924734780103282263775922977338904187628731201041072431605012355493356431957536153204055127277439237336790083115770632758688034669916226703033111932308216567985055479156255102428676323134866524274503906650588729384349135364797789894520212926467548704421672855246152261101371410790773397907699299530697213537497399468924850923558736047398902952436654191892938406465513260453524639939708448168329211512607807938048160429566964193387859372454268184489197000143095252119015912175756678681710788305623339689364976962367632217628862147508592151550734294626895797870457673353957830660400543109974576418455070293208394295051465314365091698504007583421658901096868555948622782487422756472476623538786848930689000231946916049364209388158274950462215924408677871530522132941584620597207892320131693722773786941537811546380505698374182253389096025808321267104705549032558495467382464287452815128221015792204636833700619763668035086253172812841173653804530008103971742502895053156538116544282712038151287768197941416826069148012788024342062435137990620164673617383101240933732042363082603773816274133911784341695720253724459388570013921346436613044581362824551885121085544026197181656941853785484859038271322700535323192944608619027622400827957036678264191917174436629393337452033483756213755996155738778819226880860450562845164760815203863462118641949674462176239706360146341619623224952422998595570957126692504591386345145968133238821299073751377202354659655973343477928632389103693602633211656333942349930126500764338284495660286798602187073547015317653159886644407419960744647352797989607651454181644952486300800756285267622081469961128674499208677263473352988226925120431631559557520008006175092095565375699686730895456086275422029437900328853780632252831689842018665634096188167730686213830436065833214144488008219178236738186426360129931853248955383537753673256251061034812130764303248026767477412143348243669784579726244920929797247679433830860363600031795303708885088005149747940246879360485107060287819812526349121576204249955083368590638464556231296098512003030008873078366662247627034621190108955224878419695331241317738515433938445667022225502114958588417632935884431061253565410444722550945554965401443355905177990161923848498126914077631752246324987738014967831608244230645676568207484797521319586176483393997074490338187432758253598987470235709607528024616037850267382556655820653839100084651945321672966636189623806730549161719907104598738183501877406982257992980737516801060727903883281033822177492312500463548214481466575987446187384136637478454039635594838965013074138186377486996381070245731518312461353737465894903967718446074270421432521089043224744045272346509159739897301083850871802954826702550804549104917001448684407603434567589606045377411882461307598310238666719342244879106112810573038286139037925871982738863056662837047887334102032147175976072464519978036193289482562172721655552958757753189689969950885906598267578648361560886683048227458761044618208216624324010538289242640394121319380651982151840636984773519932815660326030559372284611688749628585574864466659134622484698217099824058274283202745493876735079992713278536488917669476382734553884044898459215109159129254910056559216143967274567226298963845726517811968803215108570800358589295578502388802389289859924419027309001604320796092843695480740683368314141072355921187236798960010482153238446984779645692450012581721469074952010558923873852987983180586724478448618779571443747048152047450941699748192846763213288146425809375473133463957317358662575740688940091997561688290434184025360202418751640935824130153798640627574810852327683099382948828678363545167573182263831239406969479659086948368903942236903574713974648068301324951570084523394684014803728257340087893927146502420535556492554750736413154736000515965695262648561358058358504224589733698644497448834909685837601974037553679443230825079493546262913817738196676582581365456199314809491247122609142762773130726267555984610379227815003880940245198085682417431571286515189605933609505931786778422755595756249764233801076392093981214260598845764196105940674256314290922806805676119917233888805059124398110938058483742680424159421029448200953026204294917413432777780270310813279651881811794080792273470422867449197739349963576066004862185988181934800315864227580427038688545918895241431316651388439292941597867499926937012316845676028087471079142341302870508822901603072909684867794836593830637757164692161253489835057486192894208128869293080010106328393980065042337948269031626245741345658391057758176045066873232278624578708442839494954556292224095412135642115597703925769167940980956022145603175915478899852750585111682418879730949199050680675782724318887232841392807177228202678260099536002434822267892236088458119787778662926362388303389767243522117172639925113853130654191583398234037014318698323156686576821088051920664441654567812172017455674664449864832540107426085771775819388617991476723667488676737885655474405164915753019234987775890182297892972477211731937248666770969455371536637370004604975100824929513326033849265143099117035004437615448861086052056725953360900635257220640059614417850069783068361483558453845014447585595864830491574936382278262941510645983920848145938438103531989900080750219331325976557968823976614042085290066898266280815057444431121836322401800359785728524380944124746989196548431465212929160584350271375241819995188170970253649699605314870562195367408880506861953826087380910427201025654450347207313190472014583716276922364739193499924887780552867606245737984276329449090925911465392991357070427566537173946870294093047693825140522318919323651559328869791238276818014748223904294356839075129832864113467586762317653750267526294337973547893360000983262110815506956483020734103799994218904557138794234116859730357960944942193309162947990557167725928409315598801946452295931883842264724850062976822110914478838312949219344367744900709920685813951242971787514957482334308152391862065112596974580962784362848537199294459987195157534329565993735828576712992738279360929314733640988858584260595905539309185006631895244030327779071554803880244371293221289321208743712538960702520719669962851717807602202997628773751809310437340530714676495200756878413819330601479113837911853205400804762747286084315378665584051289634242384698659475660332808652071821659508052592764639402924219377378968207308099834258461292912041255135797423867124360077173863366734480717909101877936765794086518133236229242837567181775619887727635945814240770997376836310659137719808646202966331017120097703080907960591952165709459492078775565675165215981885985380461711924659151268133491464038259462609478906318453165812920777184564132001455303541158434868993951336512282017975757370757574574483751704869331965747895010210645748701990207458247915385074838615144162215014882720472289626583804551775251079731749982109208508700598974377025082675114702490997745125401510833621175573998261126657782196694461105914905189356730629121023608818128900565907280783462067718990175708862154980923623534178252936316631361584402021513960164840418637044946583721600617636650914513308613024544452184263325053277294024982143246695869411780442294498316871859614551431491359166736906580916065665502351792424044483318144665300686509540303358423623868707728908831473721040690723053429307199202685981961807198948102533112226801032550316563019448640129958668190830379546496119237234137320828647377427666392857298064516334282414035148053918651475382019298224756368746752228091349807577621479898749991790446147248168171062662080228798446669101259042406346630277424397070108208767705048985797348912316307808549988731505085398496383836160709864043782276026826855857130236727406559512731777927352926583165218121623844518158787016972867483378235505816745554866810544735199835558515367028328123346903972002848871603856903696195705983987502077429377109298092369291701497269046684776960097210418010398205838499179245395458659499971027179524324268704741700856546072587880401928106337070740310936331104831851700207988451344093734003994043324262762339541848802783315865656839161074078351164956605578479898821773578846324024429596708198269991911909306678718891483263153184354050201496753147491681443375777002653403500132751284450760774312212832981817084461614046383405067930857897171652064382267712380450094678850229053380733978385759420725164818511110975509487898775619033794530883511572386230415410639668778757487711437005743087238248857204854168857567358978724514770779183781356824540519555889826479149911927202243745430271810102315711358794050896214978739411665720073130443176552650237564713153300529429269126776303944715024549976493107553399009572765425597852637019133939721793918675000223324199297535962482257247767433986117127382667421109979428266489323465109580427003540208745151765922842019671379319441981718249055567642319142905445623444810126568921416022775293846197907922836565518198000278778339963329729159350591973759889150333354087313143617286333113889821375218098742383634848891588483881044932895376284611120844271766199924004159333864576088201904892891479884580566850141326339714809784221752781040603344764012068425193475689101399376228481800063129696677669855431704470982907662735600849868408348212911538285374855657724945117987687271164389093737070373503608685927302895412247368290904808879131177449062319384119524801454674618935525572035172378156494413363412628458812093477835521164782999336319666714577211111965476913897675492734414378116439415055631541341646105609740825078065246907554357754330947266920133919221939529748262838445820927442359695679285806577050419211625610084391731834530268834081178943341116647253649237165662504583558388779458098844524110840097039725304540116780986467510957744950425421749270674356728549768563400335003767034758256986782476857657761340280254861172294798650948052663226506589405576988692590722886811109936132211068238363803748914475286309567783246009493950454175356707993866645328062521840924726594336993985580167716311594909011038054285795583215174845811553706642177825723985746157893021767845599386754330460187204602919519235922650553726059704321827518934581942823481062074786662498536190962722279045836801901360039251602829466283057054565201953891877158610401416383860568873792694995220582023729400331641730288785860074089755480413780553744602445288138734598461289182662857386713395531432211647679867522471573827049518471535546563956733651844730963858861978457507602205110403128406652724250554044917558489158027337233977574625919222438071893676131927750021283836177488912583796002249017891651970148616618206702376899959649951780132707266545595908165519981367032458556169848225140559870852938905568234778012317467880702884308796395479176138281193369035208299069643730838302457009479365795752146217947436574999482385218019358459240677138826207793400216092011342458763794956367685432663817856972253953410019142698275974910289766353440427910210122951423663213006413606761133804625887551281763596790501638317591205280898410226006155855457117054878765097186049339281719946906523740077889424337234012285862587334551463867988980896378229444588537076538477509829474951140767807706853291449728431151020119277458077060294219102725886499559312403139479057732174895237786918923235541057962516514748060942105797627047785614055937768259971976765263263384298575595850274328443169203481839187769208540249016544208546642061594346165748424356033812326326366984237243221753488425343426484563163207891187589485666967929778786998954720486586055070114159945264870488740896467168546959625373802262393213441684685987685209262318302136063960618650696802824970581722288994790863692832342670501945510097084703220842139150353074106024928983514747073858638704368239455886432546231989779829633076669854572749012141892870495794914220724900229598370120024484544745822292597866797234927467718883867731852873794888573795030385755210303880742193492032017638131962829510500967115957692458111824482252250745434398448723488827137944353499981445262706324520798529641032949744453883909545089618560366529632918707727103517110834399455115530236601016679162713202860130613490532873577780501300114053972697321550763402145985386825140790486710514194626443439627967691472771390707373389672119045740504744181361770077399104380127918886967695194456439666226614455134705531368108543048098869239844265626061425461827591611557059036326523189610041854387333349775874675257466071075931918848401081927248788591276684475583926720169563022693936484187049178820014087108446545799143540002261614996217049029649696600785806054883291919281031571048626974904320629203009055106605281022410360174842240039181845823145651322668974349167530757584586025839852034981152525765157558721766253568761745922745693871290271526418419467461818781066018324234909468109125669059644479960686594220128483656304501101667875121164771788433215506903459838336842821589783832070442099212653559001223858279793466821111984900121238250290408118145186548625351822969840752767176189396705632755236190384797604969444782441513416827052632915732656679306590543294956304154431102737207709506141866086996540045211519143102426917862760912664449763720348222207916495422749569832865321826552114781670082442181899405583064045261856200630263471610386054077487610979159903077020684575253802737517494796414295617845236483086190040606054393595840103526094502307459535197507253650933671413419184125713988751769375071513511909015729277296141911678811835318410458530435265055901820382944997087238563378461778714322274988664065151103723049247738760998783083610104637660457192416150318035318985504358800245769350242094483212584511453861646207297643903221037363579463480081071962270883222531646807512739389228780236842725393089975772622775121745067048524798645014029808021065445762775716100159011019072399152234742720823667167694981514518482970435588623703878197287400962953128014409880558681408719601794871706818532145205539886209864293384182574641479488386663845939028886584465994526705560031525053658998926881329287743334709301040832597852816206139473395153863646155044966040160876960918071606562720197883251694772166215843000955134121518972225784702617691316855802715366941546116513410142137094607595060847227517856076120055031237217349910958398203875770796052614642284200788710622390067419974206888585491653530128190155673985222309068604454679893295702755431116297971650956742663330996744740943132671524037887653356553915688926426695775893245107425442753756891008068655153186096317732726357576529350228747580276247308461858818048149502432073036819289137499507154767838766518319641261689971497068668721544529628027217459253978661564707353473838413494285471947757286707774671319408865538970467521556326839077558453117202104664660714770614492423243840319743054336771313388233339662200749625467184464769339134606668204331468076805170877149722105655584946213209499772242484312057752821691178745569782801189352274090451674342035179236006011609265700278848317041556935166842471694614957586386347751202701036712433252678616917163458026578245103822931179653844103006923606138741351493450592626199557611995199631719612637749466273237087254927108572047323860197973747932766436378210339850685557466075499726158409171941946892524279528129491724491442495622349555210040441640011608092217335445873802616929030764192970768229442830604556645685427696891600030221249968308433468731452099001265152550828057148164064296710157829462486697442776346145035874066698869833122113274419307199383264993194228840377936755165631980060912732467677959679864064109866184807437745540402173867950059090866118425598421614308322139709393790035793191658746077896218310945369059661708110755804557054536473485316939863403221827567923502886889482445599979892418304454797709497317075726379617769163714624611139713182255499648706935400652165679945459324336254702346810181634701122813204803443475964544819454133070798906088808120922095736673454280276213640077613247667954575565628482090402194909349194664398889297356871320181084514990637324932043827956507180315284031628711359176007731463123165795915674507449068063123756992615699152040025002421876280132843805380678874855630706296688048020588986651002497616582112822647800334711256657732875854338918727513614759337160014002477408152497655066880977058914982986531532055112872778131943776053046787648169664502263389787439048630326814607199332144804811992483953780619994784652228227960542055018781259345385101340336068589166685918210788619729583408879114081845055326070755868718164838850602776828333111353189167607758715737819446263178613635530649214739668452973551746254170306424088214672482218144228425716934329832364556476432517194552294751671353062507562443749197636136296635910509288744449107238689165662405896972901138781439893379567028207267210539836256485949548814038505546121489328887483401018135446569563914413635362571280985535882136860043480104126294128466330055821366930570402261488193810462049194518640719168725449671108500735089563270242127087251963360093168286586102017197930538755586750230552490327040771790913335813420496077690420314261679651641772380243809616417784749679994253141990154715621205239105193475179037444898188641316856270943965999505969464324319289101766251946563767921142386693067188551057578585294554860440389300692222785536123821356046331304822957788830403528497126121230738581334717814868059801989000325880982819180300513974520402523998282563623389664895452798245595888490385364571621761893443240750151873921362974087776276636883618762149017658203012126455592093888849125526492451890003909375110136558808536091723499476834807583713905390301469439952907958825748819551833766966180592090874147851726306869238179750738418446535604833926116234109840359636367277701179019507798193792789233659411534062205447102392495433115141992599932040295931429667047687889676301884863950674266541586837408451963637478134639345489914951975142438519693423706390243737734881600681340695773262461167097223003264845013281475347156780839780503595502693653818204457448509336599138212466162709150208495232627873042555404071934146497679565061012784278734557588403716657877874373007598452042285180015731524716029873850372764588535434565353313968929463256931481722411056071315331330443330586229501583013780550305658467560672591012307484132653415464427907466755037456014089649610978623719007664883050324355132844814091118288192149040819119067803940604719337963290517906082353219780381869002117322818590161533698886354720265217401907971370776561818867621571907166741952606042348442983184073913960840543555952361661696711246542491669356459369190485441589195900074551808146087993768496868721747589299980505890642647828297017492105631584284544422807909215035518615805841160847283814907635971349295766569237876999032895490157355764369194037681866853921198115886536978005056862509295817117870151743885899747659869234732198327384715254906727985945187099701081049767086252308322109631281740743561632771660179749960560893878497348342775199986715076382731457562409201790897636000522527100297372703662503117860084934402484997115522839043863839581844847262530670081498493811974234926540994564468700269260089445546114607592020055447571565336329638910636276747365430268550309261250062132862810773170280815858924888413395979798051327052711449502522021862621409159681494458027272685189820336072066071920189713251933477098428920067009997626194917187464142739564485059582861204346835208904522109208355937988235515775414056687296875576162226298345478553937341663631188073219033007720626205880948883537439010431702515176569185688669825244771725777837649094608320852089397768051022331449240016110168073172596090825632130146939520413599700478078638042425926825528703921450101262803000394476272872405149038395949110907937607719009012265737186834314187951086691229763794879279983432147538805805677410258217184754841364295553089965842067233825447868717065657738442432842649328133925731455511366246646872685056202147272176434631357809412604499267227151544279560387153890939133473725565719890006077671602378337224889777277331530429303538023112677083202735749620591335023575488440960969896299069626570550778402926723631127669806115333549286810119026999844587045948271486048196635365165222223019447377988707881767739483639307836799326299257884956631302125025790121799832342269533885376374300330339803582973129347679435392654664098331857588155418346027591736180798666628907037671798552871791341096362598760729516392903782619083553729032086694995640345399267639276318135706364643986731481956424327826063877797996932136824824674122756699910318986503832598359224387310986807841769554765992562177126841809238576030567863829601631061431077216055968924199468755643880179111454926825652240615828172341080562001774260141087262006066972600354851955116581628766896341523293188338584237632344423334104254999567348086879479893062476594108998849381615529223313874511552700044449701964570434590298137844875671787099669626169156119455103462418221835862211405249099598677783125584574968344719768948900175945963475427140631787342648445738366399039527685318443236673189705946915773144594722516538844491687693959129484787044484992495986137391732552485063487713852158597252983355766780318740807562637430296834886117801988261596519943160668652107515545854688076494421793011580080285598833586328582664367122980378128114588139670763378011356329818605813934097182691421761599994629011139388544307552629584158919220023191777840899520931685217296308003887892202691870563716461720133101074078568770165325881918147474665585996325655179613592811969957479580727423711169531722649000684829263654995953949915719918592279519033428032280385954823807246166525118556633821078481781243912226674450564132150623549760400805173707226249834933692171574946296287853449118788594864506854682805011165229310478615160981458799223228383430133651075991695064409453934029376919827441670035112185648332649250208752407329544963665307653395267451672988791900477556761888251672114061048188756305051899619713908732832716317114815847503815665754032635248169421784113855651532221702751316678969526374443314165779061173458442556049143551805158991994916990290695055574064176690951855194702685288292377626675375921789467084178495184470305244214513547678663856285393219313336648685814262696181805116989929737171597179991507981363363813613893896049247843018379181916824917175327317089557427019717861583768251296746567901226393569373706028669948677498694311651460522778821714589444320735923199509617760000542806071551448373329975598463654845296474173108480278615014248927369923589048542492055256142242914835557180845042485015231243085725721064394924464910268538639306555436708266102512191162016108510825339638017196777785530473912658694008757264270748112708390841363973225891373532584490996498616832824891746155521262168130740072278996378087220512642731981091363411909996609601142035461900953535536087557012792971296834271212759486433414724819864754686748571377439777023576456766734381595447100368616860118316648149097081651548657306140966144990708254328376115840338432683549176963166314427306710866243945625527430766364363287506393957439515867093913384889383616451402123977795215967723181904616044781020983086458724608652050063032485361798743991294865963885601942602414805638491473318002147315838823109243465108458833408381298215033580708711167458853221454246942958242912184772064244568211259033111409645414143507385047264525930465277166329226206381617478971495583815512835010479735026473264059417073547904928741896419472029381607007770106436073608480075481548565968986235438655385948569584920832334264787738441267718721570565921796199078723586726815778922763313749462566907005236088931076093985787357368417587728460967026378893961599573544891722937022686350109569415794674321946458268275545636199319117865952564500224986686344854986988129444951834196198789935301725554405807360446184493513316878913430264762525940800492035223325864781395507225517762396659835526912375535289242432117962068824923469557642916254090406020692796898961237770333578297718839422822557922684849332699438813480344383037289237721242308691882606771915292264455902837555147672511210936544160658972371771686243772089385116890705234940758500354171788517756640144834176238343737756330765406566204481797835965106492764615747785052647218605758623812877355325763476423100125769785303024524020985226277136765447530629038486038572340228792441806328544655077245280287903591310675437057530584178063178365732153211119379015953473624564729271483913751002834625547099765484659050275786649052918595737691342316058412387004088052689337055968421227020253750482837294427030622917470862842122814999162544408989143684712067508269468001598162157498188710770919607587895924110558552651639381894648519322212262278583994818601474844779893798476542899526065132588910430751655755543696125608205431571784083307228999488525316321742776446928320996921180665048648743368075411453335725975323171726495121586844456245326545653264200356020355275672155597535071668445513979887775028850628061750148693473312629449951681667904354821052144116621700144330251485573189592627870799916080086912919457976554522064708957329176722304113202240549137780900102809226082568691062372578598480615108262708174319803243261874156645259706680092430609227342826020747857663080813358097778945734776471256830422668644662018650258747865120722642379090625918403622909959164095565265346268097650375678638472135520568478261025487112834806888494746923172541417884569896997065009984396827307114560499851814725261234291402765710394356821179557575305370617058360543766898891496350486705846532050238454944235869547060950338547582815095694112185411060256666544042189604877198417251254373475672922388485149240848911022853046519414988720732428896196570962268381729173883939499024031124073080633072852545488712108219593555355580582748066300114211878641628133213651766014921580562336800788009479261631625070380641908345068146565209563044545810584535905551931826839457029990945640894011617988472557947323582422008618558656887485658622124681858554256354600760864594535716304021100015541863899026682922548626219451061535166488627609169690646110897416969518973795479392123480352114580363867853262004255450050591944821472797152947551316232205501910079390881647628896936013120058215643908955903248334127774221084633149412334471910990031057391834057016621446288677761524727206171799565444934334700265932470709210083515468042240529617604954490077681749403797783652132349065918614653339354884160595877314255141691738410838172691893585769658200123595142630346951696557884362108946727940619618490749384713190159063005281435884474896053294154851981275558271719602845682187632021826095713759005060231641352859801994024084600794641955251018719551840294339500745785524331852970371657907860725237954401835828459297181395019381143137139140646866986381848440020479032497661147465429068033886286359774723132119723951017835559355105209543691233606081702571019964050577878135286692666755187312390110634470094784514835050518394445140493837684026124410360807263993081826059889062442014928380281264268619716292734221886264905504564277642527166043152540507962571717204164024629937663278473001360472585338425646082873246445878840249312289050322645957841505180266423138109679796801747920507135109262432149935747733855902138834073577510995035712458549066888544343083315951595555550452160136540870071554573852768779286843629599382819306085466428909315043945773978028099923184678780739664837180824609913208720110606622955511764093895609487695098462938402834521753872129273906189098476332379083902646682178064079837461320895374931860077685927215229404660172222017288047441802083925424550500653256751927738806439504419014858849038059191327288126053350776539087534106565117041043668130612809685917618982008741231685211715040834660577443525907542114573798515175082356396382750740772984850512202371075879149477262019164625877231474778030330817933405879494390198191425708195709499620692101462178407439685035629379108488492698130267857242069844388033488880127483527467672045344113405773289572430920605692028943008428010314857796432829429781776723925803347450180813978278485467920278384646828936376974151129555983714015204934252425458715555101541647588971688029718194829141661280037848510925696102960497365829128955217953803487761289961032717708937420885945104260621565805896179806598545155686977689856139184128274716473146242280378889997771633379738653482470412056844113924715819184216858778651871511432395261025509677626963459422612339362291829653634660788595177722320812134395919121318149677560058371512098819255692684125181818948664468192263373561220294055755049381712457309506352498515348674072275148917846245067820303509325772604699479533988430362718283674243331915062187588249893612125386252362394933724688992386032057515644257169963213647098940233529963722229689880758720145889132189185950827157967558936528301938587630515205251389295311470840748245219401903487379010704683882605993111224014799918559471639401240670274794212463270377357320924705853101103575430104728162474972479212120251380263790913674925450675162926668453120743727497679567657501925215985471220022173567745443317282441740889057182922157485149849327625857483993683650877386269323673795902725033105506856103698470169541022737756262791821753524558499410085337573921679576754040655018432166196837734818961951263998356623667090072926350273413065990407867221501525951069624929824605705637855770623533774214913336579751530809674645894210454660083066127558712963656875917070857917995170643064166100961982086925573147288850193204858699964770941623075695899655990229922976533394642952554363507731890781108591700780761398676849318849543409902703510158405339268823157914201050596312782641405452422932450550106878009082401448861464699963221475423761760234013070963828663679700767408354298187954017625568023838423669162185032064281669710997278296599245145798460349711674567214415292439897432944975291765464096538772210278545677450244474785870105444682012977158397026997888935176436266508293486008355075846292344968675601871475171361880096680187405319271369124252890204054728221210385672534777191691805765659423501730489138620284564912751861495483872293953979132004866976943588846404581296958296653235668403476631137885885970916635689693080526950485727039467463489623655599059468054017479767414528922487649045216861030837580563164183896126062076111119807408591951930679769359911812105138949195834791306358578870945301502708646529676095459096248446645709617963840474671210935093234668787590368701555113080609616517945944840381372148136804032694108354697974381691930547062784557142876812429868223487744529995269215878289730543428823547927749331436152352483739998201632525604641064203715900492822498675133073560963232040005272056217359952818673424160218883311430009965172032915532670892414670509403991242598405455374599968417041645928733233191030749146326435181776813500867625511758160950239443586600452586194489166579308671844798405033884673822048400130934560518735731763299919281097461957298516305083076698734758882762018017285172683153156394242770422688459777787623461865964988004054788839828483812539519452144758570648474006176327952295801294193735881160479108911629850267285664289723273760948838366441542989509734625857771859499886538998309736960421672852204854523394812002601310463919061976314016270144872392314561885944310506494063376430985897428175817376918661435246944777372360809689234368881371959689252707982453669904495868366056707403913121589612813554415461808316848170713208088251494561213496630851139119646042421177768101274267342171350806626730409357192412715230005583244519589391953370117374355138738968804035738541239802173929576416351677077322686224541987323131622083633481449164759561831217602732351238816898274791033340020626986738536379526074599881827981404619662342942040496751817066059809385409810989413431987760410944599523131279162596237709860252367575150738384012847167361470662215027198320571385563252041888164323828537411942361267853371872070613999301898784389396075823042726204699095270881538147468932790854159175202645454812404132151567341131367735675775858154576502934454916435981806605610509357206204934513063929028267311149815146203105045279439651575105455384088397585188198722440783840169782654929586077113607787029993385535426092227047501766346496508129444242458044798268586522304324720375818637892561824695215435035711445337698640751484313907513577727992360725286451439190751461836653636519238949800376046577804095139847372741186001351252854926122572873636600210031878504951350203490436783658228778833911136538456868225813729506650027070457824699286223816233752309343435293304574562022101305133515902036762451643370942623230403351524564381930988577977405493863811578094595653042448273171834062078086762303323852753788139673280357133620907843652192626038253482413549509209342697756316838296974116764114321137571256528342076101792644510604776362180573764536345144491347543716684261727999680737874289917443749197574932841154248138908079252910139989862184548131573448058913043479548161051642401845372673712076543791155153380859333860998674472478271138871221166677978581411175724983675517693437970173658652841390571271501807773445727651355780316255419043731187513819957628331709550937286326470342946898096135800877793355583943461520561843599523818647638541471079818299685224856710001259489184688682600868792234717962573598186989970230262259320536090405670214811356780231534764393639485143934466678511487284363853484275369253232696885073770835412397052487679052523479637293587916567504996778661923915588954057985043322725758730390417909941363973846029743649807089429120078884000886492613224195312325763656040723232269179548329738835754591640423575687856827517777543611707674969494540299350997962996582782077695848809318995947496963915875989610365819174433021349071392267691270182887117966800066185298817419178999397534884618850019733696743866045710681261599575236452101843273421030197325454684227925654481057450190918536793489870505539966795357527817482074261098943143972996771049117056523153197507222529082271161718976362834334471871543933586804611291626335154421932231963605860945511219651126399314351366040845260292582546731549513248808941696417533717554401519840944738898779113752881094148575071632082866267738245001497393633511750294891885783494855259376441071963090587766397735637215315978039573281350944123309491891423604650762419151948129427999186210231661998555457901025608365691109230110813210155048188702109442214236803426721861873108589156699839530997075972025596706606022242162371490268767691998469709832143337988721038068207027363805358926494809377351732357581847028018790713954841497655574762007406495789811127469413872116419997280650077433917580249787582224682768864800331436699347805165685596553885172791391670400405336080207972971672054607941733832397750305117417383310944871398390795159320685600165312004128304550845105027238365528447642239396081307214167087515180790679575152297097374806714541262195010216852122822376062165180736187054032523061606820911038829189938558826083906110750522614623521161409462468656025902424227535702636087625567530872671262226755093350857721698905098784151068445213971031740130223241332373753703976738824075496805215712148402566097579528729276305573198898158432343987127815855659643129703049953413918521086103933779168868705714048540668560736515970705429988259205905072792386045161560186529817456638431674054117620289974421649238424731804757904486797133926536822333612390804634595108248483939468163364543253158991743044095668593491808419166379526195935955729158731689192165871887791194772827983051265292650027793882141632782809607122630406263937654616125130452268131105158528820580817511174579169610723186889718714584246483453519258248295091901116299145635757119164911018904036857252315703429209091280214833011880079043280720189930093779074885103731180843267804294428658052182408145986691775386055668924067455291467516134050283329908248753947991419916571705038076571440517011271292046976557684340323160847371928177925225012441032957867100755910316961662816989797243275343924883662688811629844627835772624908098466959640278017017325975275725666965211776715115945140911756143757689539380078517845343400038797410195855958589470957300565838032681196079023562486098827983398542951747790151584310804289927890482677169237500711630960867019883101625254947866205625505992817299548463675513156011038395906254950328706332587697449040576331631168416492744153384990644893126929100384157361453619107309690471907940883617557675555681651165896856415034851910883939136856675900588861468998996084894297134119914041096238205992259590423543448201843219026486332510279590580490067488514640081795939453355903227106632443246545425744301993003769593456187079507690335054622471390658269742409158315851275713014977368030737056281959430836656973035547182755856669773279802410813959816495265318674582584362653125124081183313650232807531685308704351106048819208655456935612395542458622154090929358425754178395384355622403249582767062959934390752620103684374193628245975315941284868281699756997441419407313444723610753545147524973929958665924712500181785636607283164598965611115561249580272663131908644610553663247490620548434523441127094750481814781782686131375394584206399965848826811666794108993070225370387477902764230854286507307813590197282231923079299418459542806546476853253854233470672948228130089417433743273987716746114218109095386257872700247676646725356965427192259761314567127936304534218647555277654304094841915370385614012245662312211738543210462315061105799997044160204329740758360387828000404597710208744234036584764431529229415810333248195436178126185306436791986553680859794138182105529329868971790006340401858057110164430313783292108115749889248179587344427493304725370865278967973453598251677655289264859109414491246127347324117511992943918635235906346100734130466429057233413350425125369543277970615434161624396213347792816594962496190905130044281220951851598202479665372617051617779972050488513670972697764271188450484683710659361622192781634943376603753470760484762067247489365698278014442198075422479403062193637200450309336126077829222855554146744185726286457520435874820419353312890527628242519694255684704516380900379903968346371075367174520919333162899646677353542893601319391945162962836602204955857861052859403081028918458201306792472475323779021499167463767296466541495002486954018994397061303076353953844034150165464404015750927589033603494588271580065847543656731678230281085091292070048544286024171358571314131953433876157772180937936620666414748327336632010699344975443845026412231133616642035052060764412850190169075939083461281017537986273414314139244448522523791629220310073609679652417281773497950552336381603835818002173133945396191618275675805945611595562251832818405436444423829054354994380662468745896953357759780866431297488647966676823757205503818500027038486930345497665123431526339924284609959371857945111877884942175990642080554765675339418853587900167290705914692419947693950863872422818845483536506155327073422091100531317339810887246642915083011910063272374335582770887078532369291262359589216939595678734793504531736008969853306303894472903244785311673411991921326786320238999612168811202724846579153770575167285629350771274806558603615024929864685173185077750684057425661647064330935816311585292749926469946592491456789506700405088574983277304915813542472099701145882038672817636959567416152013010536771012667422454386921830379203603514874865239785062838713439792543414214724795125813641633977304440396481791901833186588708269882845547245371286501513057027049624774716730556521252497033615865612123593314417845646036787736193189855152140146990335005726848738746793867084350265185099785696206039889525412284589924798624591052804750192064468994195197392028698583839051806315777008260532825609141438894688347794970912019762595737699135128677972030613105394352721417213347102791562594977757784400156311279502482677765018170137961808135117957662106138540962458879307613603693711250790471347729230044885290699755396874379835754668859426250071677886332031490993875358366884713364704444026241333487744972495297185544040474881844881340678398414667372726445908381286522149395625011474017298897633455620814216067393914739535715418002146778493397699053085200032168547089002923664963598798134978604185116770017462068753080126140848496268057613449721391616045579777531386402662836862256224486912477255475601119430559183245713590907007264482128398755951058676687667683370120603748480158620527039736398221282176444971741079204052656872923769789584424848184751062802772652319533839897037414416134156071746392341173784776557522617206091563427468385611449687151278769210481193376885183673892686915928757832862732282269712739466790379052865704335443436695866774904575310640232863219021080397123251297740313371963700220142983734086206759203582493523088737113392150698401042677280725849099395084810074824056637500426295759960361298546723365474875175778109401724114834579769533968186679723604646397985866869898919386681994259072206016281827617173368760113183617659746452752815742751648076280137724535189211471844314274267423921919497839678434182947636458892107271810742186193295247684251504475117712353257549456766682329253666659786960380988903134697437305229996200462403933024507366920668100781822923411930736493221899569057818699662494628788587970183137109601719792784542255323047681541726303471292864996046501838205756974044866608547891985717577020624402934713121963994396759528845526024170841361052584907288200064296125578561612435794381231212312177554283069439159242333518261254016258011110548266266887476454955982895282877422303231590056356113086151356680536696227011836671536796509812878161036068289505388549825592294713640840983463092953428814314461711663685704008399259762816478988275066417347438274736473303170584814640799662706019133718434304930791976673179365200066194153276667901571071974448664752707497567756157133091952837641712784521066332098525625744988502525408365768458916954153878867513912582455392248193649739952666484927509142558832758614596484253370914037500026811571229742244521796682286412904704480773000774155381624821728906436348559477135042328159842159360435720411523728476578374461855690058347347894682966235778034156842606153916923891120074748591210059579366492571253103135814719144826999945994463811665263749651873873618064762782468531493294294899391880459865319907440541058745072583604481511072781987001669434501051156382018343694658978584622123849272777060908342779832377594285100706060010178128153829943200875486652965661702775654770763907883581853423576216732420475776277001464978772665862173365558579788186706155626007757895098659591665921248929412056516539695593801962357372235907478041602405630539772479569623013237369730256067215351910216471139893643691080360317805394207181904926991133782852694321477638415432051284884787640974828202525046388101820507307088418208613383993273889813204185361233330946232324744444338335747802318686066947185444845486390602769961021307098078457111366739806388399606154033073664566945746737207604922864330598004395824410526038639819100164242598314716813009430645241966912655536207767752017437855357542594475287443185738802206827750689564186254934167393855539378932715551740335143835507822217059200810740651577888250538098506925811143824754868070622028179699543490308261768654659397861079446591650748571855937499628997043017989633380062564962383265761340281504169177862407961962530233193462513315651201756899113440155141685951872419990623951435028785304498987680203327362934955384930916655124301541071932852980498347504152139405154939816346388971314910466266883156983274586759079236413157399164205584511027106658213628415834133332707749039031450956246807807533422374305654534634268605533924923237155868774352597388348089242059994389216621154974015207402997447740904955607853300222576293459124319349402045113890824242966746422515792907159765061777262460669758409069709787358003005951409719666009220889958084089378772416548701015463805700175537654030340379663090430100047543652168361074649985230065103566941854427883106789020789029487622375064682045350692817275172327132479824698533772812975402259550635447325479836052739041190961063650526444571576315365263979149472681342593500172667398716264684323306132073168502750249605269137363021035944491535838988528208732468865953639353139423710929979540442716786456722109562388275837861554252879083355282735215836584915114247971117811927806836889674674844644851620088001764054923860594564678904355210412648264967516388866655275307345771722521284725803465675068845809579730486190449450867067277634610185791744860414363834575701494427135801772577765869080638658969986858901984414011558083145906108750816244806206875562707785333440392312772430916677751257281620809596185782082247711582941340661293254889326138169029928847323659901452982351148931261838351099527307304185300817576369497599839538369113709517873635234131563160961252962798530855763835964997561971536171704125178002032812344155599710601313694664198861925421007410432351517917145754849248521253857974830692294617507794658641987940447829538360956959156167294127495017239577155245244669537969173624460456801587364088305039284642220735146622586151899240073867052035965194689434443674256903236283650643244314234040010327259412895414991976489250322301987777587097168634551122559298512120531009508665984141811364200290647605411847520259163091264891797002685711812724466738058843233428693432221816080923624515161084837730325075433326970974100634452078601439104768085886141564477339159282385795933505038512808248552294969978196085519191202504275699941042840706353844676771314237902282611360876197700420888051538825488209267622391172549636178913891908642139437192620279380584539738821795045448541531029660405006549992183844443790878907195220010396595902973690304945593313835411939429998732848260324649043466473937846350974574200735178973351427169252154712218644937458928229790481751641422207174197184146894143921079170051548357391705700263852095277571758689987655698520911931824587204557654777088449423962393166442124079723153615605487688627442444749603994284836987284274256415794148275616226700771357717220751318409180277845134241802512995213654751337092345806133671696492651233435338926691452085449368074688115234321110761172622170037521456574069346479007778173621886541421449552791295179967489537144761161667146256095548981450610746672462046514222145296200618430603926033949746206062384892717508037475247002275124762213420492827347866258327783986283153344174774764047535357373290098962537501443181250544060648738579622715172482367735514243470968481239291985649365081234533061825761875661763018032203248093829938256115109774919929412950042252253052954997836126503738036153558082034704866316924073817116651339327698845344477669597051048716649325538406297946862752058847964766476731615994651297843036593006231059515944099761583259239022718204538376827405423373377508253868739872080836066450365723117459548826263253735001408214280956573833240859578017842241381792555306762792394895495479783199093060661329008884855190732702163722353529556945759416423122976828260898077691593852979087455469972206908318223864450909805944153297652984175242845733643309626449074425105251813862315249215138107484740883433352457923292432193877899109024660821026578933904640958139241787582598020587768801235405077457241029984802354913462719352285168011755164097699887525316407823187106196964734133420862003054968712649563811935560475949056700674550956555791076823537525055096600536059188529349826405319988644278685738100653882901964750700803859327398124432589252626788549857950866903223196460195840643450436096777899561313506129714097273493593536274985055464015512091511471864602156439754000737070966538309109842938195733214876019061421967915891668282851722004225542509821173506463673434315320660631397583256343314698110977989052449761369430565807410624606783393696158068680283048322135546196776623807334949053209631922852114803658164742096255661798649086504106232288701322322628642585715221319708764373352944306703255480676804039087268718929575575684941163212443818370656883367967424276773627613397781060796611732208529663558562047414635938676002529431468110407766382336878404142245589303335030822852525938674909127149812012996178486302448993357832520130086257308538275958346898871907421755374807575628048523341466813371221377199553658388445736769038355635049968469514527043870298976811773325167015656439239507430861570495602130458334038713886567772288429101056783668327377853007401698883207791523499167137650948058357762262473628972919851742630637841381219194374520694745007077892142755504604697538149416556594923352690818669122673906639113137105889595692993193859610278267049955830415567157116932113922100765401053500344278762131425598755314526229058840451241628850356995503325258105692863312228515223294991236437602348090354558933571773409574029119467531873137661429354858228206165174558714273568338489844738164672528283579163465633484241735535960448973869374236768828270334028673936957956158406946947755245989432457997938874898915532597205406311007098747581362275640822962881507249693545729229123511265811198619249161792431762911595663485908200974967788820975713469240506657287642887649490404189943157613641583914977755827353668296511497328013143621812641721091594698255432562570104961827744959695181870349045808000963937199164412097982580466214837437117237099525886091330625978577940321608673360233124944624913868851498916326506640351866936944632379137025807062824239488225772338168210853744100934720287087685825769877585691593580948798112594283305201557664210121449823285744220523011449381772162147892263848535376799838562835326662813017459247000894114227984077423063135818576645016360216740102623965166038791327844184872248246895506909588411854507595431032457335778387141107582891224042202794449574176419910991905266756191341549839552210543631352863094994554768370403290242425036180070857700391219546324877505852474960112192568240933099023474671409993806601753790244360474055500580855661975449717485082784049782352601242574798514595489455590083797332294609346972589743032392459828464891408078536749364848033903629182178532466584725328013897461548970109883281158620301414977151248875043534427898413653362129940379198687507106369627904888562079310582010395305218217696681631022434665183131905048972925778655048124047815622497750535029496877662275282944557893180714058643220281012451326971252503114889473702979116275030189311152774093222905705453173744326352564894667181875320510887281166021255074273805868926214352566678356942993419816154839473397083025825753246856677729042670846256711733541577917273480571883171310220777960815820312198012774020917460062096158957807250180041226444595676787589363634046909946439777745723399864921606673206749098342765766304452241700757997780249706665279001803322099997208370430083510203926999731372181064160124064646909185384749881538294695714245365927570610761583611698396603863931386963871343888491275671699545552761906739107162719220280939424564179730310433914671661198459274038645430153524583888065622637915821925679285067002317215337724716013860415647962757491196001031822773564845053509739477221263909217477620588559771541848336624603834890076832850031902217469916830159141612285975558809487842795582089711641061842529083325854870543918613209444144761201545506688817514839633146677048691838894635327425485962086512887081849542896573231882029006902257126288063302789535590087991327856880297650140430989894078481251611984647817695507846259442478735933332765229845332259065457305980981040482493010500032365646937427360438026104046138186037747311788907917977272100124132579575160769826614702253501130917447600637261291566562708900937368030124238183869658978892178933381087985968403895567986970002214677282688784764782599978206810419811406993212564960146901458143885718022100088066066589484073089249399649809794642467941781829036996703547616164439532112542020096607458894810307948363602627591696676115154644469953711617131469424297876487451506283882394623610875602907722918803797509416230515478083280675687200144396523067989917229852682576151391676727614308065621294432174770811405903358411999726942337560750119278583278286055290950136543398597556964128413953789084042836136940508041600910662044978604613246234416539902571756093300993992368154175916276902847469077590055055081423148665123440747600718080719486203643238446873467252955009942751043007800331084093602649411471655344151069577980216155847300671756059069443965490273988000454591469922359857680143048934381219470023704177132173637020426758303076389138264023017061521418502343987379023910358605999191944613786224687443299431776634411715157597572288253879227455961210198512348518205977242340311586890825061149828112034085418665003189789951244747149444413120150721291052177003593910582063799352251523261711044182062528682628915777119257426660906483873233007130293723593395109408589895583782118553694789465939901869359117688548754060957229723170902123414471996738689837647956961343158760731009246771393402039419274346453107544250239862245567641592371000157738169300228717033083391160978589779447280428172767372227375779462495958120709502539536997708946133670740570746448280670528704756263264072661993878526859439809375191194597891270509091905844187214153386125904584123477160885300029759308904974582208516790753470316201460272615713268995018431397552807307299068860217043027150023904278360655711314139968354245447912491773234538932175948216611931151446934496103754766753345177508751749918542316920849399566904222048059127209947008347886570875395385057452906159203122796454563474050687046470511219509374007132798996068492345314156387898072063828496198048829220709730673500422324940772304239367253594846532338859949065522308846327744771548960733457497155392508324243412294796431058547823978588732008293048828517730630836145515439991210723798538915710696691525183023952143908569285866299897748066305643088643365441172128360964044608445072894748564562531203137601470294545081054746406779401036550287620591866386696719017378539683887430084760304132051896908955827297551205297496607858438237534120320087218133397638657598616731078127350142468585140249433656940337027656535894840501266197695889141001934259978489924591856234381170805916621169753270312771238439926333558177155853107234718591610426216524660361405712507766431880200710202798935720351992123811547879287094362896612649077492307795738907518776666835859698185767717256792946492484895980519396933759067575689847757782196878607141165242721335868205601324558295236103583753085663139581767387405449941063364434424200789486494430492444586166923541557284412456780050020159465350674601659776941016041294826016131478481244618418200593330037549008358269054892868084578259742624354582279979319796300306574432985868513419979778896123251391998905494902084220690881371981619640056857209960002125679593588965504323931937663760163767110660540129358715070998232038210995315007692805691654975931667090928399458358053473096545695487098883722120593109182209801977059086102501961259789667874123203219466001975476068543485995690116026009370002694331692214073599101084198753613727743254497564231478524313286813540620762211858951889960205594094216106598745085952406801563601895580434648606451145565083818035749806500902123435161264614555846970002450568988426297078124885813278249884217540513427025987067288117812773401399173685180939324611491953838484554138765777391139069130243774717774776066685285865131237610910695838098271852123762985599976691714776975566066990574053747585149999015688838389361198734965443245709660535386361516702027456609755788008327772898598794985293315413626436738432062041317076876230473486355733354458139379826196138747203975396673710947927985535084392592472405401069422006029071497162345776480691361661604101889752615536186685702362584841578885606575087365284165419396877288872916670164889208152051254662585232641623474229295799511245449632378496110972798512563573245158525383103658725273801367992221522184645871530410307066279614165991521399942070323598353246431299102297255562721753275279597125449606866037392563606508635528231904399041440148840505024453212838440559580683469132929903302248466520722858764178633003751363788430652851055917935549840434187358422896254239988950374660267555251514842039884826752723556267239385055278024171174802772589578687011278034022001378633746788007479325166587029410099531573557774473702340896002941672594422029081763706872246127322918282762065153708447216845870969784959602028695460605573605368693985193371307141330055148272906222762594141291572347989886783467175151151841551878790493463223249292920176358210717854731619729137795891830164040949646657931944626124982351394740541705661895415298708867767455159138664245954478759489282871170978342524577209044114534212846955762904897653090455959930272247480166733501547892113031436569050969341542607894085338341618147312359650248774172560829015771268571271699085510510358495238305964417272479029547494010150582441872595906470158909071500655373523946540416261968839885544258820595093856088100606375825059420553363587885390426984356210683639494716325095515758082838540083142895742016443295564117636575728770934085001201525762991270503821751429756359888331656991742198810982104471222586280146776718437681743582511696889214155472354076579115230186841355957672054210512516504763931367797701961565666014410786161185207486050938075109960943965300316001791010797195300420187166770697896060460406825559985944912025655113479978399168442993121976221911282277799781927707633630581144236628423099685435009818984088132973478651541099478491560298129683367997751509169176437228725701572405220086472722274611818791732514419209612326598362551700033701793175008219802353919722904308682448529077022821377697499686637799007384580527385392744524244289717179288366641768862295657798276268985494512300088892166737928286103847100713977786613387332842901469983882670883311434578870961145336070180357521987808610216707507028722950988893633692658193796562020766788303169318663101251569522979420550816557661900176681450024313871550655497005910263936404174252649493538709385137238734114784308320160584625378810518290028444902399519382964595035862736216031926098962351266267575420649525770090919657539468317499783814930581662599675163488720972783387846893022103921650227527848579089139347744253355863859167035685420980249645830754279479107776073056563633058233389015988382243398095471003376873001740627898472880445121425200397630177645414910367107784959316275089669160285352888455374055497179349421353339287877456199049602811699989141189415888699369479001804051994582688514149388844911951785463374371364014936719349080173251134071740057973690952140091270476253687390461145056267749015991721269502994154300013692448600845410114867648021858898374234169160611395817029607506957012727816347968807340545268550965768252114625063389377058571169421003754703695691403217736170645099367605446040278094837735163430852344699123635165970434773736833632581254819082693522288167175680559924419467586196988345132072332540341060163170858621871079897446998005500249453320661797049535028677128227394745064582056520407058929688561520484706840010509638942551918577498578624197593925437736352407810375045279419454211440096876577596457071042457033902968850189621883797772826766189357938685699881768041557558503894988049382640853612386312121414820986320031213252773139718102993852767385772439836792678537148142880711694068495681791025217987602283964019608580253852263498086256624785245878034703366911530926786945447165645619582183157174864773324332307676734431186609526741605845209051608521556635152954053285311625166763249929736969711508907606382520218871726138444987301370913979332524549496398870435589677027043211088554444902609626721866793150568135836681605676945867465007192864294208958468567486526740712556588297385894660962260792598157700479602152847173301410985432331594865416377425589323792252390633323982456132443743263472885861771357221621233327685519039986508683765847061926916174162176970140123414544703030180379628165254592837432060607802012389559821187803750076668306601601978762473386663918334722374899572618643354798575965094389324194292096127195975292223207870327601031475544491933082901850844560566347659549841798897695416892057799805872717782017766670745133433167761245802015011809107139138539843735556212944175835604181532252320122766481743545897575120581387099723358289680137813444477251045470225728708848394924920032346451090857853768012644043025772588322432886700529438883161936635427909786395649155896851177600677668455211939467670580780006331247975204424293476546404437546497768768732390486757066329823356137542054096749949534274523166527300298944518464939847348756872146550817965086193931710035658241044673795992497497019866257848752998449049357044554608737470331719842909991085228690124490530869821850816900826224675367377570502704268564267428253213238416560242637495690748227696606119018138986880365471984147273117931753409666907115673886463433337942162758074620491821451103685854284107409050990305075738388396254696085301319578728614408412250847197393318755006662727570758542376738718082936489664111745973196297910022743745745482840681058951909415790711153848237896215192208071451288084634986176809903538059004089714382100277490192324563525133998115337417950551414316786488407316900935164958863246614712579964942801437327196042596039314149572251044820133532943911222534563213284994175348264512222228850259303706653637485905137396876523700871003458207481378092512711655466995343576714296188998013352635946546641035893467300442470002250566340508506653880535977218963193747620350611664130967314077325947834781928243517775976010745709254046238239206992072485410816980208931434679553699914529618770217830191351987943612371178244827534784077526545440713463474725824380610775021447377498201578722371778551430877808204504123605922650419697678745385864293516781988857085961842478129836224244575525947777120821442143504438634980426911508199636962617031327328804189308109777426880263921710419486696247232643742138827291738973233430465784240125527490828818034622918436514069653082865738813375519626079231719204002166695860691500721733471680905507581356025962805396834410577936817704443731155554404245688702072390664692982135704152247491048284443304203092956558952816870121721821502943707208091109008709545204672767318149415225556619802311278242375457260062745246623959271366780465112781372032585599396554697735617248760626366865317366226559478192484336543241087120828013999444685588755268196349397899916588281524075378815927628885542625900025568050342350431301454057458177194556343568636727376933648570181237489978875532737632374118012298989678026497326554029499971749189848990973987698898663025852372070071324663048990051728839785190012942431073776797839223613648851332138772518097796047991420929633135208041617207512732149945049031270864540456527059707955622139334958264233905277121473454681548002465863383666991771385134539719303523038043126242584364380617045258716444958028941194138567254542960705313950324539742773640850214095721795127289506475086452008919309526641091241948480813391689331905423489628676541176962547848506827433583117976564039805958532315052558111461041415562298509216438013297889650504208500616573025216443678129255023539321628546032571787882467850233836792119420684209913232918937973303191011280445030919711085428324985755302536895853705034016491389034988175234745240895562629218330413725933899016706980739302974208405951558305847834958186696132306276337546344856925645464489722698356386815789647202809256571344009395049506163996435701095248943930545783678072980726250057096087845119534957097442590702155389235929146918456273825407603029251308067612310269076415423032204785224526146432116948639560641200560729190231582209041853113799710545480677210937298384634945081236327977232727014708047341723797844058271913634099941340603223928599144860875262036582707523277660063115639993558790853288750781770654946762564913268737270501264137943040195430495049891727384809749277507102339672917714047589411513197765627272034968677978333597426409608644965684283754693880951037822801644956674618321616537752713219137334171838206034552992292198945510041884406775876382007448702588418440971172691347140752394899869118352958702018996582859747604226438615093588666436319111142442446449693840252139923506536777459110064290993262689890982925842131442358074301394898962462582156052586153995273037852913373420452469189375952341967907599850514976052911089381225335606171581380052114412841326915113157108163866808197228300385845363511442633788226146458189910817608482769942719429259364073705833522128113404388095099702514492646335940834047849317513889933782336507520585943967460690425674260093729956525054429580262513732190294374633182357899645464912960728515631000283879003268324248423595485338660041383603162940389129889269038083931794469717130400650070076761790584408931296302480553018149817114133706385202923519931506005042604130916640672932709544524064421542130361513910022844496189681143371231863412103578660731853135697687628319837636442797449660516405976386149666225783188036789871375607336583167979288173881709841609302175425566555106657798126595392945622921892092487611088562181945308887458773416622713222367707219440447977952591448860413169861261627972001017871279947313205781259584577013669241659560667969732625661436660558034619801000504171986047255527784777606036055748613953130772397892511384357197749320790337333320605591753393730359856791386857358196536940001268992131019828065291181159012319317640755050559063539395500158744892916368257447142403045484612546396901589146883918112096206108278782204795189538219376759652458932660162228870467478385462919205119951343142235081100631931371523809267757651166373745953998563747844306932767724929798464629476355133951126365360630251726305695696192657042260189833561830175920648934516981028769907357721631903924487098417292348916410303180654540438510808565356411159201115432951731361571253465479198474207240011890011395141885097771389122299918010756207388739735335527792415572818820699693364480639040070133375347486179864500296264015504213713364290767833165360604137857742883868088511878936825783875630020188367349794921770934787334631322938936457189852756862899378542309345912196599341881202702099382372554853887951121254934874290841499536152086435086894004257708337056627356916308182410197583626177531475396032778125033485804035908605693872243219320969515089779341376688404692901716776493110958717616112348366893122423576498460164982949266256245089696706317688912443982944012845737043844951264919864296924061217992794249700348929356648950352022141013843007345595238448275510085472449285896444082996248385667670415424841553926775186669721839846039266075582927981327152226847765917471804353081200839540183126582978582831678893016338514254757410514017149667507723421138502855206893214713225569413769971885623005062054793265828027786747377593854608581451157308933645766868982758584426709633890774397526010180293227954596451241120726655159734956402150487328469335412371864371528634206984239227595658646304139555479349672744937932060718487035721230683562314739977905452267820491804880026933643007184988809570996414964506716228455683992334838698160124081341791801745058427106188665288525466034005292327433254734644171891604628943155827771648793752518751281455685859065263757242812357997209842550901324981651724688163012166407614190348749199054711240793617438574318796557921617947095874047636010214229313988970559946925146484846133308994649971672496317410162039236114854845298963929970035405712034402570248039564292824646436680784736536292395479027622685986510403330941372911111369375169298250150099049909277473404426604635896523518423339854644907449576820429402343433460326690503212444067287405793824572519128435048190155533320396233535122157647521257849475871397417265115720904668233555722962850106119713029971415105307228750834887992854177137024866007671301105379759235079095790708178848027211554413295810031630390014866068593950908753271142515423379592546666721262253550331183698694609978893626110653780074492035509529452967041407927453430873939924382699402141386239435057792042473010781198013472085981515597609689202477965027963056067383260921844006244720920553857056693852012633422005802214902564964401173986353338845035962181357784301323515746632061574579418140750294207057422522126316258671420639128649317169779687892103409176816311056889651048866713359361445105788153204980277857599544068829166346799799758416430775097877985751860967586232846048760676050122981261153928226490594335133906938789421255795371773679722350086527141380937165615714284761787066752380355092592136213943166225712266472661361717229854337626032444974963493170730401686805037618381621159382000781981766008242171388773289665021100310621050330159205136960772707405164237904381777725347257322926650832507234423704909173967237796145168643427715977378878753101509588595409743987378847186939221722041357694749734174828704113705466694133613674655664349559173148854330192952584475811085049454597154451357694714035660575724750060460808700541007992704298393088686849079826697431325681079810077530185149392879631454144167907716227930516235849565530124375758875595305134104691579333598697391879770017911135593499316938004727682914173084324227119845057732175288044047564602731235387017098281960922027611155452037609418282911843848380946830819650702719872336822963484347323151085225781459994125824161470976983669181728963409401819712827421231796734872269733835130889333089952311577408403150307473296975935830611536720292594588382945247494087833450207621479695361306553014748587141315989043221707597252648672700319724763517909085800883711748387182388895013402109213093953384353709804878736338190024833395025808040414525675838568484379669128393273087724992062121984574169749459925338513104306574529859417887295588006860927546790085181750935767394871502412741348022973425605552627505649880520973395605080271623348661629669943137263518048764774126126587667353509530184838852915108286052339160789849039479938953940718839483341050995844388283872675637809082035194776782337353694242943377519531510392042376659790854889577146099596659208276869822416503239251114335262144035454480795576075810312165788383759670942979374282615653938843543093508518417063616015782492925495098168767098107075245961864361061847780669764371177754710812359155396163894607463530199348197812584948043290487115023964512725525350237122224769009348037416604934583374613127600593678438810666042072774873660257916923571634459782150414801429729439388391488770148950984372272233737195914845572870241314953180638599693600392254928361129567422744715692578047322095685083601056376579957015731806387230542275996141501987645088156709324574042407409853500686501699498616787052557127783434105059988123438215719429687294043045547450820019023841054071372847754551927659070804937235556406088423838704668768506770886434349097987089969262607218728049412540905269914784459508277878828601364432790780846198595633923786822673522753303891818801514383766586319406157323533391289804914488541422943590738000889004548419704808845416935325775915201698672383981973191167536357085442700162268447601485414103016359254966206529838868886381584708713370387279011402519102641419875576645500142691565049441480121105146920274069335483752712657737054649268170354624870109312825912567842870749207894365610912280347100196939749460073572806047359715548966911943766777270973608700313964498684360697041642340731282786955983247382354960705428067040523539503958791270598925890354124646957753757927630340110738366904689386725832423047942272109298314284786797256960946811942428370409942844192197199688499500798422717097529594691204385074263492487392858972541750639495054550707188096457989491066818529472224844104940886827861225289086797894179288146966442619301100648392178660655467832191977401781701373014705576352780632987403418047304488727270787043604193348317030910180502548302131610342739885330412880908950967894560370685167718516491483693960446422392807099904824394423014900144245121096793431959842866725259816329373070203223751726043486469164490776964264890864907775145974678892169846554600635767540880055282151872440737873701538074397665514751790343218848412166255516452633263679786543293135109512070458670785147597426882914379058271438635056730377271063427501077026392438230915648336710903825951212634403194196606499216474591273023017576193919496356247223599901513505316737472700120918773487183258243170356506054560887699364935312757662521444353590954809365189970966185260190219091312811146972119702178965176927879976579447775085549985877845121326617996065440198686598043766034638611800848977089368862756172653329383793758226528030145907538846331191966984870490579512287283597809373954103249273638473677694743562923164712996906794689299339271194983463521970246738549161161405450333864861494310460897199332562701526705335225997260915748564928080484654064393201145279473114739588690923595396692776490140949266038930920635242930993989423918848744790955496911915544859676392360823931733489136068293323771317258475838310945891907213104067709210217313133024395133004246701134102234358071746362467914053423304407327410783106363639415771271172286057722868651002118440767511675898983490431542160026240721488712188811978831412410172437885796504011606344171851386354470003803439570247554300065089614830244159836459195168371581645373655600178329162826583259468636640394366769959676965962917660423991937874350413136230718490596593818218958479460122603204060631465115521526093299998112507988662884694908481933740625511404789603997490802416027396408279845334667439716262121137093450839301837941085805046393814985830583003805972722679658434771646938650595554341696239508420733489456068724010680622803104367070909463547220913108985834561402953080686359732482348825508877682734967512390171944110502064216810072609412139627887405842431343092669873837218889204704133026654175904493842368385017849535893532542673902711282942199134659286926514081961936391972547481242051821171537217925863433495047544620835088337211514704562629957243375967913876872789402317390180700324342290961367213410897337727671045982933965611517513896505554889624478553599485065228959903179956486029272443993390055193240445780244307493805911151195096526053991640982847496915463192326952808457903093166682100979016869384856955574341341945926668358299845318228320742212660636134117539060186413485037867775352843293090706574835159862763028991700425078575681670169795456904947214657585901323716173568161805864705634687985298338009327714312261408587921893953450610152007449276374655749406750471636407163957742033486097986641747615999823752130204692780185952078551007700491221669372259719581790897546449096582881838964401891204546084844540019545570310673603981212912665806566755411307327573243747449143780626700546308868664912225365240775649623572841712039868603577431480359796313458603230303352920242823355447719643893140603129529887985461923641404382192275329037907300902978037748750715809561095533830061912222772592491868443086716176491871284852119048724919126527703060041431999539088249481777158173833349260593678367375702798824354532102835862699002673835475622893093621889792722555723860396359883689877824577652711598429219788552696738095334971643453006038070063012862325785045215974150834882069374861562179710402869200964575041127691696099825754438563778775450511449938590699970910884125829086517026655324396038310525969835999823331397190086472061557104075121914797735476936446896457979322967749752590587378116157221186059126595848387021889575969077820001544625623921685294884861260645735098143708342965142054864899172205360269063180762010656746974304142436747429968229931907639572467118080684859052077746850309071618370353648526630329534540765841796138431408894121441248108098258773960183044905532137034727796326025630170100550468115713800364953094432136078780322594822505663823381479317471755964677885542573919985123092572685173966044978510509700236351293434344505898579616053768530888591465025706859196300867758865438890370566887633586847923622304558898781827928837130779044486566293010311080737055267394011725808884163999477160703493375165612765822197761873181504435164477810527543909397967070213609480836629180053092540467971386494486333781438883081342053485636954261756304395173979604746562815698506871976441622939900886227697694198637198254348990524876577253124707387448965630845408119830584394586796528300629258617032258085469133284000759743942534586888182624884795307099511459946399654038535707522338585104066769424711320411658645565577382355712494712873153153252420466421173179849289276695167883116579461488491266277687358656944863743602803272556759436647979135723028313067064303133779934921235296007501304487175446078631968437009941889523476043439391325286635738914990996985193539241659814629158004103907583212389485097743214683946605113293504824059837539049068150314439427803068566777306124262970078491834811470891956275881316548711256941923127960603915113775413264901746998988240826189484108027508714824986565687917656843329727047070430656475037968535983441731660997251328890178427916539033603959467406095697885935233062377689833202097499686976406439285597221620897236787613768371355256919736697739564867440128809893506677633645460785384931587672771010097529908700478097532337530031135621453125047695960580275692561011898911149666235333989828692633021029303503618912377474653593820954124046267070821697639878376165595745654656413995308300359211459608307446857936742959602639260253627573256275552441211451297722999011094213655166915500734737540302111420063839644588610137784497416497519928169327889762361375737235227039934279921897872133172519873520694540814827973236199745157345459066999469676261971749097055572429182315601214792531023084850508421434255368422694786142885081696323889110631648390895987569324323402489909680110239176757907110372813238067858745754965353695829409984001930906196433094317763948552433891406637593209480065289865063040728821714756991781235809711106614559427811247154681273434695436677527994315454541996885042946519356263592771583083821383558724591939028524589047008403305337927745337652671937409641698501684584365456400941214295705715635533314390737843481449165623610924362406075030870223756974299747855197762294910761266795225409499898316593198067840908962364838368530626975226556971562161910836810457481401984512422126698173521252026828861307552015088461271059659073520742782822366335244596971088480546677370987543273606372046573298901555901237410862891408765294878372777707702246712986694966722115219646304710527742750339700980041801832789508503039653686124035574996350232713098940847016161048827462330339848039589462416630153257034512740076406417583818329761602880926099241440326362962087556059180875606600337059828627520693670195234685079549319292559611884593812830356899993927763428386956839834311441162343487402678899893807578846930228645180561832433964921570590024421216538543580312113899647516988873248030317899462666010838650848371242617591199751620192778252461291317260983801167824642853021398862815578781975676299955226235144857637128105965660357131685861750358210457970473624446387405537863050322792397258958908254731721082293105850716405752722151057426217542308262375164186196767126583454003204683167985851408890147525035976290703964958341918249032792232190425167099263403544927535827389042943279505362498228196806756856905452153004934279764605800115527372351509778383630633085458943679216926301932998049853844964965007137797163086233872037997516409362453367423473686817368112689062036108668975330834872268230059685204420644925495365635081021182818385024537351513342542896536611000748936351367313287546111802552335092292617568363478466983746340162936307555743434212064659764234946789895388625964826576707105758041541273718273055596604277463912736088030210888459641906216972370581298441645547686419773725704882919327669982117546387139530338484913308230858461618498403205269609780027764200070347331651535546192709988840393995679186902566755424529849858772023535061245971265407887005328915263966901386557716540441346599236462600342052716727099152969595080206103286722002708496979372510242610288559532218208810692194219944915787209009509708907317468715148045809372110981890940011409862342194711557863314004182366315310415627928257501170723312516315170011143524660745361393378068929434845054845093671547805980746970021975031613818057190291422588880264978237599947039190821008323554577171695880183637807957183117487033814239904896481633859464666070069626988151188346857034851320026114283481143283842275457632690591497901211797571355005294668032495125805288797346271238439280189581305250122932728949493474193488971635569919544742576231454997552632272063732668217655672203274385814901023590180328445242668055008062535473495367770836410214388302139081102454861761715050314640371876306330020021812198809954677479239188006828561235568083386374054743965887793511376238017820769847602909077560784280321818328000502166545249874627947963400582569233906303349186307136671061415635037896868586892982944945590447709275500765500977641387155187421107916547130952992216853061859480819099773126608269436236581795028407442622855272503787510687182611258011593703419001425668638365811758893452813246188113696710391070064572415584167495567083542950420720762710095863129042097289591387527431125452502328460274765145450040964616216277509503002501789195771347377890650690295548958991169498999190036567669577818918800237837310502386013805752538074221655865924860999495617428305847493493810733279344765462212996279487696173472826194686903042968805806852906388402970844210977890157875548941949046341196235691578494657463259510377072292653267401104553689994974264243959688548229204459300283303844230082128726970609260613504811640870266818791338554487273657783976732771786828312107973720315910081780322210589258928514680813898019941170557327106282771811817493283706547956244917514455945428302037668109352458051507316553284371225730628291812265698805590114423520539655345178736598543513646711711770523066361638351358300826251371185432405040960884856359168938534350313899356095159509638276539807924996683393954340014630857198255592451208713848464016957428601366170267157597226685835952616976929883109940790396835207959556877477855738825126217938947091045370405896606980804677036004853220900127055941972042130168555278110992583016253074253005365821822404746802140877425083062965106375481920570200637004871950956501221602015082003427729082042865957561477619581316910121336990062846964279178817822469778223705142339929429580502010843245178942227089492641418768467969842476115347103724796168530393093146971440645624000970231106579830444771326159499988961126452689705181796102521241596634344601841833059334376383415491934981021337780781539585017822566458016791395429344797516961449834152185211699021561295743354391331988062404903652160713777633083803028018041995872528158287164988077928003898045705072819112416341477711208284166148822036326975083114701655135721362541377916209755618439712882001510646518576425523801870747481465091551182538104381314350385316142999733304974590279101738615045672522716097971322097335445274412135518681329071287239178712636886721267965574214992982304884165874255701361621985578627825354493562724746038727430622058635199749423221847543658920514034224816831080950239890647867008469946018661985123116191982728686567166770657642951013283518362790183884263429916915482356214785943073066265107317120727856973492715576578468348665417239035061605290239328787534687065758939020005988351213139772129960878439026800756034578811259233549336670456176619989170756485710959699011799301314656037458402802673416724574199481555601980944083654740044552224790483971238477594848623015692527048901339095786007355701496375394232424055969714122145371180035483253972968320798706399209861565568636524526575881803667108124275138802546275852789319991514285520349870489372910123885930886445361740308367914092731632385708088357599883265538157773158403062303276389832446996462147289605465812347761035030982486015515935872749330237420555085111761306653999201259347005627390693896362298887568628369915394602319899337890290711638594007925423709903453822502382061256222361115316193335700918414498946180471952847280487905084623626949497827564069057836191283994705207872555504144819675156451683098834176646841676987955478768150997936911432197708292376961734182268418307868732320552401117944672920901977476532921103626479713927217414182092104846453338041123889874710974430703311864595628860988458078652606875205988916348917881699233720061822497030190154111691135646587216165312326985766443118106562284259065825241807988085534276910016363725739399350270049956309129785100677115500523059711474930817337146275962985907917140552631139956777433367662546723584498595094880485555197468707187657661762727709815451505831863327905392380188003049451634508055459414651386019540407938588493656415449809887740414793110746455013581510399514752815977164610874190337551711894645954562032018686058259248024612176156510155389126885916251726932573530794078475271498274558668109204804358005419007211572599384424087005346727308640977720437366937852726176420688555406109905984977449278590269881270735208925814726846552547728957425379267242594099783483702786761149518855622165595903187104220012389442437939547633830227131632866584139807773264629485265230268755297212230691788295656998666145238486422205490837045523283935749411478172165508525867020516797303052247917417690999307465326052535683267039578097189256296540030674695534012666328734297586936569964882981699639531866773310114839011229724406153985998391385529469556621643545708029923802275539214506754956349368778851043133519756618325129828218201449419178976329245512050634206421685113474668333484370334526282250364529450070092596893335936651307956349960048316714496862493123444021556281447964437719541501118950118722117815096796903997134823160388704565122978358206321224866156121230196915988361780517857845229423723664319494165556357911806231071633484128276865779539300907737914471867142549535904248430056833555743818369583983119079111940573564900984111429099556126510028876994312092771239621095515173231011236995611670280446274478180561366021477481399670172938752669784348929994736018766092913025119195310977955253816519224926127614258329878029187454624807155112232300015792606065802061576486363974956597147755637834429629599698867726246576376498242299815581977043185751953652654521297628147617981610891141164382669733191348651080420619753613725324333599302814629809929307378725811555648677483906171864569647686827056123423278946014077313128596593220293699264783606087957777809853532311075699435610600335001312321112969452503211144956713707775765941299250818405804656490819527853707400125814487987259493251212148035285882118466429479372368741280715814820802759925293632966351931237524084994521756229864733693487967586888785530833898120372339665363915836770403377663808587362725549127956674325334142658494440324879857290503570676940232372142225777957429073999657507879008573005662896940061505039619071448205158767380203397252777970238959711159774930140270558154388921842189803982582562249063608184904577253538981839122628519505292890319411782960732260336851348802313273948531643584537879120575047636460109918021110596259625018083821427739580970885655297459468447624056984588090487688685959812605912697499019488929375428676642624761276074150100017986626029889813220497482264757334892986017733353055816539389831834121463829046929063827815613533756478703544584835294464214178078829029800982593651999514397630980929196545099938564040420807406825437674686037566865936136264664053998845096979123129344136591604323180434649230336387606006830932635676990912430135835325633136999507812407479262657881685206095340338741986431957325181706833372805579031812099646000106143294134106439155429820051230446588322631094086752809489816791072046759539736154841170628141808590649215904595408797468343381747002528297903746171639448417989303765833214068131739913389041111027790484380016271540403922377625935303667481039868557888913571804769430175424808832620245144077841745327608154539034361887138262499484164873121789325243970805059336253564726110057108906209251697786986457587459863807081528736658386325978596768403711436853304016271437282286936582441209078171572367631299410400461565966001217149969944995407688257572313702927131190531787173268292348683558960996576723157763099563377316888401731990793952415852865499940009037426135591287249724583930245575478972235590189528906831774356949074286973177742999359696697147258083114908500366694811205221991628412340964293894880086316508460197952882238947476048904204500185234183745090585062161137036174650746302394358378385993391178824248431378051463580522097107564993460833787605152268433587598554956005758130864706610882616346226269215165071870411228504510046313297518757393844708591305158046906480486035148184433186245678590762301038666031972153970095390589644611508866730445091568353528165442411255264640283096719828860918559393556693061192805827358158930594021336205971694694900775752349709831857054889172836509294142653241058814125296683821410919531862196114269341680477444886638472496616628058791112679658581614077106737818094349414044227479037152218916120020924131163694509836280838259971226780812039512729008467466954515671187931678352208809555332953460493634984418579786888083102837980341697025128822855110931504784263898026616542949782824612614654072050985312280371794454622017695392773926323641948296431890491091192539505452420551616497624154510297969828439037877364033402834019718488030658721225591099354116094204454824071940530762661798769784178705808922089726645674801945113464706151991865953266370660714467709996400042056437654959988336306746093100259710853317282590933507528592979664426487097996461225878022681318986326833931115927174047620895106644673064771746751122020107112979180483807767670534078279183260257284285667858207181115483313725060823517327721710091908235457531652689313365804630758961708830579486982584128141149481423592525651278523317770938754884693105853745645820858605135168127638446690226528058470525508358888196804388464157680734805397018745193418550547415867943618185403506398887715153742808911060120531368313772908913015913855557929339952417019766999623981939773760509302173365546733966947907407544322325448144127382607747946748489049596851781219654260609544530746740755902356936863439226257765106918950279227946049183913609373821569650553293103071651899832035115383306137588189080215371622564734317298797244445135932828788042565922994975660571166781412790172858307536319279161264601309268872953069154471437987814494257949853578759383398738805067358782548471675931942246948188073933298120362559892363513424686567692573007293304779362568712239071220643242972037800245982147002811487106138712597957776503025117685440797558790296427718197355053693822913631800235138079076365866553180734634481610937410616491042573508929124709526885518973998491033259774194686850477039379540910979238509675487158424740472082451922304590742300519986546372083614854790457721013509400907719053615539452484742691186428346592332285042482008914469717611064870003166321935289090192432364505265981746193940031492533669192099648153174538703422561345771722407684035959771836139785474940761497019394622648066367586647986846582182133778561775002783523830242457707728596839964461087224658877910092748134473725866855443928696178135022859859696886483929244782910885442033231414164625937503905661327784225951613179494566244959810624541408211653973254646892950718288048381727687673148050325380749663037373265287685898525289093049270758538698585078998884823819726481673282043803889395430078052211545251713855420778086270315697829244422859370461940258731118014874803651930707724095045098446664126588847685487353781317517621237880721471434790406076229396817947249420301000961591748766808290003539065745185282002732047141676484350343312320663388989693725331756589795402469570801461143948389293694037458560059885044499443135228624438232796571336909981981050411708902362627947173444742168505488294774453464291393846661082876674088743491223222716526086528598143067407085176851492470684332086947029346230008208182810098076502695488558679243072129207972950210156597378260698567377011844257803674073601774818471445148510968267194376799888735883255585580700916996911511413066870743754162376919242640070915701483769222750783738145856950775459281053491848719047392601740124335704319297033757522926841599422563297588972683887547930719441792219545646844362269166676572971517395642219714044455541475418248068958282930920569616349429372280161007912730827011817322717774556683103885770487351451485522111789845254119818491742055471348335670965588166837912277392008794303882118556639036561092424028578908175496240040233082525936752722073228558012381233983229400492971000969188689045591461023508503193581309243402569378050461280156237916858216356361798013201699953187668383587740654625924196897218638630487485635765380458977171932145415269810673657979747842207295868180928052601403275468247020023382119379040796566395535798419603259924100833967235952765747984495918550727993021341866161250210881856024000858885180457004635927955043436977293618498011885007718663929387983336915920748995747253079115220229045706050465030105392214945759706887050436623631061814234158893723965551214906266596957352479201056673333186027084753975359118369955729116010479959240963270698093120924964217824347933781627531642922087197639345968773881071557641966090663802078898539268992909115198533029503834796813909255501031937411194286676592605502617779635043983574921173460244890264548469638796247207582839010570910064874862394611995932788301768107245068022070230037180865941983865390057341266840999721136914611679060735259846277887771223864697190893936703542063000127588912600614614998991859293037533213375793582527553274799580761284911050322314246360874199572367963793052150204827671269616326471560172064181848939364034938546254513275594438397952292095368272774336719678208744185070968067649412341560144405169806074486331028759109594817440624119478351024544583949925849341966291302525639466744200873535448066249051279044550639359690263488711761519825929831988220708918570872129052637909453406789726275471330123491677748565843958973269110539938926901813368181956762899825272108355157954159227073568980619664648071521820441230988080445191874949714314299836271713275234616307814931399335114826246856811263329620865928627938912384265329463956552919943040098541217701334218875785212518677058395125167195552387508588816867533303087459981478180387117377289890195131578815980288043966615421331348330052850574896671513083703261267595686907843791610653650700181875914563268774621690004576026914369239106340498375199641124779746806107939577956728696014199101841716694911945335770191545910521331822056382599651078689520894109189565166379592276236682346938823104574611100572620604368738734451308489868506982226473168423057934246677672704224781728714183599287378629857718483886943926169843497344601699718855470674566125736956179395665131163039943626568507093032059985876595168286112891508965991991223181271448246551505336599089543337045694697891028448232448418794589583122146121079851544948581600121954672900082621673401653171231271567558418953617553930941502541248445756518271298035160426231977261192943774362613806766235416239016955453928377400452279890484117156972405207421232493577479471687627364316975590768099574555047156635954635736090740424296271009686110306746626157476908269204687391232014612514240579335990120831560615929772237269794058425392925758979608473713123917912867374662879610592110334883586249756928766733362163343755716613687499564193735934192559072423743064412921530648283341989207778136996723282035621454619122894116214777693581691486261149168982542557441538928690854119785923796259345121248598543050213147708381208201379760646469721400736928869130572107559916201729444400673343696705437599561313654656967430037990227880439597133346695783243256331146830464162548074348091580477544763135229879529712069688646936189867928951564220038074406798819435750866882352855596309501864262255604235417942265196064223150103337655128364109102502211490699700714051254622917047081722201548541734724797288174159390874210278896878717956332895818418978895332907724393098154426644937563430587725159667133265846825049503844413842688287632166038698574604377493165362444903079923083990674420003601853903131985292606124741878764239655985296411865909673590574283696416072693683624330241429308780008867462881272722916456467405282213191006532068446354438237532927304133044148971487594997543249099760104519887430931921320343471079605378860920226744762384405566707342713983674599500471659931854125533904849866435823118059148450657451525608139710351706922853612396157085437364573171397932939633330771119431495499338316538158523699636828015885951700904355213815910934987024664451604715341786977021036432651177881438337374869861914350710648239262529914582779516222185075765388101599445506959816650041399011343550877645436856384344732755807511141687048357353456555320493465517140016807964505171016056723811118425317111462052662192875791313751788996364805177463616763041663130063746081293440410722546357488466954210294324881984509874400050818588292346300355789765062047953974741900667597471876993447806928032834572448415716111520596071590035994302642840480038098949924561429170251299615233077469607298569386477072256652876278118573898001830292158725397722696033590075705265370070346930706786310092457415016389471045397336995424400753242820214650924361389656345149368897879818343890960691261752974311230534166675743260651190000448190790626033592508755854300834228883726037985593637985511297383347026485323445709464237647038888277551898785631338364416253520802236201113247553242398769926265550550817239192042372170826543722516571358039731201444724421507815981912680415291188864221650159039174230879062252674774976282608852560053312272793550667877795542446804680389116018524545078489109443298104671948355388474981623912215772241932087656051595646434007609419439412120852053124560543189079086279750502337111006142330743332805897887659680088274188447685292901770071100103832485709406773395766926832495709593795791683318671626245702299198074207677451058171115877583442139432266985046991092342362696151238740150618941742555625048008362346206714870856914006895088243052203441738257171932036556048195265588897163321739393675508621148121502408680075130973541665239676682888472424455607765916310337060592252722687968202140469886848508315347012651324923050388220210654537387896633442347619137906600193744887998333759895318957637121611891777799742305519324996804421770609068553614403329013616418779329562007606196269276939317582125242458337639672976441152830914241257149288043868537115815018618500652597844880895062950525648606105553531561695359158536488387838419625912998774438211509811063143781013357593610794510121832447738757438881855972545298132892458890801212622623618182564404775899027361651483331633684631433546626112638985470129758169823122784607489186079981997812095641753745587101173367090543601259162058432667423278084321464391394835558588852333276853364002133811823410843304337616550995343791066713755318627665393430253143735251176811291088709259108750844901740802181370358401546406795281283956203215013559937907141675599977389030819103545640026000906134246153929149018466268058652164249285637210411841591015931943248333559380249416178317678215564278669707893284623110352913349823941631791904103065418387984764957482861845075660555760190276700602251223128647473768697393521976188256021197403952496691909255543666959028844455819531453978891805918299689753074154116174638803304954290571449488928404203451521386783389650920178455704924652734655770390540933599328895572372113984088627995077505793788986234308702656643454713734453916549743256099964971489267998542463307651977334229143179007591259655202405979378472509413395902514819543675878191995065708618801954039144605406601499773007557940328964071608377824380452034265181433658028999835156391898669398751434284510881824009888051070825628691558003902042150544589201538098150725451553306190860568857657119616698431229478515039644426008183510550999854840880600928641150617834614903823290489921269874743939364020904096626292496292431716295753852480900750379054975129300148679619338972785769840479509561728088188272421192024820192019986694251891877373196591561040191186168566778758067659691461615317542057671503889351126920482317811242793805421888317480618484854856070187525186673975192130714454182110558448288347820092994263411049959642151109685117970156605448150889698343056426560794783235699883595873709722616811847214764393288818657046087634519645497300656045351526828788924039699355609525533732861302630332442135638128187555153156974243370243597950200811444903702634152443288781938995965835999834723715469798406820056715082760727528424996685430502675581386991223399294403830715412697146503381813242291222390156909956486011443605928701913658237238529603270206962635990765265217797190133065284418958736461577781156977045792595439236356070329203581342429881357476667245641253977017017181149543727867909080243817011409581336567018088511885318214620369688077400674608799595367643184638626120077219140293476710383618057413922404083364667698680812058354528797527221763599201245718118307331404878639347165476470989813503203565682669062257985958696084393822753783221280362468667164017593071525474489152761260822927407960767608337054644587569396726870051543258420011232836748475675909574239980822683634662895637224162230046338887711146237294435345872321435959981239652271241753322533074711652028221941558546299777059120719135636772649439062202157404750180663908406992174129944521885082159181979164505233879579742099393105496737100567084647325882967780586888647617525168719051205890549155562408051424676692446455906959228032971875954990438681464530326306576257505401487812519999389480961364622203184239695904702931171012978397491023296078548366090419355837407480708135481351796154482858631483323858592023001958965310551901535334822509367414944924565672324241128754285869850078698697498461184233765514115259973360455895741095236333091354219895923832496284948312148770687419413254734773650299451446729263355723228795471609976667338401797694994165961421138921982054729250925779484576882404018906590194505431209990991661824621020402189564607935810631409282622975572915745700004810514998227802869314334180170273061277326129342235650047130318658800108149374033472220353335416680807244284994373711269853891333147116280672143744222479627388007074717537910303550157553078824253244067323222617765600603402779913297953843999700002115602107177201815252935611958982273619911073593948000416720222695739552697120543672254265473488332720680460703734241279469606995455043896905779034488270242338555213580890424674916555214288512413747385572225640045930779993021929846692995855886724882347497537852592194848559499701856593665268445926667181082075622613267622029216668106549236513341849769935899901652436492923560538340753169874375036065964648591130025891481076371929686652249487531227386489722286635718811545157072958398683124128158727533354937218991944356297786747651538056782136841885297220552718075680347906905931785935101096208592150592890981621811719144118201380750336062481775196196385452430294089155719991711839143578374943046222630746389559240960990221062954305943071156639628174817769620477468980371258868531119431713262866643652847893821176493149324175311991016704963904895970141863859299329966954650887713182114737597095348081411650687177581838970093551062977410576792717441843252653491513590027299359392130189572324095196517299916208381124343346763862787032567287634096270893978994447349644812163472064863447062046482226322114370559887694417953464257752952061637254968916809314013707849108993139703221543043138269385011690583163847543165947963548116936239415816046185845947516124542939347316877445463767050566329396136069555516225684685761654194505235785090044069120593483291859515911544259851999436550150211956442516084728736085289717526147047696960365588539021261777337259513041083751576036630086508034264033652103372219272755518778717641417874837443487885399560519619489732461087246664453806017473026928014136436895261379569414823130256674837817577343135985702938438989560780569130268193613158050548276703606950351280672844753590813934432726217972883273299143704136832194473204197415609491574372597191768949353125185973899526859235253244886804950071863474162962243982497270135983378713367802809864758236183708173598729500346241256272735254712263778847671448775155091843740033347117286095137487460820254821357075636247624853248381843879601315104308632897468541315125624793178202198242321489535685697082211362578340976196872627408534944119980589356100285025479321449401570904626647822993371548041094248431788659241824221298694503854988688904051489115527993852649404766321977854549747572990916276265337877714575000249019837585229353759706687716890742473852703033101372821695483643110730883029795737596331917507954698208583178762160485823554117295032374483976269387159255356350709675142645198194899588937163582056505072565838896269030170374000581252630874156526866974332323115093655632859434485488490271088992750436994713500310868798333148595902289587268212450683924980873017779490496823628687160527072305058430625021212988972905744471346823238180656911888776687020334920577189050136511645641612161805727653171724377190226402900288685978643550712766662722528914939640599317060023396444433563875854075350880067368039739068449641087198182975832258300790422030620302107985856847247648442378415723654521627678002289759668455556491370410199141015266645394574534030953351420542510697833030826429357960056920751331379351003964756300799817390324559948485174273741158642575470117555769922625114147583370446354265524359843940819780678439660471365260007870726565801125138227681265585717173831117921850431960855910270324877678813408208537983326774688968800475284236694130542731691424866180861003835492278022600294384106712249926134901609766502273975886362956931362167343334635144065303862165761872720829692110439143650558747735792881518926059013268911588609085615454878975521308729394680457095913389807357112496785057050970093899229631720990012386713214856896951597924968210180400814864786627415688740694495292207621385252541560454084327698844386691838788429158501495101785599861219294774359385751866773403485699541669808341421692711624254019857226118863323470328046199719235356506223838661793860493098870066288190904660662452565368916680785268677507386741460251762124609661999288427484147863967991500881515486881544657188583901305749648844069492085201911303604714452657488390543304752619612229056082325591779445139447979497921920298300633047333768276408460373941308318792209100222957122694214376171739456136716707370827196153702008294178193970822852706498391813839807450918570756062851226278643726876510571725234149611220966450649754393601675116893604794174920447115904768487246292471262610288946088668207145665775857323359824765002282473627172459307724671341314001952792607150824111077080925792369698577876079715669452342775927622666062611152201095838796869926709606240300083832739993630105805031991182627668903332779180182588340042498911093395666513948835370284138202467121920163829878990083361062392474516193516472295019346587706474904281118902464808737389108127639905861365181768213013295670725835118394502209744311037231822189121410048438144204875929871973303634923605188444737540625945181765583166959686760620280718061838067018387936317425399261020986237778898937228517894719406311284094637512423763258596332916572320821636123749681095244980186789801959058202521636162194598290251487472197432672956271552370726955374531620755091116410159439919326733780918441385078505774530813134888112995644820875126241392279433256936664876720193024464582611934832840303481316049953464650774977320855370573114774868608381201357475962689660260635777807907946458904768198473246724423580082464208045571801571280039298903800105720226086839189199429458676672675495418947773851765138585136623088964790068141693887753949623084727520215766905714812873209159026834090291952742268656769935144913488818732045650801882394394838356358925045860271996316042914421044385889969127441851033603026483967173752370424505416778618996280387686006013672675723683340991792312993441390454794564452904841112571749335991969863727165961928960738491211380231924927261157909177233260946754860502003811059340604769577312519581166777507011531426282700964418051424943261418227681358360471378631608214935192608234440101151145748290356776882021941635914356529636710230920313209265351759991112086568582588536795738703691927701803003627739249318530393054777336648723650893851631810412313543919801766848226663189177918833244786943276219359071082583596707908636536091053802319939427182059378841267011955664661392521005215496978409808049193873655918090259078170903088542816102393319037814363214874229846283635760278322373673684518469784495684555895513740535383297391548634482265943158972640834814478047734795659181403090054531271528789229814615251533947108195918822286141070210833782439556658842478603451887177864080079993433441080626275123956549918230451116809760242398193530339389980413056002719318460346351876961763002838571492504651004268823331959119387321217214755656724655197162600874657440512084359451372877325995163092740266950479590530565096006917224252211243075549314388440462468318871588825917303173878696108323984855284091312954524486928584700870179595298028999315748968738112487061319449066360032668674323821503646681873809278564012316879839899966681647600407315005335226671074995912249212775337977760256977345077389231715144770249289631163326169929653735609792956717372311139886091183439967156167613951510265622060412084924731904957464702945802236451595871307644169883363514013786357218443140633534317482948092626657398204998282108034490441059791505913432335987613540878784765424685814801927211511698169678189874484557253172157699885293841923637225027362160304350220087198652424447154641145537801253417088378727759360578731169535496345846780488965343761153815117739408763943061655686894280996362829203399375610207437819302224827408012965672249413819201770432566948321327813894316333155982716965199076378094694895670359646744124637631833899904686373118929089522784178108599634398181604641585528729681237793197923212839896110414440420214526048323134733034736306277066318392614723545381636480689214792397187320185700639703065409800909105606046307459019245325864256679830865780958045407017589037252834992488741290887952210392148222406292927620030579526267811703283722788127536641868799119573796799373330387356438840229872258029453734899459408037690590205767715910784415469528720670363712122031670422602905614885569796679517939896544422849233712599177963700421808166360920741865150885357814904139009091235580146436852308110176533302785048995470377320016191718865346831572737867451359284265994499191830339613632366393022490435945564473159832913206532591445641951156485071089664927755446733012008406267324610389435387976365056777295477544354305203878440500831628817687694607920261311875006840976238211018495376548509509834696164177105693818179671343106441408238192120253211848987967692823757769099364482902923516895019239978557137148091440167330077564937705436004157464960121782723164979334368065215204700358826582857036693144988731553077228529371634588156511284013449214276641147128591043210863353370546597275209700790007429217225008372779511634088485302016818149202778004431837905325601381143635141484229597171414075070493269211964633731353838515727055071758580845029874721237247935070432181997755345742102686617995922894670274342548441705776604583504246457568100206151046370301454117950842139236100016461828326939820787560087124166123163132954730142361019524519686290431070689367847012854957705755396345718474836446495705444916274069455157553463341080428311043616991149138011831659252947268950295563454824701663282072725033414511356856180188773786945169300495096860618767450071189329648542315287111449706102029154678509858489095192638686548124926454411676216028023009564228636382355421104949342760295308641844824979277630077933259587020815566679495054251814848231133975187436444913301177135364954318896757464780664476978149803065910042385846786877461641671241761624701784549941552462104361470844755495786925870777955209231111497413877538759185694221830590633215578794562345357161309728653961521370639769745948146968516661899253354635997032736056708038754401480856037972344119333351898101976052659385772603073391905556576171660394632374261205240051197252533138637058455705092856014069616313964246808731548769339075164761027297226748191471326460814273365932662428593600695107373712066996350762137243158034295057440475424315863321463049464539874500483243545283512545504120225068314480766900217322148724495414723408769087112138753672124053492301563218150761762412206056235127103628358056063775913824746236428417693864775705483480405015276735168985233941547259467491247057084439072639742873032938728414267219811574561647276926078058855839965170678043115187478511532651521663874517066939032048151473482718143622028987728574020233032911885957445123718398004885128171936641964231032803936731868134392846717510628621039895816141567812143699852430176402997326981372492148250731193975548392551847182864093638362364896943260948287871696907175949415483550858997992011411758109743696617412131358835919807957964175812763403277087676837444939578213316822258081012216281606526144501430411521441910522596555259998785456414286055552744074970212356135432714744558266612847812267895238516008728606347935845973188129206573945504477924153025753772851835459139105379008478662756816654122465169087024239141695778623334034366137134458863197567442022144275472409180270965081223042914429916161705904283786532430659130311962184925795880570571693069842613474432351257379627506211911141064288560198735205667631705891514625595011058200952625681861325544140727587211278216986900135351565954406705591685181873235461455684757001844623603087342774394291500605862502026579938843864854158519837203642168533716463934133084472969138424050160466340785522197953131887920447980071450759787883836912102457869321785295620902697051271880288665002002391502425798316428324152001411028378515769694324757685580540673880615066740962447342520314860365508623159485272305916024159114218603123276965788605235801927256050367805431872363013579529275812758492172297689099998572541610762881531489414867209769715861340578452634746955857371743623349551358505158664728490651081994433060795528289709658368672025447563728403433531408509783150268735086021849749963507648946709731191353040719415100580347509789907534193333049349607809430784238935849785979487034290093473003852281720665679854255831571267517672519839644076270442312175870319079845579163805455267398044909715742670322017006373376686914535121910333485394900021500739671513121448060326686791913030791397163311960623729864409510797525264528812614722896655534016126424110696185030424723604454106817188337096157462273520800028234937644710535408424083770938882857635357386151783634040524370110369131687202666209554568386684646245589025510531611264340867155495771296892574122853811184290397519465893151664394103091306920454105382196936707765386250884273124678176652452871604733870083186959544509973240199501684043052799420367170339289872852295010837638588068147965879019893555290380589964558218185975513402427434318639445665548511710613009517875765469504566441232685228840918160672274536231093191525411353781367667101311942714670023516052109449002802249117562754681780456123781802731277513572555637556631815784763142883301361264262331877958631662245373411652624792390394976219638588605035741435924253133603555940023386189166226407573707898157244581688336299382587113321350877784179370740105889564378220578068430466756844761862897217667218658457579948649871720363773067315903545342678664925466453929729532346975288835067264565864136999822467133467887274233011862045037503886451760871836776286279919642384204305400981576080147001819423383757529343032767048644361399485369189872822882180083211599410109942078117110892356111607925615885456144714226774004878062216164625575020851823109630938677872025654971233459017291481485022564260266782186051244325904568654954430148512600552052954185910243585752471020509326490116285074609158941037994951043890283358142356967138224672977985298651665438942688500347462616672703534950951142686510240511248938670625764245928537508558984328379176680888229311625634046203859445155931418657780156214800150868328024152220663887277051695953711464152069231038042729925271466679441013469357872609006242213891395452302270610089047858600559932419856808603208314482013869998364689403876589376341618383014059611230102119335103163388033297484568595737222204683593578274650376424052839505965916516463447611445378044562309073606882124726513699962005222723950548189386667878820776618861020909654724798297197071737699968258381170384788290254692428963268405799695232199964909992212101252103170555034664395816109229914372003259773089345038383872524705189243241499022301629994519422894149103016877319128552825612502602726115018696917400682090435966775872350089906613852446940239704415402934627042770881894008639084978616289097922544984916232435313834350066896423614504450631915528062774480581770489721642485446067496588424484957023698469916558938980114586412521731590076579101246692732631821883474140723896189304523236286538496213432387930318829940678591211613818504585529644064151719673333943918015856405241030095820842092420727708489012556207424893966091169661982832433183584896761668772339083215140565375638319653539885940418557142877310452995286822866557955481154099711054093653676598096550455616950953977399304458632860551021444814740946598480492551867954872700256284644193849253249451761720651400930116284723014905874476169835324766162058593198354350142640431335407449619872413070175884637110678559792457701800341493053053646999710287090739630242941178322915973108736505507209375872708292860775901181957306055337422562080395605029403640366536267586888711467278167367468643787132262225163009636579857287835972187000781433785870145077301855834220356841731749769854486704530937352005064675824990597972859679921507729723936922043514851415802113979525162181249476286251206337833563933570058749958307095212912677073602171198967310066240772845510590140099907385889340525355299600685503886221680225351250952484737497954050436479276423629441632742991245767743309034274665180512704168305761525691997238245996791775067273670752428463520074457936545159179785378457180195588312585720287752709065755956324704241344409605797263290449678736170742174601858456181646992873222762006891988772759862991531412430165475167565152601479467644403601010798635963076799358945100022539081975147924911467820786373976018508409300246653126760977307504144408122107189533681030751611306720043776550939769883826946593860684960289782646926076340160067654756653591444956328218942881652550857463948720450434145287842936623999300840355266537326405841112093935061386544858869351662768842833381160835001445928018966334197615110923132430437663433178711712273994078245264390214316536284747445335728480022020970152789575440025562120432544077090467759459800715005248110057030987129972192708720895428559753318092999531565463138080932536592093882921829721774134560667403580612402396807711266255799900866205902443588991402173045923204507838732454329763968489598145781743837836942932767643852647403740632677653902658362995092218702512208528293984493827734779645817424853216064140630989848272363361356211115487090766802070663052720830303053142743393964256738855637195722842251348953702355846619841811844858141134781954274680165557961749627707696067357570446168753983932325295487586753944753920397992361563986074713139006637631529125565649349004185854966961083820712311339389594599161653792713445010191795702295653385001792397319492151171335104714294736317559316741133885597409807664443171448898607707730355645408926011859179431045163644371485940644026689788317055156116987446260640327043298662070727467439910904098436937492913512897974863632619914576589939622292274444048152291154495697288722273227312004755275761953260698001977088021303768268945310571512933323686356213491716434810977411758155282165304360961423725291359239824779761324546678468773354544087510179622262342725417005842737128575513601170164784771738311186578434671366537922195926275738801581407398338363129079659081786000460494998396454646484906390738937844577295430348895538480630714735049459868710957941676743087478827332273637442620871561693488401492674127542830867551214256300311925070960602142775909433155639565042855973037840586209768508349769080326691936632050942708602796914741340767730841924775384426347112150260965388567058153264656861427952711661880273772678485498068198415748030330373977082531431258519081782735548688013405815831016196369794885164439819006487382479703219771396608215727540783696110509277958126276004464190519055450715174530596121224246032190710960253417977924288942581191679428464277748167959079397213421466069123956461870921735218850390241079177815556861021995735773731359986925926549154736961854971874318051698937596528657660062369232533130501175317196236658912218460324601057390110643257939555176719493966849583261175293417464578089557010931555435287905577264972132505604062230624597550162931180725087021405587967295005648581193908631146819885125357592486186438118634752516333486931927009116804520108035699934771611450809888871355693447529977403958162164898210741747280666754814588411336472525410739507674913482277343886612381319996752981503845801279475859874996388879145481286598881641092562945665208742205207271947440155280416718912210596978954670881711920478373955704831645924423513110311155582315458524241617852208696436709151659462513482887736195957215166616623067424401613021943090047023941056900313350647906699040049676382186516334002523611077669488182307146433039983790966535354012998333828737118236817052102005008951532947279775062985366256294365733237026928122507939939278216517209527418481857049488496965303979149986937955244773660666987167850048984826749343244996279764837262665195241383311117700301206956940462851357342988034783801184346738468100309082370422644617729323145518428362733710670834731093577006612528890839910291226600494504645589877591287815705664094855562100408209100785299193167462111317040066175619758502466084298213913223073199230327479285731351110640789869466727125953763106890190664272657282610942301908915562899001610656122919007221220621037090686022693480587127769987613236890759359773921745263799782814559664719296253026152985230432923791876939954603825636118501906418370874980328887830995578685069914108318818085978609725717072513360273042979222044294468773970016142194330741263788072436544214776308482111771325865386377524086917443757795642064005692286513828631393888125781734933132450157740057792105054061425586995707928325161563916712093647540797915948036724596261465101467299908614304855193381083972577330689794092764304070486871289227816338753746223612543917975919572707816412877722124148775187298894242745949674571028988714220550414544490023379525049788764769224236616263969123921782205880916975722589163599610539292990725370945886713162994363224805157339709777939861770275870246909187651797997094643366724797258750221368858146091222412734015845136665946399919708425847071749895104117025291977860255972720090846816307994175685380335107853148402554949494432125744562826406645061749135970496514827972126616746406060681950323437779290380097225033227285585546688948624285475702966019572092743296213489955419131940491389843614003176703661981729909637541170739778708111936739825013243150581894755577368377124795503295078260814472585733740100413404406166895998307950143036571737689280183556854212831762744577705032348700695139269159964223662419143319643246117374577225849144374603423686891258326687744053466411711224157943572215887055869679100117337240432881343240459295459781634304618968653679057943205161579609871288107316898446443578554273838171096857422557361736280395881057971636636080143325878950320295745310605702444446645935671869806767373941189911845094609508096021764311021791347735683583710011140225836815684208992388092941791261752379225010698150556120590381501985363010784448873483752523781585798289857967769656422456221676116448792928145771644768261468861466238192883206187635164144735521728148250461471032148149696825943207149366576137177585609475775371835003228862660216706359862381770653864388327770505190145928961563281219852064410800668522648478422867613768605701725694546471258698204337240761163109319252444129077318373426180964371467596014391855498672390639885023132532047132129657426539548331029526169886026430926355610159459575507022371774605814026163701040033613301001842908816648041844928696165671312837153988306072441957039028393706104959826903344278316445486152577060917912568543850247638102238454389549189387394331381675967350085353136271330897683450553069685884621267566101627835522874577688201628264931920812329475514796549730262040720191131798441699906197759777081263210637262153535638840814643978432739200288422813668214838125428852454038192423362888509668982091072499473824490094282365503520589952673880198499933571431325697538699029338053085829900232608963697675361331851155707293989290073807664485124563908407577098044070746358250686206813863296613167107434686500940739544446157499526713786753701231250875039910986594729553043971893410819381777810694864347022548945275086249405315816356058747926889582883597307670188370719820263728015607900834564285091735741375556097193325897019367974686003904307158557736143172599080705652402299468828914504683902826424931761841888010048568803135036771374872124319641246006518549818765827703419591055276216900798830163001701375975772234302251007828171072560738642135448681399124879061526475331609706511416744403940443936191471049338063613067740207499927041623323786110904347463377949165352322914220311212708662760803987556322200934275301088482184229655287143584788465041572713418917176353030966456036206577698478356809062749577381034436494633081886686074766315616169720463587815440819622621008185232900846880851659925705516959778443899692858449278679290647164315922911305754914758130698818079213239928971917202339656886325980130803557388421469413107877476860201780230501208066641136935341898031166720440824139499151794099937611197719858346403110422466451783302374915545206427142778685881381918056125807934255862477126065051062340694958508250458805917618346057296902624729635648463237916520807068169907036884546359099549515380335112969329011974056851543493338192191927879150003524303502587981934046790736494270333889509241911571817372650394709753204530383521825976283285860165838711295842083173233870071459417187545872849375102983657910779795096802034734183458127485950597938462379574455112470547772746439864936893577655852077610600283395666276715348678305060354092312200392800116741643775102162914495154896544405625455931492209382048009882469158170060472480025720817347682680478157365632425044799183159257444311546033193874275085459889298044315119000769085540708420863505263013189294473284461436475502370897564111116379267843229023822479487490214162134291024618533558823003159910558954804982816051003421809615288877978245439702728362213361276250703925681473675045156351656343579970649820556430165463985869848178650420051495253904383693234251362664584239461132681850563434292430155213978916255976284907642044785149102991106408469917153634769162272052683866642871639748031836184291761163131810713593919930576641656998994204289212750521778019550099475941472144597586551066793429290101016662501675419508927652763122910330131196695659817246753824819193542939447654683462170618546778605923375299477208696978444015918419737538165738675404777041617841040021701811282555460241983639611272352483777554687152581234160182911566100359223842288671174121644046713129999088617370363476423967615339461088230954141918281063601378216671529962146857154009309149705886420271896643348890804730024125056424410129966931062290251211502651708463265847872632821904008121431634953387997109128718055284289087680486684465130868749151894015204523475258998490589309408696676941061612400531461299631857855734893120235324018454233988246116528029536418556954530868273996879315852340076925193658533348069628796658697123569530845697917356855322525447366038699015848428240047564812154929005563626575438863661470290466986700572104241530953376087445006885892322338074392007671560936315691679755439386691887229656262349472026563420992661843390412306003355170489914718367380631652996223875727657254298718294287735521770471546320334786961519119108479945764065705061295100261304691004535792624328041941181637317375829485647327984080414102292362628746925707040833062592280853582653629166323501394548656891373237656975065092101603330132331818880834365639490851142818839045349289043940553116541650297570520992130292483713293651462744941196779803524874660237814743505333369150728245216314527452420904510793773224748554708888377061799424284354949519881626849617343215322726406817750943427683276332696895923018644652294381340544025048695645268553866583102714156985943669933085095144499246107420755692046835449310304379191532092426897048915466532353765775672891250876887758099191631959803430974886175657795473931516388547253006838732394897910516307819078067655099885987753123594809038161309753491891896862718314545005666981897549345367821626288025202154053583589948090903426090542389712386167645827638644578271354312969383034600846505822460899382751554729772464121594345427719671759731718694638069095367084975112430281726591018159111504277865460211295604802361256304048860953424878200948675117292492260280656223370878613114662922381938536577310236417061376943624047355746671033202565925863897709957365454273978419893284566306801751580482495273662126619228030803945631528391896009442694845820987614547146679823109381146257149118416120115203315988259095326919607633057256395485376626037001851464658088639414820702325903463000066106647328434785193987721144270279366132727096329924774386496889822754540603755820915725272952573905725612683550479877276691111702502503372470001557851546919230367072577262735360407036287851344527979661560149477040657227887875565761197618810711428386858975580108486246118576828885661588020581113012817177948593807773095077066845049242659921604580136363663927918279037989985640316214220642109166555972814622634003755689119724263252914190793635494882009820320893839584577749921545197043943215478371517960282029725974924168351627189022900444055310976215124867243996780337252449842687625720985217288115288122132636798801461274346208768094066081614503541973931496353605201629420908127771033458861174928080451983846713354655881262115749371707337262187095664279390693341057061790775664515317456506195435242533529465372399137471754764358813299376815608613436385148976650817140937471124736558397397323580122061074499560099279120725909465498961420876959156514001701775532653972954370649042042223501966641364913872928048608602600624528450627874257642167431148935129665798798163213852305070595311725532812649195912754140156567164482058946977516527572835932233029308461609559050689815510505294338003000197320908376514617271709407352800231364501566923371972662768550430411748270968740237813528290847732852717569431107756524761223104686160676337348407648451375181727151967821611244835118265058113235154980596828849194620296700573723287754737935854849255672139257929001533075962313875795481871386718326156898720330474451049070207771087797284440179108905671104322388556585828444596226993974729119273424444172170539877217867433472591356248701096663140224790781299589829724209386318940646944795426088432271120191182771134843821739917364813424703574251795752899728299891945912239318880177696386614342923685298293175051815520787138322290643179146987257863033807670512802321270510710879606859485282033471002866115345268900519921539006958148503757814442625399862084226135954626951514897197395698564799647589294536626113463059036528818422476251433141608619773076961921960771221509615992615826534270032003304485711004195719865746330642538372174389035884246356493376331087599354349207911923730698909818873901993923570195579861437189245200703351398330519401432830740671329809383518789215719929048024645158998033117827747958342280814843609700376143175235044201594687399178939693666418748958806690697138765455727790828969850647327351609422549591520343866440908781873913447776984298954535647714047541014465339633223387063056813916424431240769489067864975946874599778247025473598878570861347643704126727343397202234095620148340493696896883540620837564650282194725032004654133394967309641049041088077374194686809260612275865253134440565032516944393376708717208600452011094296170214498010948630686434360784792778063581404994516929098158909884182462609818405698548977856776572194818889113917431736190456309165713889006861610590042153265559481891259906430932128198267355793019900788619400151406613493169290597414348935068821629601842519640936842972577416004798974016996206981676465588861096867177760198395872519856013543194594284149671088191736263977984830926442055732798217398756921100872160773468123382384685996404057367465362925648766244958240123311704485466431324651292436025748363492339382530532443976342332826177700117686052821153523617928204000225075351669402817795518804354479694006506779231023230832494787005950165728347458600163311599423356479554122042658422967369160747978435074671414074623155367384811299059721146329115422036766678453361645924901717188755237461879937104135957928754911046993396733028982231946429033187019212860386940034225264217043483655190818357285213285119068768009987028597905000646201369337343193881333998113696816908357739626950363365493878365483302405580101735572375033861642408624528527259663306740199646260173894265767891806242476862711692702925556787011077818381224996797411502329738239823004400340835204831793267026259911996644168665363488124939085593075400428305360655447737368728372377913250249066971693600422035448286748043993665193188247494830184271106705756650603588147864862761981316762770516399320680036343695950291881722607553724159674628444499027745696944113173374251187471488363607238254952115659198084824567338486792180444968660607764866818089677452082040627962405770461046565260341253668395620563394004716276965242750485643775220024302667865609626371121100212677135361559306853193064653538571437082991321774468220622216044560698411488748010522702667737357993583594484751874795141025179586699407360033353179304293367637324329951000061189755256744888746341633724673492900842745872977842475850434442152028726616011678415618211475782512656984642336902730394533361239291197661827423575027812816377102035034455044117180270691344205581984138306721745061383868924677353509279321134613850479605136829258118981315918320311834570652023539128862745106833039151779023119304452592393126637933506820511730424710399942094320485376614818771033030949671454010722401695351752384534722431660850613078137651743187622121479733176508603886184275652390721980680945142899302424202561164396165127110781317181663171089229695575401065125682611930498583896270706059948061229899663339886210983912593649437004663254546143655755874887181683486859147202677335777350454942894595321646618874917759516620004828253815783040047986814696968473497777395707056085587368269164850334231080491026762971199619536439604089509242162208778774619654341655703248936223914274208632449252714378176215428787405691364293827523264451361662633974444352571844854294970379392476629811688685151008082784477189769588713023536098862858946944340979173645358790290996227418319435367150105079250690166617210152050974463081661805228087052432746591660664102582561072982426459940279502954617085526258468140236859730826272299088841965664002514339857047825744788390803318787566541717138279540049311724264130110340618904226402007134302196834741194543642405712942986497878323108192499016027267311097542637983733801928319561056926714542560331128337220882427563530914468670428556336856699404446002524083882929910874059675088334466850740687297892729036417662203177954897093178524369702625627598138510017288451622931101926094918885286990187726922070112792830632081630777826164727635499527130525797864532112436979409013899987790054687185247770272951560547978407269128789965877576101316445128841941307144866766696160422080347410102290370727656634809339184194205004167063626177842686497032311059655599605490171152286833465251475082588977864539074326014924332261048512333260994743231196982238981353148976005495164704601541550000384650302974731967862423628316954840973316430881933419957960564441309162011511140323876023268078026094725911532752499088776112563916522809368141020857380299204012024771106155094931452675668302729266308144588595779891989480503107730361047859302261331729615030110750626904104957880548082255474835584636107697798837990176669620619377301449378569350355003451051254908615420659112532798692931037440383450442271632720961729846713651700887382009876111757323192395988259173814898171847449320624820236457901488287913561122053927788408692296086558620300527164102890837587068220038268175445849606114487137893106115648845092849139067577295953602337930147109273125984738156577994068168836522999035791776732717636209470448401178682103950384544624340003828529207298908680741946822402463907956589662642491788776016177314034717488146960195433422157689302481320451010140997149911163824856372569020101760859809405711031541445754526925937498852749010188102505028903795861309318187857200070397387400520824880288716665706883972034183773495423949218332800508635208847976321100981268815940429011717959012555412858618318198868981228869097961246934681965901446592464413553644278098696171974664378082244045580039878400581414025107876391041520309523062968911343694044131078613019390163700176685856049087310621250868234875165646130616901668111898713726012736021145419362536639486945278125116921414628460958633370768114836346770344972446775296263382209628315195284465927572218422000630163907404825863199109379488993277149061994496474399332459225292291192633145638135942333461039069952444555962492242897810414388075314442337635196629180761941572701980573729648496512234327098255854789050060833842098419474193440853471937038634273301899302522819375157610320803141588833695416163233637000264377390130229071926148136071281842336931336150203786630962619487064275558112710872950374724587204028522898404955113095255236011907242403608674611916747219093257111217427024753384947680921286344151493864156666673678037378165589939604379979930040436893808097390823121339636193452814526005481594644386656542977560238730391297357343798998603067226885270304244966969939977561179156582615778435459879540962725391016222636317367538104768243632081694554910583308733399901822055651870450332638680218030269572799976413150341612489393394621200583211706188047272895046253676186741603653335086104811766765597287952286768533066443119015327381561447991394812398085861208497595463304583823186031264851716235456062578667697869876722685573065796332275878747644770452149374965368373775284020347469024385804702468731316464633399027243608982446535647678732525593285913687927079614550972878336001921637554893354340929479175969914453189048467006680180001014261416036927735368413785859586567760172327475407103467305271489122706605164276785111106655240882512967451780935213266651578836157815708391556791030032110049905758489990561979235693255085673739164596761261065195642669984697914946619989484562236893057743287785654514461134008838759841254936449227174034807800812503168462622383212455439839494069204819455051806996530797163068524989112007779798854477987034806518591056877217027611080057990592290498457968599775954410204688919751321125690804610868802645930118154205279881850995469472453023255454322801318972817858705884979951370048998485660118473288663747190179039347221379750406806690651376088297107411447503537779934736155332622073403461011216838765309589959493561013570259080349261124986090040042498542574041285228754851088368031190660918966886585510439578806083325115600843032536045839930139833333527087128226890240708275927233138156143479502438866388434059725581384471994111433750767360805427382430872181279948137284648920798896227217884144773758721881561297979131342158168960177139175193833064819012915970281579208045841898192091516691172389232270430496642413068142693197840066451316698321188621304868538756306590430841919344753876390149474879076813021890495598539248176360149153586364961741637373967924012778148799813280210560875975983538820121782469373298882420988157895117441668644334133944963202144027017070389957075452123751398894713999541851683023606490032400019644344149202193523923401662104353364949633953689453916509680823948211006723661976530033382323896750200355504705426757310001891472497004206920256290335718405962980154737229235742116194982275389703230516327749538190037831347464576946344396094351157232731203809578468703996162573584056533469211947037768628278867812497921223165833085209337147555055450921563868155243755863491076276028013749594049522063331133939360528102656685595208872788350520409939838290057084360658042838224237208710627865124217887994835283279700728997442221280234919477037351312028557073438299797378239251515902451112457743621102307856731929024097967642797651653893541687420222376572794063638842419253185707373721461224355832907567752489543514941325534281759704117212994030945033760050688411206433589490373908333435313205099660963438525276723395913279578239008615808710848286887061627798953778371484380187323580695483251338918866475162829769263629641966744217596693228278850810461154512523702589304890653578121850360637082633848615279016350827521387855127371890489220644391211170660562607366214434261261784891382089115209536830246321326826320770656329514282129127036328718308008948822855862310823501041586248754998477930861423699200844928462820970360041503368257666505229345380356481679622920078859547984968136314352741030780431772608566091902710398549028436290936197930516999290923856958799111744647011473848358319560093325833241849991388248911729338723794436438351569240535499770117373192148213550527637008893586532212574681606398307729210965110761738455707721670997803746186159586106144289770804886620127550059991041469247530545634850678643508266649446442630624981903921157281082412553691599164240718205886856123685687130885588989472639624903364538228545975805453823326184377475944453368178914374232875501050284712525536840854496293294146831332899204417882730464621079582973436034034986446915748268182871194533676833178895270483371777154915665149474885395551620464220237036295493251180669360369955017387380957656543126010637183353464435512254751030568656182512194198183249457472039794109238302929094249873087186254369010944324617874379411428880642996703713893219464863245429759500108682214520739886993745852721637505965207797436573114147379713254153066779727199302404155322716113308046510482238639180053092592548755235542188494923008692172231827630173831847126097505252726833208093724916567326237914908144929421295022006226597314235860556648191460314465404168964622554197951906359166503479563311727548158233325820935835098014066052045041836581599825905630442482074946370673959138662012685284361068862207286000611348990744006376237738565798705908448534671429038595689067883646241543656938143885068048546301867180436027175847851377133930789921286242678112616070298722152299026857457883548101763391826794867310417283024113823628458800499577967082178553820144752990420525681908618246043801246167223788733569347047836844333316294310097990791296589657331521084448330614505408026074229128407226532771464693072810946057860095282447939091459765634469967030930493387765405241659478788640008421861603408242007796625216531831346668603975063054635725473175135024836228476379969482624097251356408198304892304055204499535551716148221730461329620269189134518735694813809371891009797588829242278559334843772015330534677808017236414145858415543016302034594967182258149120678432948592634856980920628472575724920199970535967460202389012501470798919435749759372811274447569275647604060399613647741020285030207166665958732953243541436666787538960729943008263529922482751998428980812898753548326164427527928448852426580078553539950319486264107113265044366957859506912805114970709764809935565361415260441052472766680420702802566852058935556525693293532530714203300128087290293047344408777614558707858952374016934131966546554224321556287598070157797028295271461716380150322948050840574675428546231023045169021583273646597505149378761654304837044820966360852883804427253463563939927364676057961096546764171507307980573180007693211642740805352898085155881561638660232583597099150577074887471579468686401143184916648557615700353476152228609293267836003969081608847152783133719922323476943034866400621295040100393547534486490256933833257039893521415902008671533923280790917442636534579876565186026211508074847821146502458891955427630602621637785924005327145002230127698265940547110390649606517013535868987852737390458661913363356638391029631021666383560934645456796786682941825009009524415559629986335631181929062496179836668864050533097446727388872730061570612563577681955400194916477545573014476592789562161255663662853579685962594665576021032175082558040383874505647881369419944619396684157957990208270694158238952043006616046582090554371961461779367840683752673742955485913036856358354428124298667580669688943640493153458704238570961995005802959976840200872169639697872273164221931684025927742945280294239652015305990657937712314511982088505373795830840250731416061439051741248622730944088240296792723906673767589326316541212768785588779824553221422535500498161213989734894450434566829734540027203557246444754039821237330174660890178968191726778310719412781945923531901931037530265076141601706318674834614146281390222401108203424332141146207247629603071806542236763744743352708202861364760970463438201673480297968664969654201331689701605777818421037151188614802125722704557607462977547616646266492894807684161032850141358690651815935636540532576188829234579098294195651395527863291259211600984099181454658222660956686184746178850219169076588608070673194581212980719218725915176639932450046721472570943895029245362252263816171754604079286813925813203217812596853978523561982840778800474101865754282206172915350390965270957314987520622281283683339306809213718957014430941979727983401794385827153291951734604201369013371456144031038827962400591431001860556996702907005324976211028881959747541425574448427786262327327052210403958972501985203228003428072244602325924701926269112704441903788214118762066507589449478488116297615950387586302284946486717359091980659773169830693687110023842824846158700127072150205401899700221666391621405589000528293735028021322460636640163990553940537496186869055329868004082297791117565623449429054728189490413118209597885769214315964581627697834214247016476506516116180534102173342555794884163436115706369480403074044398478603871678973743581285653723373587141506217214027074168591114967268836536267913484675992294658835167346556565764755766285951261687772313109324324935200749028747631167524711216358612150539982314991049898805877368124203947340638389197257723515936459827286586041658676395260826724329848925855425612831948092521499496265072035652620945301618500847278262959032080755310750273097295445619119491744576024938480448382259365083298274959020967016728013925246637961787176462934002595302542920151995497653428215933053404337294717870742997667466878517713803474635687562130351686932567390897644031139425373939613719453793523382283159267388619339213762691480972648386114131223759903083744429200488516581394460416648332999141413663124576602770083424915782258853431848308650865203188593104291180256361364366304466129636076906349286252131585744443378573212850025407356466082684643962515670138903143687196993636283151403945353409206883684580162943430893569679533714540347551147377754927225175612035301731772705432917142175293461421321049503732278720889357747072037705834056814787961139025833240683531736763904335028195223392630518538935366281892292117082653970531549450109035265052505769382862724400064796388071671159517277807780101333620856873578780838167214180049017886608418619338301684973784122128507625145654633361149968440844918232061650349029841175085612019665291503305357527676895971895914780940346510864036432527401437292286415641686308282130861702632299103424973733044086819948475687825881184632538262260970194006496919162193951570051095598341926938595832082879680458775541093889899115035507301421893905293644979752653467902921856140611912943269352086965878807677297515039274483390801178122970561572994184535622589467436836573173662966050879279819158627856381547270576869582564618092017795092537650253241761200709233510338848468427122935906057880455833900269329548857467257885902456717117306631864508414234831568653491964342870148118844896019181916453118019346746337899704933800605384653973011361054414732710233451083833656526166943204517044356693381450902563138206994048272885511462757781481357043127640508407372672073783193440966928738017570764872283749663565197727281230748765917244985066095773813509554967193323345330423655064462602928029887391421679891784715815421586666884394107454021620581370262500473439330698467983331170153853278875777693195636628815085869486445024423971730738435424404351071988635814342453437306070292664638012001835662365732495181187927183979614459518919931946931930468928334720568829566029039376461838528106707262756211158562331614204441419434451805619507745123595943007259720708660700015469592897564396495180786050026466934576052681646418086841547647213886902581599083675574691667445408852680903983746278392185861066500980730664850003574168426648315388188826333644038316553316367156386123847547191384241437622566998311524875986694455329624067421830208559940868580316401590903524184243954270983807487173658181044520871146238318394021954399447433679553424322078720598884524448963245163652454595437943644188516988412057061569281741180436760913906424885920645987741220340086816068954921458326854338609516594577375072167900124368648946704084129844715248517258352415216453028511286250128054508244993134833583025453578598678822173061893615264831356677100018992464552736447760918105451175931524965439745712561906318633969291936264024587480525249662689854474774034771268982072678199352336118006637565746206721015492921632993722107021835531116943611633141839147604914139268344306193155910852834073223131090849494135107023301152309328517008703823834921027721264463043061738197384205304934636664684169631201954763663465313392952387320774947121367452794789146289663594182321288117961992417578478137645521759780731689871582413890864899299899658839356534752894065559131136203276601833910796141842249966043734264454323376789482173559865353472221119878393590905769085698643285946509369800958214005111612427591483470911366301177317038559047034527613780079716458252342235097970299931166730785263875026501985892782321517323333739258856527788025709804822813758499933951711444230720086798390512244701969672866490144901160308181604434903779636618269616926217266866353646368147321226524831081448736486778605815700169908199320945695274264820729238975315384272335598404114074149860945689842805414139391420284587049656745099349563413654558711198387889089713212141708643567404628599898100337451977834063818887777688023156987243830141851809495178229958645604924662334052712310073432327707259880336128420564636801940494884615720512452143135891083254755875341428562928828559768528650523899673856481004567632716969741928234954814962433987197509565854197135978028522486300520576029554155154911106077112325628912888675965878437763312756183148177953217040979959944143280892683488960938548636845569300651090242784599305080665788748200713897471358980081225794292842033087229753155794553545886024022109027118911370441978953893491520201225733738109152678179759196234534952799220227873266765407927825240252538148178204340159273376965003828462258095884254507823242669679083532674336032228430882686822459930609099836508418847444048528251520495466505047550098486311126650320840414971734704991080731996609865663499710292614526083751164569895789862737005688230175461000166262645414596890207086067884909009890767864645204784967470784531090615907555591025007857547849444129815388807890567053435341378647757744766764026387332891559490895640599921186597789721008762255141323217122001112660014454649475642917246241974792086269098492180284324275437509211560119195246383427556890496380270952408551713862747650153359320293946836953421505809255210521911079907078809417620424057920281018454341836384137699408913326276873350557069687549478940169516068271300572172226931896647884585013783466579678159531772424035911769553583180580017576383341861448545476233060198347835740669356454636958864218094104282126426006971362919057345110849058646427489755237598463460068907187441742119769549059570692011647034980823105421996745398681759629453374764826916716131662174578062317828952737226680933899077561187536609977783125966147706261498265640448754078235812032839527030858249240709420173240991024064200870809775726313219789989711417108119847987789597684657883347739365198296671447945486804389208265948984219998330521675209485733112873040669907090676414915128598984561632880255199392453739004762131122802554807475476207332336101715417142325136123466859151513248964372516068383418545384382902103217135164218903517571293572979828958179821445883083444768234060069463601069119552567640755210787763989874059796386414374330455280134267234758097358176280841558993165537648415530502640102370232277832390569087113619412669252811293070052910292716637886937542406098064075075352697990955848095509939286362182294253572711849215210529440470359175610866886778505808456482207099168800544229678180763315894271107686575963421244693632016186034236123570125733208589446962247021865829579985003624559284267279312159798189562163161525706709912306838230744277003955602114000698143932755259055204473512225293007294741215082727763860971411663205464906517317268675986341911833506842951539646970403236249131324245734439191794946126034445746047982588856819784609096508452333947053365102642880841638210299100070415720485138609072120692910608971778777379005529292208498458962246991321108202362972943015486180610593904380425560323017543604803914671122100997773852456790457330719540068247086502388101084506368727036774903255018945343447550390133646379644298306874810509787920652604165295551853582937067248961769844754548217032249118655101761282293066166422676080944620880307162684670017901515217208650437954061448387239565720805762254637764125041448299200153007176430540432057772078379117138836260708118275001836774958993197740731504711854939587668929129172001064704782002440534921937518998262782538291227874280734971017139628334987370682708390604447792545184682937388476442790682471688164336262115499255300828020103777210832060924076100063216177251112618073213218561228697974774262509087638838458227611147410025488542719522901589005924155420895171131149283722120346940295584319272266197763752924919497441950316873077343604372357550188676580700605767745714939815427547489446803682391091328746717526420666580584688915112367110205635631479078637414943671954788253801486224859141398842859715113060556080406039745730760700778175788410418994887755860013792408571954303283700584441437649510138559477394684793844003660351794659367749707505167013593859121753050271692401081158344384693975380692716495887033871488642905672394241986615916203308245481085300855805011241399992384036246256906915490391606296792394738285985783406940441340278150226067674705092482041098709800619772352475456071649523139966144464470367634972889820429100152025703219297125264187128522777470978867691567936956560572591731008054390094339976815617626649615628852978901793076807805936814062535009101216140070261340860595834123572463289643364331895426694598631212450309679072980346468985672490920645566117031254618700482126256473769224708202101595138042909371455663263360884066003431312780440834283522385834185301848529472426978220822362653542300007264994083474446459974283319075533191896248544745968255090046632623131294750849936357988738438715508445595049425196894811297134309524804411226460869522347018865475945374953422091622965947797542702219216973074974489933263564009347955462844014708108297281883182083580114321636031514143406877819372470597931250798526836039047610503191466253452024344784034763785435801090664206786848212587595937359584566806930871192565507496086902068601061403512525294369594478725246430522453424114947261355593763017401587432064718905477545945288679943329150044209232586509875800164012723277495245308631123369776606633456650343481162656657431241308978582039834238124496180929999163205783867731312582480735712686824124288705587063545970593529776968710902718757414469049080207377588869907217007666525207327131518515009802978673769301929964089323771399162097806117414047553005588014792204085476613861144868399759696370682380610213732933886418801258872672423092375051492445726858521129793858227966935948491921189698971596090079334194249760414228311802103735517409439603042052270596738306540849148053328034064682985769830791655216590802720104362907609983712362118183184572786006935273576194790108988076128022417849143870005337972492657874205438158065715421028368129247908117724826272504879645545264485445660068528106541729078357525235574459067089963617616604768117012908553138777538494932983223094386605828191467902128915220016020347840102262409177714055365494728022570002625298130574155621237462269311390462302706347131234361378933915339077999118332047524416536279253998218889860787389827713494757085984897110673220954000870617727603816066650915414287648727788541055459637382560926333576916110885619840108461005263551976976967550487924615377814704132195531456036759914626868124348024747491798871823287198322041141957371930557785288797500156561226713562755983975589847329765258936120189419315603251471780511498091711527418581820807097857883857941092987771105194423338941847487196975186920919492996345425160750389645368646853218494352125231871523039717208202631709473004931824866417838470673351328743016927256586922378223002014931930632150861724087253677224930756512692515852832743068802856022814504454596865530132881871038522047597815169465850632397098221394970572554985620301538157680844355116341910732482930472202614959487632313906312618166955831527438920435022035002309573435875258421041057928710318593097762029707898265757071699912647361358999144573242588679121537094174302585867092834701635714693365650329719348947219900663066491094422214980259714009189577321914746061151859661632356510138803542185415043081316970443707155792158207341079529125425617190530458335292158507229957808738060064861344214390344973256219103527132990660827250505936105674660778419349277970216398575761725495454340695194922590409231546996634956608374780565380139670793948613254137256507607484050459652673562847709020102830448008205843609691510659017361154173250108956701054050534221944353051939127612797173508705013562863107142756787918903203913829580309750569472130512489971763431645486509372013077913760736972811701539213602168646217519065718534179157848445634611118765456980507046359303684283892173966102827424590846950904630276747792898802847249418935029809879740615062450799625269339296838705954038786278668656220986247312803242818913246540371912491763816306930636259248794927694863736034896469098838671405644363345030423461685818946082446616672735293880237208526530592749271068083625078280336347554439820170566624233055330590548278846447427983375711766017355353507263463763431697724539120820325746229450510289053696282952008516413402743235942152693853656273180741744317855355509146783544287931967058931933512654694504607452871912211377846194679975172387189467471668245822900716588059699633431706934710580635106622971832548248198358204741262057105733948435731125739439918584577268787751120140771151017619046755759245768758620006430517600165887269056518052835504895197887769047711096947483401816705388968521595133957840769794603015923820437501386471670348217840854400984998503244639174403824466028935976712841574473008986913590412104391249071881553268792305824037061848021147785220832424732747814181674703210300799178549123712376581016305216587806615279152731565314378925907430537116123572977885036573922272358403445533559149210318672247517955635638417033482005982039132260724315731139448030013565443992319553911044359841551877910035007247761509409483048195193910259234645649376330321942221686150134585151327358605853894060756416965668928867428691132697707698658786926151279772909958984203337605897035874961050374530283426099067992383241483146695064592851845951612217934013452957665790220138199207418691169786788265019813690069789945652179144000301459724351852119183755055077043309058535718456717412092548092604449854160638990010601695569900317074604019639775377155277084670621862067116737144486755944258104906287838898337630556287860210326258237035536314355104155484449739288870495140828197463700443362051579159374803247051663869147855287299667098416729496189804249438864281376680171368512507131271906481128154877586129840457177729896184938745342990662928250444396226769228379595410576362126278666186735241268915618056610794971022342358173389484711854597169873597334791588621765713810829799406721808929595963499452475979888608644300903500435139188939791582334630292974885803179311368892799888745998495095223948448238946872897104965397402863334833918540602829000652803962960581778274157656988211089603343098517642632419455598551322131199504586292506481455794485833963073685219327538756555925871284575114692295700507377638727198195018788861848424197384742086976319923932304458736840570929892363490608845665240522735545526324449986630787607717314146142931671987672404945999807951597871676166891008308422700916198652463855970427247357304064743165258920232090650302950900289848555107509517511392628426775940336864112551464024308421364869749634771908048121876243834193483777729139636089583157635598674024694329513217536491853643362340091456705677739184131448305107821801704064795310720668210866157494302678090778805060426706809116639256906445524427489618626720785032982686875895437759678026425305581523645566165534235728059035423869783080581177253798167810527306147856809253749559059585886604537077616742194178197141119693349174923511665051592110095358599949739272206388927360987759186918196003311678488512547245106264595157944307527991308343590434776878289420549011985055027890546481996212994721389394386836568442584464656211197499509209605096457785401687602386196656159116900592950854777983529909072166749738113742447815138219939153799776211646279393234851248428931128994831603695689880623711394544079190764885771490276721607962738863615274799246776795255986325369361347053878417092039295914205776019306673988608953144611150953540510842610409156295719209428456735272744786647764364211721005325403933442013705885243368716493676359806961254482122119267965411024763444950544322803142743195739151517807480534919620917373089603853122752273035852446869301668895298441399105793543205533657220433004983139928556741732918546937749215674097806767383508635104291513163402461504379715973220057736906438296720306598005410129937102663639872671337834048191424655353263820035230663733567985120918264168921787156026525765309379129886878961201039737454048630832721377824131317201145361255626361947467484045999632831175386924393091714965532506856896286611650796700609764634767056644947747758580629686047622346808879345596073997513583525853052444775137183696566067852091828714419252856988541673018619599706086602666525280249478752746465045337174648946065064536509627232806850273901099912541460078782945156222852075160452882852764837202456013342207046291493780379806083035711598685821081082198949370814493002402699132698095409275211363874965485570795688791162119463998322480785303928068197234686853511457164724432564077376611353065820907016505356162931487721802166828848865282231715373226246745345972928147076592765632361220214871543511820726797319741044723370396049514137531754842174525135986786209336583729381894938424578138998809262996145687563498004980765774667238191976256251122625463689358790681180222272067567797306728208863675183715840408646672855472588513837815230339264744297662118498393275135170159411867196068431099639980218070636914933250377648899708928907372298043940535044945468289433541966093690802819891246118161933069907892924476535314959019412716178179924253273961889053407224920669005279529328276865002997906558640804782050775265570359562063078365387648117249936721574500222933643530916210963262455719318539063814952351747721156688711403265157660454762577805045451182460514156853471138864507784403996564030546837670880585823206037380503893040083799873122915106764977116929495211994702063505525115543023544940820497427530839621602054979535106435761790196197865531383963061374919429742315384294479422608206927307754036842177627385499889646998781322700558655356012963890336117044255833182549215723536735623736601250397469378646683411675468277597629221624546892312756739028039627284329622048419707307676856935052839838267221730243405826010439915954026478076429701030145779711879390622286217085819622268588333753201090845254076575821295795907904586339159189588733274571846383055568417006376920011446091638466517797047433098568708973204229900262675121847375760244568558670063360899179045439196779606847551263008456180036778950588343500155563803002316699935472986185904499043528020482672114704997878025207250377799234467991106601711487517861312766715880023998542275539861282114319732563662639763343021979130737256343629845028549717606743490527863161281323852388792464642782105368872040753039673881181487543756628237124429507317546859710802605083064348115790140504120691489998428438038460663429584798061845198706008809244282933586303761506450436814050168809540542663552653618495163910592498076955916515980465445213617881342728897830699076507430045292172726881281730816044933792398389629595432284188002189528509876800416690628114422585679624162812371034276848439984005958587036689764415108417967997510484707566581281689834695539409074211499209863162443456288926818833478848008769850225628354064557042615837169777892013746686246678135666682111920998929936569075275883976648387452919518152439907564013401701275799077145871010391467557100732012416229513905842421213402482341276552704712669210485221606680743195020684882420260251405019355850737850891414467320561577329437850855016452153055940445168411376192886861173740439308166526547667826515964075190958125115675150491614262473826526317775884031802104578123500294684004697667392141204052287146650977024023616201563019749205157636687025835307016867750380738886550247474279888163609000037314771383593037018192580629990316079491041680703126994636735469040538050397714008120687774267216034347552940818519363722665620955543843702958299652869461957155764948853924070570346188634524431802435912360896449190009122584571060437134282617902029213121281580395560980948000875999365047904760437716012830149633728937279141874933521687258476684204167887952209278248670219857764735653412168349353959252316450759729691688305756405357443478289979138641624802564567046459895922802803177333608241384593084530511915109426935092322409017546443138715088851851826329687967280232401075393634373783758436560854789520531672711792620218808474275388878318065772828411727583241776633887177054050446087730074011436375874254950789677063227821172051724497602466170412610576274968383988130455846982893990991412988969721596325029391102253586088221391691295552457373312376599370171055031926935366386448984933904547888922669676512383496228511044940700253042562920239969170492868678370688546842462649561070594595869924164640400955761712630721809870546939203667387462246784137592232414207749375253344241718254404960134859163217008677323306626370415904787358880266832587555265200216388321577873979359510131929910007124262199481133969548017018205559249165789194228331987023807477966208388174424273892055366403150292194871893469893203187209891621886058835960027544673814984439547684653249383774706072368118844923582321448820221147315440269232127715261813850237379824535344792750584271457794578341212060194355654102045970465189971865272701913314198057642640650872519058358173466903834360123369412332638645433641577006275520714132954271253230448922859294681455716126002057681945371705109172794016254318019413171245001002986379009961309959192395403571061246979405352122469296396276699756248441662573805623598833349844785902404053238983304747519304784936259870642335862394003434879215744955147498329013867659101366934006672424042033588949683887200028645376262941976237274759664548708943829418933022549881019247204058328189645449016171464265495990800851719454718701793757833126716930968364141495890570800911885417374845757640328311152754292711499119514317167096124320048106996811663770523136853027140112995357782164081555186785395158470630730870583864138234804440094905280295350804057557873360238285519878584517040316302751131118836325910898299136820301937616977931520800320390871831013713745922804688799065595040445954484561306172775420308474213343755712281719040940272685196312645065430130199152263533128188164316102009434095905996488715535426897586158462979170887025201857381114217840747983971765073528445041085173434945726205947467640101579596818587911797528952910533181881957547306951129177068058952389830274115741134519520507708511508001081477942849829317344143004620588216379844537583874438103275626873618157812332973796359305966204928212487904958346776050444971251278025716040459904336736907354882462286182079029751327836755087760095810443566899856274292453342847238593982177145688620044693593822226912381348012351493535087410943436195964840360683672002219095300819020913853997142298050262930568257113654638007623794673075516447626871127601021400048375499553217265982257516293135585324174302042401097472641986672523757741641592251225719767285453648138917776354194075490413181497119854151373824814757413571792581539556962596701804072274368192532913455136590859895633534474986090519023834364734893010758890837916992590748100491737395891961875287104094191846146001639935611377694641990094476689616105010271011611703290717274207260536774191793054277183973179846778903466539911419786087165880883651223410378306069188456426063268293148484990087515991283360595164088847234959302059212665632005153653179831548391341391452241050945246922808659140254885276269221814133463274121148432202719749555931282308914646865272813813174007931964136362032127521120260184668904916751435049209773331655174636270785313104595507539202531462788295395644850443823601495575521667071676864852809901633084783025965567991620631306394203444832969503773855556313084768168567262398397068194758164602470794044785845052974942422805067704060925459782785495887991265352465927756701700871108704809224393635340218215824563606413009743569696096888277483279755455184174451483002305536520715851382611943725903026484585309381270512370712156516550882439241720840480839278760742653997669263779199185164383825021349609029542211340074669935386493532276180155526101201796235599162050137637414085535516921047924208382675592619247218789527080201489538956061092513522366287946438902555981786139129794345287899124896626167022980599553441975757754762210312067428988899761919765142374666084643637188842978259179066865954160465985475878389006858328607810121626685082021730006369284551791897812673696845182771536708995466958101724179142474104831048655185496081993112707322533488172464275191754498013813590014876480223785021707246029857632072412445394465442232651583350056454934170372436858551040760714447856222580106767706395004686915023432501263563736396643251971541368195558799634782106111455086065232941307521706946776037786161905489273173122178652344921689439023833090875244821181030180574104483798543433891181920249110949194217510039449598148071770304586292980835650771340560977867855109530209671684920704368443641270664909739074563803103584873883605005555278032448244325784939011193427838911144563275918144970771682077410283871190272867727858021404214692134836386107214934673440972677493335458395713494598760906232763131026884394064569376002893177288289266593231690692955784081832873050001620431066657303178819114216629739525591313415501712455669127866263674455240184002031480348385852787168061823724657962865395416276920710000399768604511164181570228079161311921789106726406677457537586048813652430557858123183823311675445790115897279315510368463585654144992250282480894975307169368682420820135131566304489694046824004591243986489144159435842529615459224402087379489176524225886771756868054147898330337082148051076389402538201493524849418314301024205686277048844623968451670895458814359747898522386582096504905179913958229307218682085608914627540810379891594859913530769371269588727882703130414199556849987110158465580688745138203883346072132945655366551691755139843748224152152728765829645011294932902540858951046018214519834886803104742003784077181400403862098034745105665488598471365892536474717911614924814938905759551023037865796894585844139284216055388151174500137642960740506516930036397501355608052363903075988807631634234585549706602121906982884033363178069198072365858948337478021917913877975080436088422356049909785872874953659895473649061393293990374597483896083680300118435936200919808948571911114441215473373262869679855136482719089160446937490146310971936320064777521547866189648893171001815489461763823349868389384892553482292114558550676636749704630528254081976735216697319222613646317763435384175345697827642713906884351115660537587529357603403431226262417052146274856252072122634780592382306009715539753497919595887047381573676477900619535014336427544351827842866531974056403517902588488240671482953798421733817988073707667765627472921835269746981005274550620373834135108120145730137525218134516296369078799396376707097298051966001965609490680562228125849674843502013296987329019117812101492803248993652004672230611269099449051173443349136431654831387369913460610758463749362361046224795587556875233348404683019978082359458148678019082943792595472510500588895090330606426988439377184067944273825286135917136221374410787104509192294786212509156701037884367651690195578149250871186826304490630539523073085322938843258016999331595013709241284990474619521372766988006214650619829919138006341678924366274102489235223680590954031946073506452943304558038966348432011405553497820301075647122784238113017887950059078172672749734540880709589433490601277523172385294119205084335660419351717356793067210704538592048098551967527025979663055978504018578228051255870316170877637796715404385850754183984357753728905834479554754352385783578027062716327429969484226397019771518688833960601560534746273281476613706103478349548731354758090503276485400803954097134907143269756598711180946598949392655901809340331545347386367779661122033320306327393938274850816903519593306817554641058569951282604406857914723921631486260510795359172113274378921052765752744161360319970721350583965575847713680453952581575842838568146552493614020196439195116225218329068359619088174726859666169328224501013563201660593378459914168420544485819383931928822387916602602591723394854021476417438376955685141744509024449732189224141709754193017780852518200756977352677729018959866323832081298989205314335975846232721735220316928770199403601166792615774033074436597386192647615996655261721854030852448544533149966384828327465868268374414665290304777127033822665205273788488981094267970413245809214800440007364983680229266163459073954419726642693114612757990087922763698167782265204963667894343100787346077316448652855458553472336115682251058898817036947496568199775674612138066622683849318666739882423638883764312560667092959110669491518181457132299070522808138026526309354128003831639740675097167389426784875795860314463813959166660155833409528704576635574178440376581144395867926438944088975150490665450858003192481019921236611444458847559549573719252131164018141290167569755944802246282889712287232186314592554612083944756305154713894512235812835636111565407670328002675745029352378760831221150574762883974757785983072580204208774053628944734981095387547902744629124148903198225123207319616371698433922587034031911614431955370860063130997540117382763129520895444713931495261329019838831175693666987929779380842479029496295004727748691512480592986894360807549525554281680735583947140694496587303986846217453701592988566164492076351998683117313659577853373891811637303563749707019780424289735915413021330914674936837355040633005783643016564104067481850732797696924044166382972574380679181928466643348443670666181328616970312152399433892581502185756818684675973027491091495810094992082788809207005602636611626348944193409823016015019850554120547266730972646038490443015382814525858839568485964588900546295614431485130282596264597100823616371789101694924387594551785995737622901800323195273478262191469652785505419930124797223049107688933257867842660014810675692564917685468377723615078695410065308256026368722225479243065498233090741718806651731089299947314626303434405063654088052314206683448890617169082685566278487312359581758964697887036975284302529463221620254749311769044608231114299586024033982827920419781385209925081987373594698355712411579404576076016353277430017427133525461852331932253618732181999776386604276146463400754043936833091230904314051478314847624446609793093814453311259816022030374268971403514504822078091656981696478293311118465803560307805208235612814335108013284920103125247811391818513762318253720213460148023349237274507252343077811638793852764586708805397401522814893997076349513464023063027205603421825467429862967598974211023636718035866426670076375255204466510909338592400074487613586344873389829043862579803714192398059197821096988905203013050324536507844956846651434141948001063085358854372617946804858548483501621475763862874096781535932310240744122179802465620903792437409622564736165265585674791065471467840575064741106052365478556000665699714745970939375269627780894453388862634050090002936539416441468646189540298193069103041253894856974596957501090273648883883436206811770613585227217528061284987155444209119410656279688612927725184514129396536889398105538448589253820185138627227897301332575097687232785126041429612518653041913977140388140389501243950385044606231800531039927474866474849483299015948054417429457159099380381439414217182988812144487456763533220832579020073261284020003264358247773129396058593861964491474161975428208977847863079159849565774785571423780900255196572002950951776582677904601361261611921651606627633596925641116396577456558956553872238489448926053102558468273792632644464645119516518134063878064789411216320118411061370119629656787491051789814141101482573963676164633145718308847375820337071304862345173848793739510534355225059569710797338618907329933162260610365216513992066481963493850261755520838232718148797092660254646239835929322567790689596617912733498948108704122398141374099145743323487240109461733972908508636296340543343832263368388966267586287602834991568053426787001530369926223888116899626870757353948535944021854905955067783476958180899427167188957597080796570197184625762664555103611164059304093488659012623165701967211672783108421591163386764786166463978596672639619542259447873455982152103598850022520803361706454204185859786535571137728023748238185946507602438664110281669041033780088187447631821796644504638573684653128679241516123674372890630716284867570370599032153253347608200236311160531341873152491763454520000781971911638226718505270436778560752413382818390977617942835841685326985143453869706147401710082361324568503065866860843596546230114559435990089618651909261021443579748685443115661382599138503114181372165478710501740696453452573341956659965094517898917442032131786400382503820072199515930362832747228887205374995479385855180800395460894455446190260203060116199544865549259581065515348116084948151243114777148683304731073780926246986348768097779061705385497162695415949832785399666712484188501946621186605957272277594216420831476662776593661227594500701971906675389379275309360227774829297576467707655592649453302309572547703130509838811874041592344869112548135110111205275018581431203922967652300071510063518966662169447583168026175172415075406023790503460032572279626648666377612490837499059843337643038968787883294223072939369872412308782985674823085034900622308201969595036161503456063377419947918247784013941312617971836333708669987719829945192991520264381867718846531608250771034308641888256565570713307730702635488807094501743960941171958619959765217030224299571055889873078309506236719253637302591818369613019383960089052494985592196104519317937526768228362507548349734787568636711751582528892271959517708051187030610243424025856444114328580576526346428048770128491188495058066726765581828867777325165817288431923994166057219558333255358470073676358969223552926787593612292231660140237500177073793399761138224643372814381395058688460190487873273952260151320391577717357735509048658819101172050932847627388550030812155462878369889910334886248645447791097708555456762752942391059835475009662695814918172575278650730901624749072691405498974973476035908052775718622914178078297578900023321414106790466337762730507850277231210317266656429045817714052083197193980538138728589422167971276687027502042241890954881138092881577490454867788109868781964005485720805192819328261011746881235179016519703690575575310245355953418067873962892744154584200508393056658252376316122573741950823184155605088975635829711302663229020817271381623216661556328175473275951365801318341249282947046206957067418276746668645406352277038489290737336232097468683570862364219836843577503235675169696676010845045290679645297053984410987004561013894342880270406485556869655006114989007835116634044677204116638079523707648852366309367914117736927005554290599434678933291819465217907612119839330454267502870144899219405196737034691882365522001095736952056582438075812703776711737244900494141181657828750481585990753542799945931590319779312730238003218099070721512329733356593720235485569007900052073563403681190320985134545430856660020093046866445307828107675762122690765229456726778893859932870644747167833921713209762919226885684642347093696859450009861307039013619203596551926391785035349118388514173400334031753842252087131550026204754561999766944493349781315806987794863729786523393944486440411751970675087071527850062700449732336805847804392468113445961915228728647983417912066409749338652885476469527197726192998738820928193074764921780251088028447979049710469584990810498150759985361905147642637756112204959125230751113367312389268968262212775307836093294684864332477740877585228922521227651413696423385431610542444745683762277325226544917821132421940883383925687406468012967748238617382017123764456953690679723203960468023529669571681377216482761568555935631925902242491742044367406040324801332920045581630246707960282315087521738287600071445834739349413228404793058869553379109443452685532674927045383140832029237945490034637766268625972692004297129669378118029903031376620340140215807620476530198035012253866052960466734058622105572134333032129244788867826474025557114769936282631872139185449495537086710159751518813177907512673121648441189438067768215441035485116836747805742027946068097420940120712403743445682867766829542569988727358173406233387366177254095528314942771517974067603865820214320498662403555066644926795815163494878932725711281768254868300930769562344520623203918778691245177817275595718178670760113908600172803128877542702285167477634874122767589349845236586485812619473659530487861720456695512525741564777152391942505648255635753809357148360794280902187747136600147735546568711287853282888968326599076196511206733321538379703160496060840131855116731807198362182854709692888589468144394249420962641892237059625343807760155239907446360420569265433984679319688679964378568556970495105955342080899132597558366594432446950765046080430666814223491012640361451681443256376454287548337710690957713930074796645386002970371740801811102631630444593672499192042757597274151025767081832084720225721619118440222119088830766077478983961317063419328125792148915419628882627290581687736807680884545209702329379267936760563617795583045182140623647076601366988433555222738055783426075126159700095642619868537723130551625798100427915609278214284293684824239640965188137702197145373272465972760020743670592773415132841653652398460452703310074018192233501618432948056912919856026021245934286050363079950818766579739402811496592031584484076495559195183260960460627942787120354533506522825827351704238336151778690691474547383396759007546631782324300589579166884983852913417669805818127744828631845164638640441199971625423900820216094773535459159034445704435567856548700630398923242642471565451124268085959620520243307641002321932908196624596901046459468537094641116051704336935217640810676377425272911370880492276474466347314301838923786860318306757812899663017820777310969849764957384428862499853813926930871549747680015816648880022657122322024664091226175414766244941847331008659373747162625330963994130884321888256619108291323149817854888254596322289896644312853282077988053264036432825155772335676032819958250911783259317471543068065660772418684945861573048301325418313970410335260128031646073259126110280647639883875240603170540925481980032585337379976141419881385482179504748477814394325053532773494046940109023693083394126662745485239089510319444476383525462292267889827414775817686526358158939902685371176227476069152463076111219027669323712594691202227225479246417960539365742899427159252316202593325374265957283871188318104059373228158013333955099135293360911184924104370594691868260528197535011427148325816286308640371525839199143609943312956311761241081768930205610099651155266175879270461190240816385363206636753118343492260092157208144693299251493897443614103621225307392191898883918925917691646384746118962092233050429297616638299622302115027906649337079774619152144540993619117504120693259633987392760446035295596246526300349932303173897482571464787730214305425713578557040333355314065825262007553197108405860569803006486443287165333563530006339481668119404194252244659155848359375780749029408931469693370462349027656541301941761038016901844797179293241257718564833357847923106289095658839382904484576216720177638185399504831675542971695679639448606739017109385251217518287189489150816185364903688756933259105618057653438155224678622886262926088113736771277612163028072220498920337227580162005386891777789845612214461624385798473605727429497967477568049751834354968260268993374336518248442984947775247999047902240961592223162111344784615092443271259928311091604204081133195492950192686246694850691240203784763444921533363591875446900274633296825230251555767985501432139582760924089239976128701681650350202173122102232062079962197115868679412459432322949895672477057085412239961508695822175909062816693759746815202663505155450102392448056399697600164247130125024308070793801208266304283094671755596797041004749734686704574514113299010708026356641960135651670983993060191936361516527991535582168041195596993377179092788474867180030279736565507567180865974384668235486672226595142481516268095481739116368597388581555937446645259232356330202033806431661648096730780355351215709887114386016524762031098384829018597245076233567952971043237033821342833079569460604813908038806838165980288012841925539335210324827800697093636728531766956679502113857425386812126825727616398011083578778542276448133485166294176928148006521025125217583057128272754847208416254897373833805080317306365644397475917463256410404242977137603627399229010123310949241680219346982386009058561952446750600050030118054358312956669661945610936066849321330581298864913620017611292256271254846320357769441144688551403678575852046255771321406346348483911832837271784938434455228413598474403528417638650643368784619013267345210321277260074774730558817538627122246947486150573219154757304423982402136403058708237208226453788883247315286337984136655434983083558824065053255615461954986135811588456627015484815784612413943491056630898235885828384916672092868853493265221699183418009199159560700053977240777300775509344873649967421910403235924060176614135981979055089693587712297971203761151061349567518019776727561023483585299197527989947794451239095584428250784580103552272694587762296380860662912321692326432130289381448887823504920645545625872259376060027053725337696316529232153944825376653331907832051332042045110988344497974521831867246189395537157636518380594224760854145842711385972263129064972547375420210065676048813393084446160681252413170372599550472413455349329542484520776765281120137640591696706867300808829259458865169603526408098148388542592998289307639839187449085750667014391369935830485285239339195328952780661004886343182848733902378321919339992973109796305477318394753796835509371884938232604099806795459760946522946130202142387940783647125541794099557642771441537913843889719675562059477964592593506260749370131965045745972033736469830752712854242462987261836020687957744423702884235581908360120432567478582541466057870272994473491113795835766242421015778261521177417656542843122944016260535568115768961704278086536244455007237119154245974611406495571040563185083830121966525227506402119085250504728834102585534843458821240399238179951927860625695828941804153887226839711590297439393528807106824345517478016357548108318873381306144366526911233680868486080104985955447637534825420252791290627114490820515521971788626196050898090700982667783761119559468596494213972292702132844065709973866077719738571665335670529826137274892402006222123977895245832540270493466737753082237749016284697818162610246626826613423641240570191879280815401088108347792576495032050351029428120939952399467052247881638135987450759108420119207862739343194446527500343207923849683039263787919040625630305726472652378266018133077057744827534304349878764736768120077553697617472591581721753295057474437636923656528056458167014452598358953974676019217055565878707021546061722623895047315309637085859155339049832633669343902848819866010957146026096666654934747784272160627717279101061032223890403738681911490617027977893139958476510447088739650679031850378643707424845457837991706075794408866639977402985577758628894993190240976523768986667954189238410817556780780130517784147543625889789731098843893227706844884388079799367249428998816942826307939715833066455945008814976315392176920444948063177125887608719098698594859119847225694918116683064209935469816834565671982939952401843271807818438770474085302909975200288153655493971296970496916071266226844543513601072623980809910903742108151467907824608302768882241082183254938351628784752624974009067992074711937298879512853593496965926634009960325215105388098164910372125263746586079633621816548400118906023297549806300612779833518744960205448601584990078076693257633556040953582943581951135355327806818675840766576104619167708001937211253030824069378299354933995597852926960246443030978563033033199963722388627354270805052919870795239800340544365307489584328957242496842593612358021441933020659043253121212069477443224125865042129211977015693584873363344949714068613598872079514995742037268030119917264267021817314553129403720634009629431065348431834232988547071575332655768012202015972245608198680216633515720656064818304892539800833233291271991961543367865740095353342777098230793336884333755239858065650013419469535218545271173122247809419011926203669680015154840385616787200285509462375207379592408269334445165209065446609289121187562771188864892832303228719012411028813939632140881086197042283220958938238294930291419295254528123590582045942598978557000038075365270993226575415168086480722040048164648024242431341558396466951420704361011010239295890935601624353483473426977280242359361338309382666958054969238229140850610470494511554585121417854523051915138331468236425443681438366828668400176347844945195285150146565884829427339405512631249990554924901828826963958148534715432987948602933550618809689799081990300694703768682140264768982768216005729956647457681732622629278434426218062244150513601565078336471487631142708116637837474901411804045931111171689523354952186042399094728394257251612380140903501268727150751728983705693160464158111637402033931140899530873791386849145473924622854021878322181905589518587047177094884039048098221198544359808117801337902411048595920326645451697127481856836305064481393777185294489025065980277226023430185652269994417076073777583997191562368791093973753891426162766331366645665662550664792720532349883650469245176425334338501716747372122878879805529415703049531824763941449333960479440377067711109203483688380480172961978152730291715690755903530900450286403494048653149296566645420181981683975706998083065518914205258145814546616714154981165370439036825555830927428733208175264495261642823107968546969822375300235289615306160642178989852595522956355755083310738098853327259420451602930831151433306110705013376094138500019634055941754309362043850601743527003230088183628576576805459035681437528338638784941886456358730864865899781534903457703995149072068027358295940770156341505680820305648666318092365661941969977259457281705789584496817203706098099361185204784780204126586480836335512471188087260319167347671808808503060094759172287536528965734091676590047524722190944814572980099909194180461154679447712406315849245497397871085564644105422614373782757187926679853817917683587909795139007891852645627515273230310680989792472797578748213027795257345973977841351013869618536043083056786056236738161726522214423485418965696981056247960080044187873856792158253069418609296157634804210389930884855734235409201232986129510803161741702025705750909856524334148478445413116870625707026883724059088869824752170891310652880323128390577491812790377142184385081272571704418036304763044127246874048215723541706742497541337331506684454908921930206555285359122135657969042306843190683248676166673456031666001029724749063267288071379102739345439302238616739256856275784605868388609256425243933887990850718801957580534705428540557651371060502328224456689997882748485568968564386047635903922581365989943535725006979481484700884325527762188771169238721369094025914837134538003606528975878241611038124491276735497394921250670307698369267246862152799367793534588923890858550138597747269210019818704669322269915675796309110026709865897895896163911146627274045162702609032041846065640612318373672450117787246495047635885067261110567813211734348069639026722652483131901735536298990577554681608760769187007656320820113683836957151788115355784439575039336731158546037887187339184783394963142665808946183391382085451034231706520037366129973086955258831431440143075370996907176317246265214458798258305292879704065269967989363002648010689702176365918764279741494204441115376098821602504555050620268001685697954802495116106206409185467782482887515179606319668661144037536709970004259885259727427002004505216692828511659959348404459548165689537843063854582599369364741205230536985492157887480297365444599872020076459327084211403627804555607620252764853297318687515741282574029426901602042728477992647924867032961100681004811833357144855829643434529344502818812663408509422515986729243040653405994559157632493781041070363661558487434387026685453938390297626828669110037305087425852661052532088598764702727578144387018206323727199600738845951265077145827497099298749511659295682068525117336172050323534448991371742072827418980938944638267001131840685142145647225186254508121324606748769437453652003233509539062375020609258614083639582677268590763280509995101313464256612800260084241317577627276165146426921708218328948222955894505424417934738966294341805968492641238420159133083952607054000279685498517385526971203457040462042661381802478672344431256981508510000243879112467648613265692248847356217821913707769193733449207597102430764417913580168757087135115265923878806609525232436427512994268696639684528359538575515011889954077884835229146866163798718816180686878706824147166254649184898449343138065526986368350067544159423038015808398562148167261829703964937123753277334684729736423214820899242052366289279598798684583061399900997519281473198348011282597262444444725914594188220896503445464650065336264322306130246946079797193478933982509530394301321237406674001917458941842280883605941776800342008928375046153813663065749934744826316260976188989109443033170312961383930336506296862810575060580808294678347480573779875929962982712536276179107269327279256270849694594459366188760307279212645221076484085313212510513082853984332605891899389875911767123565926512991225650636446429906248600400459815051760882662728328462379837493219264988658151067095758142927489735504309159936399785675631272173243807861548779233194432849686423074637030806968467683566752192310616666266989265584583814804431602269316054987231423521777437374245255635804501382019177679399877559782071051125890610895328803404725828024671773269146233457207214557165754774621049440427888358891951116043951954653126016341745137857852618113570542691999406119325390666296790161378863720894611566033407017480290817303677331948235467181281389663379275257856333164492861627409992261596414682369492216978137591169247150363688955359894393493321834030954390840219842934767778896769239391403318763840641454108661248587476352260490831260271590456271707193508172260429532047227098836901072489122136010336550442377778245201569649635759636329311970624342954523263724341478385395171074710845973982467618487673404322061576905231624416445491918223500664760870486258825116496453495994202102660783031960558202057266607047968328665120722514634527011035025231747452886867091820654279264547718483787561270638631646232584966076435792974945178700361256954303663683908942742550472156720280612281400294698983310023551418287062710369492909196256617818031402140695358132568132118151422845508610348902874638437704235058477944448976515180156862688871749072479704510205322657610283854010214439411894557103386225540664228095364687953831674620935189116376471796990796967477448399078976399699848527545426066678194251550300253150813855279641740309328046685600242870601588850623831674648869957722393263162432193599424857604336263527537689717754509580842344515167061652458613243544077289486932235732873988565522738905931902437307634687043047557807114659613864439725986477158946391332973199860964281036603365182425436277560625488469313760974105134182059588595278443607997473440246060074757767486418154707858442733144344444872810442889838742200165250793776645129789139262806103206174254731090477106190574842261781087459250369485770188184801696409291677326660333797425651301419964014167550780313783710198390581903513647022956901771705407121142432128016257654467915637726139717710223773160538854501124127037728834855706026120436264004856575635718677400705523672320155228851073938727096224961021514770949474251938989530277280669672523076092490448169113507786409303874459873916051390594263787758040096524103551504457019363693427958909721109834972798597379804123597235499319254182861361656089367971084073349656245101794026747340095568983784115864113720859342839593449479004144848024436644900254533760614618650379704098339826518689183304638649439468509138450289138091340814079786529599377746160969212048142909359298114563256802522033078296169773231005803875842922145229697881027309305942258425203409266602315215810143182461749755572581587832428217790601484535747802581164899802116339153713702938749298001839099634525822594216210121539532796258883620538739878306183490468136686324409820259664816433057470541425457319964597779373330317008924446051143318246779288532245936333719929302347381138150960006281703414791162507423520263032899082500755153929292442761199687218948106036966645736737752935963096565800876851514426353152334631776054371978668219645671523961586030461834593305726583858494543307267909532964874192440020314821580548415189929886326379530190497715880297460678667822329990125136322416265029091952469799211707840766696490377868063656928266079224803026413312591090645362132524922472791105302016362654485154588340804184125570381954885220482746638889085212478305968432363828724420680464525752419287393901276326897367917945282084040401173170097845217731969430040631967456928342992849990665961415608659411531949342568816798128637665383640151657318049834012859103265094918769663550218116061085693726179103264194493739513286580123455705124563169497711745216195595934616920224367223735213388391702046875934779287832241592052578598031579188024483515922010869042239314109635192571152563249250213193345062202260165292160067094933569280971430759121360478008194259173658527667232871651282965874298828203381524650512572218368769170554405608915813489764096412872567818440420438064711736359403460780888287019236915629963087396982393130267977717743203647497250675440644997689624522413303332404728077479339147741857714693230793833696372095540127160400952594652758623579997702737018875652601985893737305824539863161216498649300665326641976139018444757954745689901993122885701044876025653891351893983791126335947340218726465036994243514995359702309253442115565587850387602169573219172079222440717900933492741712137537558613830370328498345723688584936258978358943637799517523284602184170185740856445617513772685164461388506034033458189453932214916122473511537217145949896094072566542870247537124447783649625161649992700434931583368616758516851378303869048270685035249524367202010797280681547306848561904394798049286674981267367960044685711384280041545981221700073667401794403252430483383576309690532969578192473299898955909348505265966411505168800575187821634096448447767375710770007235961948012935880779229595762036683126467672837164880600168668608326375054721130721522641907062234981182588562035001760761784332662924797206459159046765971239287517161759376964125479500555845512373995317768861196489060358643718954963426020577363384117401033548169679881114091107332408036449225261774486367346966041915790531782631748875039357663758512403413232653697988712148592250001030402954509888506988788453062907016487496170912544068704303872738068541365296777026176182232229117615240553483583769249839552099579871930547475456942104305660768999802372128000472640624774756477901217356150306704870259123004229403339083539678091786196495771252771578007297613663136293131262601703975847728559272582249901884262244731727708004122919520810060218090170388312475025255027558323277001063181386665496969533085355404334183894867739422317757179130485889723808816769532573663782708579201484504592191854349917146573299829853837788390623383997662551666921331339884048804395030215844723661323107587740823603275807618004998960083674573872722360635485289032137674984278986965645477564789708043688769940815391469095640697298925947656241985153400614158935932597333770431446795641357754857213888469405038957766737025203245930128084521012660180547794191476405332853921730950969497281130575273919102860573254885245494296477723782586409183993462371870946977225117273020662411052656917883983808074243873739974316306441555594743563937184014770014046819534900121092256058373741873957776863271428498640515239555766531966757255562276267457188601416638576951239577753946224968961899729461963722317438122756905336858933723509226113075652558683963153789000993013708404261065962380162694435350396668523356420369273159994447396577138628765621306379650596022676983009046738639307751298323367403729767963085684603773896349193303993077972741402659924725961889908084552808562567389700399626826709887591122387719537971157779692994429989748768741511268759277752595351360244646558401473203778413193788554482264781193796789794110846552047950149222843459619235194904001006264027635264386129261617508616103217628249300243397116679430594657148798009160107457269492090699389356366158372041495374236192060724835295422872369233375434621775144778956100223314027138794155610048132248371574210415941025831358181168419724578732075862217097132101653330743547565997664557999867177927410163236948371152153267601084471733432999118145090770707363442972936455505851014328232467426443416968182245348770057414812221118591313170483561765648832082526112660477130938983822465946505997085901389350682145069794846456797615341155415743867908793452253579153386264980487413305193921636230420709891191955059301164266931335593812610728234888224303764387659068005839655613065815148538222584457194637065893129665732606616099978345375372949910585127084781375683432691991870608339343027646738582965935194693184310014164977068210449446528525860127627372755225418574790133870087014124340134278287754342057445220492995413994539710286348904637349554923850739217770976941144297414712349255800173737639092164555773978764613082425291159837540583101917011580680810937134300656425609336615301050066214492401362355485353894069461655969409980838625045327492899965321162937991886144392967292255685876086787975165877233382721123650178295263058085408869817715925154757048808058616140686007502590468641113533497677390413227887462600870980418967802687441969524605030728865167922690923653065458002835632893177709431061598009508759081489151912637453310734086486662181191178657302982097265341891135970886684928760056108359266202572236039476130080620272792286440434640059224528569023314698013504882627836086173562851750364387663778072405786266926590763626811303990428968394922450876343025347631653175729297296298675343666173029814678380065226310802467580791579169946463177491260248621998145271817680575088504971941118053163729429779586548322298811790998588038416927530707294577380394487533748810745729772694999981220996734688958002012632016352474629563674106469435906971403754487243384542871012877506369686511451098459660901368435517290833964459078398530485217034565496123066471542354629435752376105146133356068257976670884464239796104424678314667514574392597938319366667082772581381044316631284098182365101385090717268339154228850457029526643126567879792656270017214668339291539655176620151590881554574190289290537497651918670477443541968390912428889753791699041018348648943662012838866559911423209585592811840624198197692958921296620214741304098250222937664971338368949905399801690216562141312288232758320014274108470747490061874255549133226612919332202686138971332870770385735132194406106994494077775503856047370384258198838552720847359262978217532307796567623691412851773559443843500096600532556512425908449075257466594607214677374939509815410351703138322095104665763126643980636709771845324005990747184405349848802956816777784629437442802763178914819715345361762058627028058641496609473746195994500827358366050114602877701307640527338035897879038770419772217258866687231895713315389395995213709930945682872111436738711465933161992958518825897664452339036629143533050489077034494464906803694611122235170836563653520769643541553474372585308804215783632677441308361289558966644856404832950885875015717019122768557391202562996310455405419420794267902197172187218713794772927952632117122135893117807554762253080724730115599308119756674819920203820931708960044650512578481429259716235752195464709912095846614142799147034360489574191776577418141486036157749809702051402551369042430543752562350063690018682132928459128892322440580673106407978438577008682731735065642081719754891195862778697496740944912841914771843460586622314630320898634231006146032712672954541101365905465739582748220375839617499168939816979258637911288216703475321663542439479819634368432402083619005525358597722312578979941926013436000866816183814907628736992794319964121668821494154736897746508540605696526115068997416511565300689297927952352676339168332605422264389112618794447907078899880628046047784942495561530802250944183294884093248557902222109754046138032188563723382763807437577988681718415287726976145054380094516184773657724241657373237985695987512409337956608687285980547084769410684391291037796489972255489782284789056307079872864192201898280687856107449567725443509409522851445276439124873064070089367680862564910567144634797860458767029973434466614228449898132112385523223771850887358223710070054597615581027878713868338089087672581574117745091110530046620203623505502136282070250711561384519544771130934768311555356618962758773358480016994903108496892000904340420937316059688148645901286817009212598844620182462250893520722770298695141348780748362669392192146609619613795738941972442580969569707021321375723805342631809584484803539441772214761271692022875324148893506504786781609549188680287290585125181596565908064965895058712087281887460884612859827623001820165869250959908224417977421165150522316456936543988500787132138425655649297094908338494362324763448398806893411508225202800867829642805700492147006511660018214859590631451769454428036220834845957655222609258215522064718963159290355016010831344403039516902020831120897313701110359071685391281902525942778545883786599067297047250847577112364766736112773304398727287869782925995995654736127745322410887042526163220438722901316967158206823965573395506987416685122857622613061672273888287250324580712060005278132774896944602255271736731236793188254119421173966463993278959981979826484579463921453554984229140466994028058066690822492316742559054806091667449831572505511123006673885799433032302647420126627261525215805610225031284461838932795905138485427753743128197302294850506358273807002777252486948868304846968761657866713319384956009273516933941549842582218503240108541365481404372654696553233111258608483363046481812022778622708446868420206392899528781735518296036057733662521883026826189509684388505258938866352270117683395949767155422252394155806092548157964215495680967222579978255135132124991643890293599705084100747661204023573246872911255045343843701666104816345994301918468348826162320008922544038389166204415751842360110254177569517496188866337481019256555660339339456697248159850518925328510986965353973079916874490461882386524879452345184829348990746462342139055072727337034353327903616970147045419991086036125804090230364249495205098321299451464357329423974844993584240078118325651263177127333384000137191221394005159972873651954687046772524828672790759969015827531557316735837956548235641377056385062758965552805780256742536430340260259517266437461937398447020721975355473832473486232683630702098107408371426772372342513103541218303693898619305448763426201288141057474881392911888736840551499284435941279127943345067538868148532648728333468404858939610279637574124948240326244074321878460995021664997149521916889046799655289231242114546364149120048141253023753182376375320411150184956412016058907233200762073617335872532544071706909753115644457988910631534662555251210166395868294424268771794564979487061576631216601225431100985864794832486129379126387890975451812462461255383114871309726073858729963987983870029808742621980804413273301698867709106485858465494798078555900896264133887347451178258141269087865352090175421037816190813487348675429672843027999439328549575715863556234325145492168557620391251933448174259426845831333302444548329390535811536703272295824691682917937783232195408199436214288693901277262673691787492561353551540651635637226795960710522802486968672312915264304912093191414392293777361694932348183070922667032911261272226828474063467389493183370402687932190157654892729371209421940106988578948803884720140902299500162952872070972171732121176649783810555057070683499957081737822002737255778261504386029047945891742297854397329090962149643421952236056692349333324007804848798575479146685236956748625264693917767557690997032736446770671741640800533745662063236284941960659504518413370279387722631382475971084381744072782820300016997499349940331345060484861290737129447915474240000911551200387640138400232090826727988492517564796340143597293738716623560907108506525360231865420421932097327771438718080573066708000367574975581256718043490132615356319673777306034496687489103339994041000164235002648000516006710705386914678232325573812212458903421215156684284443218788344182002917081833434283016772309618583953279274603424627939861865183058651229505124535412480513498276641336014083803389262650222969175489692971889089057709481636628753814682435204589864363919003209331729414482564174084916855092422055620822294781869830206454342588776199779497266381543486796896264732498764857351585180170756201335795093742987029120819496083431135949719793928247722961742880370616257808811422464905313290308369681358135080868257860962788451370919806067870462001884652928298531221744147029408164150541152667702511075456948589917190331658323571500953194588970002482773613593391957584813127220537425561217104622704395399180138899730377463936214176347101238446646237602970829607392638146219164604571768354794842906055150396939198074159781757184732143326770242174641956221867161739724577357366399867671459736520879987086538448150168584166689523074719135230299285250444656714604391535233967684340762334789704424029001063487684588484182923313872015273623172054683413752857179884417649570590730330214094472407839635832634034727130842832816476004153657747480736765603929483013049210915084937619372173007575431878531176667935918384892938265060149262858825944792836771752880839548345524738001650683010648753319855350561861146416929181766013868039039890404041530172830875303817225910606276159833557765767763731847919388190113628682138268048392634083495698849171155820353921727887850106365098782175063017501257094961149025406926676921594857371342071839700742525968798333457787997614664549034894110918120800141184869613322357957008105363245477255549270430643685149818975873182619224636320672807680159694612650040174847169014583485482683550685646219177595881307868947904231713853314926848383808158645355901401826186428877807927635817428479779050261720162656227080166603190664606139218001952559444317428715704971610553604915157505785510522075096236394239203625187746178576333150315939873485253187264029351658011244957014558760577062469296349102639201283376295585876410802739645750448747526152172949017264348266477380838839867315875479773100055511305875581154947061299155283707309358607857193761440057122728126706186895294269162876490076991636870688283607729368612901380640569624548384832305172191527105387638359512898037377452250812527522634526513431699741773567844738350460949863691868229562775065535012565913251631545743383571871505781741078902101081328085354675385733361602156264616635692829597104434692640801387173910252933676299274924623358778946086375460876851853999275658722803282114232905952305789725728402925410447256065931069890054581492316020146055005507763740830960892388479177066237240313222167559545627782421691131990245934927530160429057577484896521034887815954563908001042462337803373711799791269893019877866018937794375114417938554636614412973973446330653023333791525776015870651654697874535188301618379316680025179311866422397956627801117288780138864670019885137771687991816734343358209905340569995278314545424474680135318724576357903361445279318297092066434395316603286521048538197061296305479428668907079424568574231403306807792113135164623353241540902876699626484256486845525508480381195448765492636264099821773279864178989386080086493623904024909445175859498993540437665629975989116843030737867049777315630277114667389610377425881197670011361006321447584544658386118055716431371477077539722980963025107504792737655200701613745447978629021278751355983615149390289950731410752786705597905471791436109019058707466854040699907135723958163846648941975766819631027236873343307490497197402176954009219562726837204811320573708796515045690037110857233690826864519232292874142268922874770641589312492022609485199780377585582067338578895204381259405117583625691548368476978918328428186040702521037824116378822024707337974471966148036327357358462479456399876285442892465798870936271353109450525783933107316750798720077955311146929143851511179928433926208039988569470560763434387184426320933729867205786633950171737979565037164368455829284622035938472476777635255131029581285546249908797363175507731565459012376685308028291960494866526777913224711473816504383292428699028523051147871453273989721900549263793655607943574691787528593949354610894769534798275358822236086017272288855690851922300775959380979559932541907474524724392407928482613860636467960086052389552162837424870585433796956233524008637759532199799650012678830845142399970201600763710044109590306599463274848008764212558105209180620774157156186340485279535172333974071007756953350600845047184295582438283074528819414713328280346040974052883926201675548254199439961066283828971678383494572545815742206125697082811369986563258090742454214796862613178180382762093202858375006251759178335462010911685541973575209921643048736661889098900838405635318963525801366798788539855373263490769600352166196838948075576333112127955540536661087438332697584814512390088458530041843139471126917594080112769552795491619158890997979110619362750331406878429102141167790990376352168323899912001249625820751768125270905163618156150597988963497090780414485273885966393199176904266228729260605513808795733756290674579194912186616972197870169020075048002183449204636589940005000701481036881321540708908999424865289095933030731584358173990241952655119593582744054848416338504579157952043456851108325198811043801016693601385638367776137672051141506000224628062191879205827784636421320395117941851477121744377877715065980965215179303694846274643086769325396208361747300873221529739507163491989894704665704764180068637718738207811023006919191693472468074316051481178850167780049743333376314367738842201166799664647312849012283038214167121307698486670014203970661811355437028377829144257031373870237389239711722100182856085830259299482704768089839151237900010122319861050915964628495069693766916323255681502333397336176747670683244035413934017271593907119864117317742992990476733293865453413422205846728195231294204259577317865780011559260326412291636674540221322505992758438640044893240711468766926182301951655352383310805936175642521083176254856686200215323659894232507267524801981445672440001534525134881926896642551634507829323261748425702252205997849295532601442604767716572182013944177892080770207694523786028882964589964400443482612347133157446454813744598637527410813613543755976700663084063643633032768930136954687423834071046510065232903076122836792311940078768508550272378788318229702478245026154155483392647932887111364804659645103232172117658786543772013675539900672290061298569615185413326346605567211146541122007836143765454552749587212239622436703184649035763457296976987198616420949071828095502476543793790131396029750182121932860217937271063979969070693186472637234172362604630709400897681980931474374340453514075696304154821517644066079804335256397137218734641095059253500258394901141340276108624719722464438479313538365862259167179479598644925641987314519628615036241724243345548811922377596306410347259623920982595840215581622436643493461776220170982855995936676194257478387898595851378127261253888915062734532898480861475698211233234544628110798505171585279002043304001660755984482003386996643040546561765950332136826403986203778075194237812444654645467895843768449645488106993772317926933019004966264940987326399764866556077022877914218910499478155006827232158654858752438284064824114754056406613516234185628901771320356154464545537493019508332748915523348442586183907858925306056477850765687180248921575087517644717716549263016389071190267170123350872867958259514926959145339897222767314964444137513894870953053515293846461001589724550930306064005927237118340111155994662502813069426969021097549863245068737126858463896368849656870693623409118227814618606760448510748473387913120953320990026998931615332083711612793830515331844285854513333253473527185528178694373446984754422904290243724592591717972775970627032307163966567270001797473383023583013643339501029836254351524609960289652536062414627112297676798621927731210522459187426417763529440329639852440371824463693867474010189845483228071469876682004371467294901935211297192248085390769582245696928462496345046821078975933544234149641379437273345437965632016633933077061622105252132284681016033716877270519020505926641761918056223268355978622037284751804101965567549657180558312420055745925103542520051893224317839839012545308583721464708819091185296224943184079949276004575327609751364736699109161209836361214710390667084601879706637155511223358051109504869494351028563319683821632352928133663387707039271312297033801228392819054935939769219820969523523990350323315024360201948220844546217316413093979632750925829769309866803915905277220645032706099403231411694975460675012321122848162760890879052330025519042596948499475049723004515332536633116600004352579378454990094362121123399801580374821932465077984256347087067434050626256816098466950203878713620264266818188761592808550910081942747000750694224815216063241266003900804451943318598434651133257001861284417167998074164078032152824980788339091042969622316688443785614325329214080663328168322493762007167091934555485949972131726169987796672638776713211811661267018565702811846825054145363406813337953506384150033407767862782583998324332002704026930802474905653311182063939236766659014648537213009347726551649739610259232515411027350157957372231207061370568304269271933555757337287189476141946465190450365170313972855272742516990711725584571807853518915949612475527217256136595639389521267864301244496317166842968512166681476124354253621915982228297294079657306057164336356474930091200903097774695827626244557398342420362533901896158163789522113897004327046151907634865025517414913643819279598987759121695558482090571662873070475768341878643197927462935790572548867924310264712722742455516560904353954318093661669882629198487997757211834152855936682145562257478774899708779865811692626457994095813809118336549443597184153374972364620775312433977324562857282881741460007817318900922894202607760401888746829944768609842343714832728417912741582970327906364342784075498906206561861146033078704321766256182372315078861963012809445378987593510094159558328770133842363071888850001589007200886478789550226329662868747141745548785990941630968145863942494261851442522006234918669282767676308888776363181699717924184487837495617760857520910664647207104938616714680280914480337472482291592679226650697123477212600866298763537887224720268783917251631308983462320008767205839708940726799266647452145012603264007999201766147431784325742359071124556191876430019624298886063484991885921107192726568301005199968028867613814374476679716765591902053847084343814779153302649110469067335059155748376859398804931155426806521083895989947357137835552206100504079436663535446269917688033080302842989040320089077201337667827227759137890416574293976948817292497831068599506327472398568025673180670601116055835149902530972767471465246524233362783040381982909491801392567728958045471392018473090039588070486159727320118129529915548537535431496126860346178769283523546851542113476353799521095179165056948568405137007346354824009769224769293653021259049512669458448435365828871066029913096301414082806457296265299720466365956034465191689298131409648402477486592571457837264786611435035293056301226214249539585477121842999562626179009383157235842250626966512034497270884604417976925518266231667518214472342305819195009206018200135769160583605108557881913554431871399131600557572009351406558073065315206478853482966355088503849264465539321610634212120249664936899850765431001830767612309345841864869837031037499710644288125739716369048225566615308444923671807367543238117841148196409831935665751874322428193270404405809713732004546213560738242441301462626411326616016610610657790688245003937897181226286030542116418791586224047415571451870832366403388374829196595755620034175606567738274468962148942263130023196666370304616937253886536978300214166301799756765860466245854064279836922167190738949181562115485109509676801241184632632087128519720484991599044054489901482156406530778533190019536767667404308595549486443745553261156309111110362248459962803217078652478195280058324751656087422243969084469330097160586755781054475315668593408935209207636544850603330761379171295857641542090114753799881274207080178177538029647704262284044377525975525949813508950264637531758589685652945503036871581453255790268501278790061851544267505535539880629660133520348808569626541332656842462483367010889436448289722293358332549680037885728271625131246480525660787037515811889361940844105284385104183022277095033471770466896343646117197485246787473256199056799390666333213553311527325166029603532822494773352115405317182888828308072274548463161412013533420184471931322367976893087504440851070418216804438272038450276727620350462305246284903528423118263429156123404828795646553847354788047496487836067982935459225144159368769395492291929456751393272557257923728739055125771672247943741271312418299266573383455367447858215740934913268247289077354416132497844478957674479940886136747999605110000393483451093965729769073475325798214911450290412831674874301292093822183236727594435721160150847233468026217043876256646925218635245178595499647486248212800184398933428416345247155718736443613866125272822797522099460323055199126083400008685647820939175816347494809767548214175890852592095317384686911639297285810863269279023268617711488755168311947667839781645908815157270515523746535826056084946343953788500552348472163641584717157479777675224698787225099687254285572991982371396979176025305029647712296240157977374148684393480843352006540271428469547517134801400594312922040902462026615842202500473984755452321017794239859718827115771122136555999342333599919762963730188587973824452947316332564275497150065657138121511738057886929477957194657146307938533432392254191819981992265938149630149154822049466083866978239527777926864013090267681807819870872379425888905265195602859070000884558853532478024317293305844598142372104020203840429170661791835652736886612639736587902036791988130687599226940661786964664182418099223470840215380539139603774367483695826231375202171737897650300388192472593449837380096174833951967994947328818452535016498068708444760689961604637576319274860834790951995601078242536792292467727069333422630931418530832757827051001765705779230749130281478125514275484186349154607435567777129230992083304099574695138474027383316882612303306344733235697575566829304368540833294121948349415719499344008146850619049346952577977107544717507741860006197500237060404158789320579545385814115078625033055150614242190345340976277933721823280614741254901119514459128345823215763628206660891778023929002304285738253399245127919540851395801702460268130405467498851908934341209854417023717627799888975760472356241307256202097520386432348864423499358461727882170006611386408522347694369032075069048088132491522774468512892930432863867408233151672855929633692499905880241226187530268725649137861947451828278523992594200781206078307449878722532869372153383283606729091200608584714467108820603667195319778346904586345158371648737808301554282264663572281460657688862825406231480650681751648156647963617416485101178507913799504272353714926425146191381693319222424277631761716120583547663211063362753136536199535528886482850812716709251324182401641721936039636643537918977826997253589627920313402181289139001658263642548755087381136678733821048503431564222152763936022174818550347944870181358053586372527775587504726057473028076545986063098486352646182957800622523726360609555500503433571717463633245269717790458646033214797444629684266198222199421467126431699553423625952286488808125882691084660697503711376169600552787765442795165998931877240313301795219162760715345556296170705690003597261308564811976820354988806831873652404603057306126831313802737878818711355140883232938219988041640237882135061666341808492304216203935874916145157927669706140644405832596355746218031123081482903698585317498524332815966955166357148387075240119455783803422279870133122185953866203746627850379030058250240568382068627481191336729987487973614520842356486733328962837560156503989771445727652702530310892214030754860882699768768323080732855248924151050492586622124086426832174628841931302634695112337968636760893264849178267588575978856805025214586112382506270122926277947618883418192914618226463210781174999574841462836654303203999339943720183153542098365194670027891388714220892398498222725462598860398052034574667392673204141809782706115000239792491049238182148777180420235024925464583894015737895138928165208487672354797114068332224755304564747569220727216032474649843510204520539116257245289962786362608683153937853173301173627425113851853354165791459113957532794050370558895210368493295114911543746101384049429013513226932252775400427183182327202512946544613259116188377282153702746940755738506723337819109193139916045316339986044505433987541792219836763107777151642520711143731288789986862945544726399353166645372291821864181573920230805636728526516871318503100712105492660379587083214302144683956159178617523790591631121553368012859965382590467910671212800634942573466718411963316032109916496219995327612481484671150067993772190750358933324437821434288157184271201765129486558514440724785669185391333783814951572512522123446058639771339610562453436211482389929278841252603838022681490868479166464306579356060078077332387953672653922494978977855442954013937540985859658743254605428832711601570531493901966192507385669464378259302237043389139372502795174897085048413257584886866516453344354876401840345839444066986855843591189291796986479278548463074147162712651491750250802057199230162841845512432252068419191798409671919744817577553371214529045010440210797875980295750755779589185262955044714277852204712649568936234731049157708000872924730064292176115814722377830428785716216666777572493112723972315645823649789939360135592334006243721348162883248142180588581593539758298222569974107243395290504881803165107765410927288684494547285872894188176819520197850158471989363231734622322067948008435798243243411405030436502908585477640022942170859065909228316702098862298357527636057378506883296484757111148276020292607371929377922621926614888792258692929779989198676599660726687893625211980071881487309023116718003506135743897279486206397194410683199974422104307201279496536840429160435012555823850191664790540322726994566755908840791276667014253186716285823707968714035916154589032388527302645545494138665150895158012425031803361854414032172162040196169986988389981924872523498870799983357050085424473458824261133862666345315453430410147527762271602161964568882226557473919566047386850995740517024291052057753445041556219405133017499648892782459931636763278138864651659184814681980382111144042773905709341785567133907872780474341252648761136228058539896656250972931547813101729315582309822761031869174071708449125413337945987031458196708183984142096455762382641763249815080999458879891851470019582011596311647569400045689723543728108910820950945893786122134351845833058135288825816332170184403139678573653964075770283151182645650022699909030586575746579748568020255951901356060100793852848817617359127162149943299673814015077502144121696653893185794790492435027778133161655846889330233723853370855376994670960937069261336332349685056188078953601920445170625363997129292441513685756638436219678747440333438519803826327194624538807788610674692484428834404036619968706027584162726353715567570795913270954458530312691623400798080003327937468693604616928726252459503871805298475045471812916395272804481813540228160128431696113690033215654614048136530057190636927536314797206824834758691814110973229861106743535072447517539733751424140232134600469407289827005133124562515572790842080935846442823489747396569561290317976029656976465074923010892363707481300936670485110355561716461981505121727415884814194037531488980651680293062038807982884653613868029120665169484781276898754598932839011875087080357380583517723683031926930083033357493070031295425142137597312531690605627541249831140313727308217658636752171918978092706870873873774421310493036231921000540453354300067907003455117599383970688785821690575834781477571607652768543206064748782750119613608769335155571610178523211517919478882365398026641247018499976491563081372366882357145667894494371318688888083576184186182175221945712745245697788139498487016121811795543758012910145380549230933123097568725324790499506518609902537613831076835286219932030327706789397963683822771770809739639343171624924737276992997478472349008062042968765126511264371393181070139727627661712443200270596884058862785567105136320362168841962539554702338829511775979179876121715308246096217471298715684139919188826080196370137689387192317540958903706011902181298817371906669230270197040024319094871758652315977216002721436882987063031693060486540496056862644547688278139196457772668873857634880048642575572554089477520489168132351801544103592383269540613904941295498098160230192429268731383518314856169234145567553030547239331032122120333545995564473676430703788330846201579533984348322621405012399565130183703802267968187604110796696393579150008371770294376739720108277787020040044650946671896178891032449530111654788409890133659965788202968205045655084495560273677345446915368686830001827125023425859433758803227737397378996844832749944923652695250001596273382331385257578491283538449552680435970308015851517101353088994858517912788656162372800135710500637414551536467472157594966857710958047741030201493433237294326781460192432251802063681462776001781112306830863146196301422573154951555398285921203698721703692645671674164527674825933359416696371209479220276102661951680423876413002856306232817411479647278428452876589645365078577333943358778381792599864554357246235058648702373235638239658609014195941149160966444690629731605145879178216353298719119470145684996669081158826582990518272590155316486776394526725757510488436647221500135319407548369591353951596818438169396627079852016941277702994698475591546322290545367873074512684997734534399095176946184963975807022405617617197381347624490534986480161653533592554746866985386245243155696862816819533908819441834702342832063406017056229464604327588351120054240303202888944798633185899803200667360749633573410881121790198060686135660142730445018169210563186970950443202300025216626799622432679987192861706056316787261903442539246667831889411067574955381595925333167292731898765528307447556852553972548042096783947972089901441868852330736262936903710769384105594852189457329583215375226128403292368845021329263407291468617180236528320793609862802720100295388665033307420516936239587536841833589270064728290851853831482446213185499271088068354178107003859044242236878464115279316351799563468169741895651369630214064430636320175927206037877362175159434042180847479483115184865028419490911486435212468278410546364564082133838265871465226814976696153039708661559191525649170956184762056160212540891450869662839301846628496826658804511220184937410759103823968426626219338805181929629894791130547935914255638423879343209748857276312252970151282069713793605745714503032483374909497761281888047679124893018797105701286164918376915996333058738048160669018546214638917271374911677311133348195761701736846886656759463167739264090992907070456813855188921232855867592195994719089794127054954134295429805731022559391983613125540436386939757420766990483994311910233257930421353100423199764333760515205261318773561194433337294327123721257824403155646674909097902353751608101945554463043883100187809827674224555913197796555458359064869134824600758269346670899864495210001857450774401524423275486699846907154528116139348782667561920020608423980564308251743349357492013170900932631403423206142363105129784079983311506897976976661098670320418901429645497847820415051941184481489131776864735671056542386204196134403420448525927359148688276193600581828233586701178189325073532525006033501318872901491692859413034595250656273361002694913436201412550639237247313025387822963845114224802536646185332392049533140199040673802070632099065758909903063299083957217131479198184355063774830273212121140318252872795732849133691331001864516638470767834431662185535927029766400226253660380121237187506085679685713600604979432446373964183542048345946853833192185954935843565443178634313847551423945926100562368128380518457249956736719055650748447107293654964430998988269406669386281272132238049024360932305543587994712962214720561830929295486201742485402685978009078559833983249375490479102295866983727439343564170018406018765417497512983059223001843362715709675859012333053204756748083357489841929859221845323322685859612265968477067277788914682597367006806366142370994604757485136790004565098154111427233918209375528402654674025478380780922897766164118560159450788623188132019380233910908163996508135419172206824782931736268044066568864917845602042874612438615481557326256249980939506406723295896345230433898162357230364172062844611630064907699494181824393728815771203453816359550833643683492523535587520836433827455887993575547993604452933248403503046481376976502550111039404495261276632578501361239399881109022560609672193058981713914571964506689123743349311522336799730238356051216624094041213403299902424097018677228551003996636685901263168656491396144505541874805628291441911775948053412585598209155111660209218409353254704808162190045956698152026959596782423439491301607087871665449999986485236547812200324937925789652443695045845209437941097618823457415601664767629918731979072617565264462647443066686116261819592557966141101692130737942646767070751148469479625324125517809142731953025242392906337539696255892025826370738201562733723863943818764775980911746428454311179559669961916067614253225527116199346918954778642201843649814039679078110575199596615929383466037282032008316951768826623678042233535744599008187101680205652274031614246182284551848501184634649908605366875090091487134531890846103001708421624467981275141339388086084408523097682912506299906564426565771229861594357837078578741059384822522591527342749498601995380368242752761289096322537240895906038612217153493304423644689878200148909062088339630947435734098454879416927562665057865213946827034735456588031786574882780539321415480797398861227810924552349554430527162406397207112514787894933508833906703040098674939590814669444401544323511981980639825787883449201626205454624691694447404311862133667124229733877585068977301909325412702123887873671555053163791074840904850944201816728851558299235847875232993951231652035112523109296617988343269172063975428857967681753839770738239303828565920836662965780638734777666749326439384893347006702193873924722357773795757463086405367182472512088805527433601812538264131031884811282131645656990923581833690657775269405961256628652641148925889328215595389409511206116889298428997239520781565765910128616515274037992376978296743660873933192400603724143768370103785871176815791432021158456175666744867263218289046712867509205429933646537257100143252806619234665143628158518216474208910419096434591947442636341684392558481567844306926081648768893826464124921152791747255143043339495504394756648736249818217761974397975681628932635070006546356791777972363737828475196451098776907167983669005698511996731212224459159117763990202956696723976396435543636844427003604205857153917309141535996658554357118090203039171171161448564154631586664792178805671579595938175662191159297054600200115730132816403087361537764378076355106416128538008965616388498226303560257888587316479219197467052110128182772864743874720302397172295667299767261889327280718690216217075562030921114993479737110045494722126261915841827116118445994389882904607171183223014587207560639778681266117802898099520268339166140967469939037361973102789113129603142497034260209494774687373559961993309434204787163770922638796822222852935745825664198867522738376057172298596157957101206861441943613013855505443005223356063034059968027718524232189863804856037496096577277567683627143186543275662844238366219252031791241535185434119201888915332893711124983662405870724393486691772456257919859665609205928356220907268271148493496383887860264195805238144410119636666207935368800198259279134874146120622401257205830732849969477351274969996068988736647326962764975999328357003558762606125820756620740065178847744001115734266536095877586050314705377472454181783804454115747857239937682541191483448394844451639193819534322578629653083183316076875370812534221638716883584609487804764064617907692855355790755804779068149503679720108108349057018217869904904338853538231465707007906780059738293814402099266057757059313945437510435102606576300266176568131709095368204746804680551503884868484457836585030137545441055474066729229028182560722787982898843896533129430262685733162105873848218139488716462667853563447471392571527539827752385114157704490580283921358038142222216746068895368422850287508327076797507165752013329158415447352477282903553679434308308780872735688745685765031833482955159171252946959284280002199348455772322774165416523322893491155692530278172681214902459201436937434301052520549366196206016610911183397502441484160611275185824547095143988369568150084872870311389924082452455597510351015809835954975337359569519211510826755919808632753951237078703035957971666112672320458105105488677595566052612338677496252125798394403534195597724648814796379666966081540090730465431585795254539221849977966213492792164564230025350616823359205189673239827843263993398941760299966611181233606505278714833894864149460175344948605922868159557799207986906434271385406192872297620485670465049526733106463779257656202742836564665932141521623694293093053354511279109637319940956602473971399492938331986471719552271287422532077471758263195208572389069520966610725684726168428354763452864528572102190700653369430596788405453040970355814149864959757934248735567383776116996835231502264166464207652662276562163530452322759583008377127643822232614447132537218602693338223247994955910406137872038448864276618089092188226913021238352010727503223896366471283403829458685023433407850264664967740223649369412317354735268976695005530982140319461764418523113413428865246018689662254078790029188280215418685767949211103215810010290234485226429073869166523848828412058243395971935227236651319142954833682195554153777440300924889087363266141451754866018991127214646896218238377972870052117374464856238123238452108831610169367696756582750384460724044210785501765264600977742751888133951575044031657913071319184045259088508088422026524566213634033178592634997231928817562309944367581206902985068638700686426288033083583664451197412225232088756416594799219166317234329354968394649486505383985359445110368601957370658169042511348312382466388615402720828923640840547068712747103748013964578780553527430916823375587421248947422159284635407950859939136230593383233095144181533911139870768487253666793114907674433691507605268638693323552194999553180573753695693083997168223330230421596875543159692260753155094334717180339423879306979104519990672657066221328182488258320590243378088870568450662659681998758049782566433417331187496162094086155812811760863753511600627842088889642779588502158393233608386495642002889378510936568055165717127452271117592235961860513898949636835736996623544911547989574696293195112768694525927179368660412551395262542396043657835633641415192051115581765754487968010356988315626403639523910820597614652596550084111316733008925281206085763946959799643535013188220810226397369677056701996292305815040817006992365322184026796422227037469671645190107875187264773447381798871209224965514927440390796937319574623378445086254600177670706024770540059136468660672337828052157471455424149722196137493372298646582775060230322359031424482263427389767593818715603274820605465994724203387089753772036969491276138819906096853517575640348762650689110367238538611924104841012215919557053607580615494036779021427611671402986132499951827594875884461454962228204073602932035221678540047019288966113617119572589320433770828125918223201035735124550975638271122108895749282546873881608065427551510931662729605351553118553732091388975516720398393799916530655239890476005065611344939164106058995509484898745539195819052920904496465384510654270010900827663932855153947987527494017452833421764722589247532932362194744664627761454839754159494712879115474630957362582741867694186397565007785349594690520409233012366802952435593539468894378766262900780077089866889852789076794532463681674433123902778423621959847122867657236685514087118984778843650136619255920268145759829213300023530922462089127034928736936086671521124650039780930811869562968305700834205181157156559949025552744833308486832734216410439822367566339269284285523348331846678134780312990893331760897485400141539064056695131332480147948139378066318885350937864701338622072483740090406846535179703278924487034929357926071754315350765614094998205247221132109248048653236147988409730186715120451463727271775199653089315738627402699041901269764181125504567730576524722718005120108884599227428431819102481230522429337562197652042324843162353328659715851703055074068636551179978684459036794790348533570411886469445386395725378446798242123264283474077715046367784447528062258578816391326640311661360858541069147587405418316949559580880405995788740400291004361112362231535047317330861302661956260212129605228225960447287599607930015447586621357243691008253345544522296908916444448451603977923207078128339948615340559015161764597855551497113646553244089855068244327189636262283040611988153307449112024524625441039348299101538109343836693043584980931926041251995539943067110934163974764621651091235961585631600324008288898653311439296965424608751727600440168310719986416065580502251125567225450549359644855145132287724015344308825730755091357938889528277512989688243101281994285246602837665698860741657967938279659298348296674588800374962587000542669759654310465888052313613103638426578334784035521362250799161699067342302184895493027217536517023076229492205374519392552814921770134429329625684196943064021325624492547752261104604016130953565510104127255827982794782176574481258167946232566367830519570446853728176228151932874093039284638191428891939589943986437140272287893457050496777417100833931772441821065666895632731535869193055232730304883372105342885461084974828882842723873532481218745683561696946010952956565041505138597795865151228274244950269858288136438934457754675164890764993128467206005817863884196647023793759706785602546696419665839158498492968967334128896985521984839323524460996014405375239125323376235486037028134165522872767893336671274962568349288083142302821702633368837777242101206279548497011748025833503881495925665234524510089333392015456209832339921174464992593427886003010312597980531992454951755507748019351656289475539858399729849940854741944432976655587498775651628498359165971233421714060985792798348564702936509684354773004646390192764095174926613181309191564664407550897578347477139108348197540081907739197466418507925727673908492458856721901755342524407704623455377153694058784126511422680066383411352202526054819035381454646067073704954913334439283938085342071902703465612670626461022553335319498678056816326000509011228863298727642016514402410090068384140128475355500375204783653730494793966615793610964542387314960055556764000601980439455183642364472469705472508257068037451525695235301262949872003921708830026027843219695566958666882525907048753792106885181090447447628747057373882374740302992102846150547801008074812655552258199141160442910190014176152897505413041647794101221748919430720175682557566153080071956608768488892292735131996026593822910043929997678084400865185236473375352834835242310417267152963465172889865705656093993664793723313166859234921866731151299688471627327687233368827024345133148919851550201903753450015988386778017802128402283205970923393197971843199925288576854622427336187384948523537592444214054861279080591434169270433054999992377705993351017734945952251869976560139303948843159475442866296932557731020916278674206330497270716614362847527170803612079178266071817363873609307293137140295306408983462569964516696811265480746941641862371989167079934979771258128371416719909593757824351337342272022533356459494481410037619744630246025159153725562518546616119691163187300597603852621247368167440860992091860106285653564287753767526610917824264202378849189036953372534128600496571163976460278848450530000953368500126333584142627591443125802796769762151922089299005806684761888695421329272832010611632454437115966725817421514447472944689797099140238053962211193892987016079976429041412998418256611008251798560658015730908086975533788757754914787823095222475159745266623612131535863767548520059530441171430143536889019165934590469446135701697819028232920349207901978729257518242517050665507098090844480910298471803593171853895510279046458774109792420669698404760523540435886118608934899122177553167065276798196936210770022522929628044021689079630970036907069925764162776918524107538588820571293387659087896130450892016904493038562821689886895168627132598488377151478546116638015903737359541575028031401024060678014852292868226765580343463733761285450819992248538327152475299419495964394890098780449997085836635716050751858306001937360821205060762376148260897398490887215239220788656002520321167678632893247472960639056558251377171030092428261027022404517089356912681318772959120758549000941336463833542396366132587556561661404563687247560517144145629636496771074553354375727001014334557996550733000709748808264798269110023696826768657315831481726051765000005774148850864130074531147487402605749638959836281788297447604850400601722494231817070034969538087680663065840650189398879625888912508689410022780517642700911114070108836253544765277688569714701864117029466038061180901979555922159825297833017443396526699382776085577125108003343047526000086537727979146697425178245176771631035278575092149373142706840159982186237051640582468834149202746675752525891487808557848438702772344374284726004346729337390123218758676993443626615446925658670773552562761335393672509434965165301150928926930893894608299967197612319684944690188124311867381462102860845157822758117992574260675848422961950865796607594199416595610626946817284516480018371697635881927359185120884559872165294525788436257900936475161229925166537897673442055481617025995188914529992192765600893751112212693277605422942151079820911865986559478264323008345615541587359639120521570716410272819536469103303505773781804210611132037959000354828812087135270284884423829550956182353130986831007556794011846272696892371301883656625708685098408337174885083316916358034113718631754748164018868181459219383204795847403894195265354938369928800056953247939186709829431756471671220682857168028006302726899535805472721932331066253967089712260258358443627643627945412806897968544853200789307592531974931300739419075586879010259433287288657018644877594269367507029635979252936817562159457929630905233691763793962071179747230425058298382872288832621101442998899743750386500037926476183956277463953942826539407632766164720126982257331767844739277320183398771123469770248489433817579050823984273115306940531046852407753366768077339904261511498165819192565070440526015025047105272707131991477237159742357116968681737112532088862514905247059655372210919250038562239259483687928696192456208874674358549465861697246322587361159697686506431739060145042958059289032392236113709603737109135286591402403762359526947612985229601569497703682973893515882033425201279886158986156912702280015264695864115390683681151491104625367862441682027014510330577423836889396539747022429193088844639881445648275848028116633417690980382759174426248845473392753751474520405698502574726156939315371590354441097014976659435035693076506257722062585221285369701114013963118175501941108781250422718739873511633904360823682413305476884621527651236325712617270018651935979126555629495770236482580127511342630153545263045493643167902636284464948101202917033268294478092080612916149470705191770152547320325552268675809340256565459337490515014061777762515693975643243445358770047970024795145686883865516097074036925282359973496346111353216785353122474412478377394261137598809687527386598717349640513602229096945944654443531597099437440330758455297964017465091117894051452656854076077359293135503963409105795708397806342723141828727261893721535539855995685339007702660597441438553376892861309706924895851080221878753224345334248125822310070520630458178976674016180889499821327622779764523015962043677263020066337382504797318389258215923008894680795458200506668385907751723038880780320332648687993118653585667536086754698254144144543550360199267108724711117848837949249319533694523915695301925576596810488166843898128402269416697002242511722313141901430263674716317866511798165001828264966574245204945922145877837698935707590770053527807472140057665730589137684890003716465312563299006406326946728126272711887566172174465471146715882547770702744788049595271848168106128185514969744616559903859439144041158421313406576430957770635244988322104708462929809339141935706901334504308062634816714245002580881333345642049070395760441008256367144536788518942607475620358767470347632379647251878444550900698320312542894469484036776026331564683487262696743085860914263790999299386448038990964559348548688488536224457065568122476567999844504217818633237666105822751337575214941320827953174352202385058875717077488259225581971574099991010301487163563079420660350566986003784060633487755227697237335985107417625958145844893424273036683297744590730691491118465235797361157768679216469418438383841178545880460187192786724346517436232182250203246937034484957478850626632982862607333950986589537959947359589407391841622723412338162880336856695732924673528928187312543590037477567808380140394696740843875950269895426535101198149978468623592605683126948796325591958522273025821718861361948933604522968410268857197030754128046237213099447347467856899939568391284421947436031873944443389389504733773686207416158343208101933617105779501933786437027198865122858450277913413652944451490571874223462420942080818255232634169233032780176380899232675530245640146771251040443379868500969161957949875953490191285828763142198558082745426726945687500492331238444658638546791206047302646026204695378775732754530210727740567791955093357440900820534428706285948266337204386932151657902464375597193737521023876153417302116285196718269511439818745582533301748961431491597514952123382721387153742949214551799467052515023307594156802250961433772780953726420900300011051176753577651460656609566063665269853011989991311973445483553830167754854894805690609316776346803682744619855987352644455570338659455899749217690539599302844337766765161299352686160588397229057970970498683031738229560033246149872242623513570201858191800703607929069090565239493688890917968039353593914915066484115692504706473966756842425929374965475830373311046988530744238786266182427520284250892029573064056012107960191777384396615332646296369266829652503255656203472782258775004357810058819810405396517767280502991177782791624690062380432813276495134105386491197419792947737227860457166744554918578714427457554738356181525561603183389785105396491641317721567522835334593470527444269887631761642020994987314324566570683123643357788156147061456687443062404880591716597372194463130539924474913136322471529204880215022237918149630450716998386599106370495881872991003076401262004722326833139331342684672901273778004286540644579047889690622052378721943536142242472266300994395913981141450412839451035295806683705217206141343485640922238328852147680797520456176646603189993053906511267354176069602916201244739302883919789741214476134607798106294519611765863716879954509007768123736086330944683147368868251105943187598030574079659064074130533347824055057190071649149277922617910247089697470739729167907661955321865351963537619976636253616477437487381666147266537720049278706993433791028285908684882045826169332450645619455911679395732188777051286060452971005332741082641036194428581947188953978568335929494447607651823768671576666784686037103529376715651532572985995985248714666003300395434362184222075470125635676823398125471344042604528470685727303614496146032716251057634480390905154193083442057323124688800659104909929341133815183730079844704405861277043812120683634489574688074385435202470200238710862881416508182368755505344272532302740849864807180340722550184308111290027122341849913344564790583667837976329982515424581224007749780122300650374501053597056161306991542486367066662309804331520914398674033839583456223520064795311513194611234607702966083172463241980907398725489722628883686571849946807093244781781139064762430707520044451853809231995057333243476683951236444250121231001492564224799046897715627851379822721166692610025676232955972194656498765299410295251822104292076337181569840162798393489727799913103729293085484735043516221156529306014157517941296540222755395479387524523589066344121056843050076587517583478560614189770160050555129280124769885460701021890755293050340682306613849948655590176804234855487393730297795583045517117924081590908406911282428852911385129833740104318141303147656029997745122706151870997874943029988596093468195205684786137242887986494754045507803621850618386577939509779241457935569727837148795451058046103848962373189567877117177168984540677484146917590232870975607915670077579741655840696632517570191969706224704661001764432628574783768419662674457231681963555564286010933488894269663812013365696075655715051542734640492995090792642744501555340971108049958248062845008497430928283964560161784346258104666903816934068813245180901599243062523697459692513193878145767271001137289966722399946590127431741846761744346183554592781368099365426489161097857580663504935902326776925255901367098561701917221495935943040278320769417559236795403652399553026507870831001325682791282605453627908089860535803980111117753309756332795529432018692052339250002285675552583800126954649280632176500338419342664997905531688829828566719313287239103145965682424238604520376046821743889539526718280677419875054046036012048228375444991640365847502209336448413008373677638882075888237722743213284903207549817317578475246072440548245818506114186086448482504064159205038430480748654811989773776662299944310567149046149834942159923267850933256222821619459800820468038872795056080981759919375609901586038221395275001440699401063010927722058854181577693497459151091799458033793509890575043346090944301852965859938593917121852862429510769834010567601871692495689737017412021955431137821268528717401055250229259937033362565619436017223744641599294347306488378915072773127083941250262710840539560786136442702783857380595810500145508798974758565919294998623240319573777469488602693765206070279734222892327172128747842402767888060250301270198938079439934927388516485224415659253260847879702696128000079472650728349400017835833314151894022464392603790907679536071611696534292804491754173724369249850627090723290191684631053011330281007099958285849347412117297843232206989588565539149076964841641445459270453292550769121972144422794543514691517640722595125602261477395226189725609562457354585620707842839567464700046726614823228664287952770293529089905056674662496636675874579148355851237614014547309645161213336169564412473019832307451793860730578094665045809662231572632058471935598970446831556810848589578755185644318496581532004263642224397100909597631540581554327575700415037680578469634441632942074871856362226519426862699449857176971146935578929716698302054760410499917309870948904742737840537247154600879495104897702237324624983055158576565691417402444681840783144597148382131288563084605717570286413006506193456886976641105047892624590994647260237724501527854590065001195225039864718369633472695391453516077868270043838056987576826444272794187039043686689865117421554329598825480360508821375627868143579010713486893820536709904418667337307530555873886038811309652944406226562871063123010349653545100932915875705647969701806017886632807730663834824753191940892364829794306606450897314192649318635094754128595930320661275158409948394753834250177641366437148127052376869232744455509837293463815867707727737392833220531760957162742795544864336598967620617304557583677614683924921421639531794441881067217315274299297233031541492970448284316415041059254717327197892478755427175375431253076743453475001067898121142308775482086673108168348638923586402254169945711362736270534196974707320369047151990061346173048854237366624576908244785261470285274064288165300169437207404635661785087114511160587043183826078749253441197114322887910335744424477654988736506091270126220348052460798852701012360427001264821746100459450887425176510012522994406198809006993031841292059083353780364555569313705824802502232271676416062382768999076807440063157931414175406660194116642251102211597174194252603007720724947140933676866198348968136965974771770624532932727583963341876933001240870810208001682681656061172654037733636297359326110835486456086252873212855452432530679967352497489120513297592526641172779217163921333759314090586191872180164881748746866041614509329644199382807920425643115885338737768976779784199778765359556801476615098661085302729123147651254352660359469605189675274018152609299105072747616360115160274708932695867195944518576805943469069289608513144171456575226468959231428671522240017516388523855595894125689867454118265779421223814649467710987761557024879450443770623969261348819380025234318668620832350154527153006644707179725615190158971511607065008638242374796192556324434283051467669910736877099564574789687242241535309262656700362365973030404181595875118074932671746326312013502304060749557642555362454432198884493796677418215556055268841944755923895913500290030990615297296971025108656425811404757935862012995210919362797066572998367889651224956010279361476239628175743176915728609196056833628243614495382119668712829663520945482335221760930472744634585807531165029599095711070549801945198951853121119902179027588839130841043594503134740971840527697015796291476513249392814795411205579734860051263543091297080394913168902016942030359674311809508563116364715826413804140113305509293600768257505977518858677895065360457817902738456104898776638282280490679585979500655672306442125689867193838530308627550624650943127231285577139241265778084097071615390945566396398860036109890628383360273452051925702387364259462402493872038095193711905947064024845512939060277835366917939860362592412148146052531233104346987020655989100279960741924462574499718537947992908422781716477737153431605964869201915407634152934127314053735476757368537244690325115540158406348095878419154194392580800639341571052339748164173531641954711205427402909559046965884908675589358700709627751625425521011728981654182184244957238698762570586433515955102583829818707679623487570313888145821883950653564286495517866575385791353296210127000140558325137950654478322544415396856414138282282187150705932692736693250550385589504220604189854425707463886112897146705814797899528209495973154289897925870186739496589688234479050713563190154552369530530728769489810855868295475571600052353460236382239507715861786066456045332194363122369318276651159837590818082676602148405040283592160441479379073880490871158812234945064096173863827398320671587582451179450659881113661109575820314611460834007797204487668967080027013604170318195264914726249810430344147938948692150043820852066316382436095289850454587334905770917807853658059367915150239757007479403933002608354200444486867406199920825274004940465011409009969536968462783869984328548006085638691811109619546892725976207710844426765220049065985290498449617236481570359975006421509355636504302884512314781138940517400228911382791238138742573457569066706785785776331405991163246699278327523335035566674619737549187143192208191624894096521906415291449385943086925155124774677155702512973394271032858560567865586955998884242387109481290817152529264913310351228359425188101083140038765110917777554718709007806763669827153977765961289233286963470262078071070219318156196377734460505997371185711790162767472348289025963354443530642699825613452836808290294759238147914913160680623716786365119168711261065101530305239672990632220328420589960738904348820556595761829079798482765602684748973891140545883028363463204202870157185682876045972431404824410336707195603298609528721469559636837183722312858333746960626075860979006577134938976177084443703089410238191027923236647483051101198698811265785553577519483349562105135370034262061625951693104582911420917250355094690741614617332980456037169103216626807228292662319692816372351605519477144854452415121738458386752604424914543397078762568090563965646140726555103057975727721836825934776282391048794948144554301102691929979447859762230951416629399598948782746651725933193966884153885808776974097853410985882565462140361411976841235960867284136215770992412448540306089617274233541538386252515079440308017894216392110850761759092488743931125103249348996073937952651729173012545104742454319650414590467928161331489246534166467161662791993730616281352819888759724858543166460756726158407252699217888699687663210278501605661084782606593363949805420266365799582362751343319461610086525391115326150713816345534370492093557856949950931872908024163570493715781946525735812125050857611609448386294650211155693682555771766799754203450793753092267746765926423914321413631207041615675830294864332216448287725824387966904661933009766391217201706683570055250861870383136466439253338181323142153811111539915121211030935941705234260650056916122768102364295293541567274384830425765028835335883210631347176253105558643255927085404127541517490105192906101835129602543412450480939303579035245222584017187034784739939113751338759262328066905453644070449955956465560174062365847898069504145747990877677639623647601348225623222604111147487289953784396983624882919297722940615699275891715862509262689273495610679654143859840705490325849112445647779262887369054487260878627786573183349445234712739192820804654700432120964195476273013152078911933992917097889877895990110504057667267044197786725517281312203572363769339970059034932450642712777953766304383993389074898156035910627458330811351365110528499550387647937850611196013691621064543077737890881716180365699285990988510070198777088683626912272559770417598875238142452147555097544073030441133669340127955364363705488024370642238804117979421538364246495617376502001919796076353256685173140785778990602826183099504642914974509264237706586249245470355577388764885637596388159477238348669256976168974946284414458143041082805183667770107111547554272434014563458111697606007846976804532720899435365855365513467571244341240006033737308983112379514962969220904759256135223571644112830437135054434822720853722404338530134697020920298990557333406348925979522782426742000243168515903299954756148977859147475783323679068421033102308087877686718338010258476816367877492150006167293573401545602821322611459055056209613811618109652583704675843506026523221874913439644981426579704354951046886615307527491429333855234877751358894794451693888102871037140327966080976816310819390043089260794591144324962196658205818317618023407748717315944745687171241097643837416531304338033553138277718659414952237550122533966053859289033596963182099837788276670765252765829912510936789505790605455501132745581053244316183699433543132033610267465711494097778781585321811111514192118833942585393815665304764635224384832204198025456853720911532900466994368340930846455807386289799368371634526139335106204425984043428707646433903820555514669324088850996103673251493210093802859209154930853783283950645365693077353449430303382281214871785077486204185991181224567031409439217591603957546130932578503439879186505134773360812408674730605965734725951709243272381764672915744164827809729594597223896626298868558552650258704487515173776982490160500231277588585841688568434641656731878250145320994917528055738677237336005268242735782344769072675487500263393758316814842617132339562652237861082494680040656839727641746869237111266751613830113497668531468338540996028850423983228986714092554203094290999013937288278169125937340777956165653005548572502247634649590567784949972592390489963983123981880144542365965963597164960970738582143809258798028433561569207306066305063054220094609804758285348390387395630783145872529747003599786018136832111038746755023431963447062095095226470396877514461778305078512841930018881358981597454453209180585505336105960080599362603264430310027374970870920668785683026917700718964969183928685840363199687404530248642586804250844115722268388285144415822602186816144397554128919589358951115112803009422036659077415939919235437858637107478766223481773177692960885929874245454882254670054853072393313125952390476897299920261727079520819863015368134590923837732355167219667687095820097338439870910760402075730345065625755731526402685698364465444354823315384944688066119875536538583797733524042885099809020635181769961127417048938519883558991470025981966007000477791683671817920479310205654648200315021370449598193459913745821775743497224330385823494183213530890555885005321862577401855641372705409472319098978564979299213377054213042408351914846817117787238785140603068733923253210135154339542668058769053172490858371128118356043976060645824179274906529037645053286571907559838259380547247003964974261743353590058372244494469645720000275115709928425953735144823225285337131203479002069654417034798379433552538090204133410346494172592915889637555238543105488670272625227395326320634418327175500168421506407560233762059173946580487194841946615401543567143371050699050823744669240106690832568991004310783180620201051210692645361251927651513365623479255969480966866403945263712287619762056532457992204205395218367742936316095962300634181605317340314005949132554657968541960397984265434786868363476439412195404928886928731517041716083291079376899167006012986612713344731096113796243877643807519697040693093473629533294479781774424783404234806681430427087648063828882466161793583773324268922074802091798258125016914030380130336229970476438090904790452028821124659808248501833843563398702754497228025257385007932748082702355944918777631889525842076037817553527017960280976140540424966743751462964166457991919711833035022514815328018793669455945495680308711321486018623462970150215253470996438051392456357984974090902467850853636882409073230874138946341005905672621789274429523454578926072783387603074724862158964082006930859490586193735163629850888449836918219206455621772390550551950342223247510897834972628693649876921858434683828748856161808098545412567084280275134029632935565536395923679901773121274069712554419799331264723941170196442008630324652097300898431666516935416254577924616574394524543900851241573513718456104053049149384730940431317745403170006648327000496874192501563121538871519311985517214859449183641636976844690664910226047749712581146987312565359562740767902166300691568336398102120967319060645776588377987106001290530362800695182732640308261299270847644774193778513066528759665304193299986317138479945018961302371700406943186815229052606192435473092713803031985615931231710163316693675633986110503885709022219024121693578963440953480833863827004770543529435579874323322649395854857494725744956048805394460460067810363397170999929762994614287017929787319725070235139309890518359321584049055261168624079197707581337517753543298542487454841724613948899229042365623177170691814501425398794639048639873605898491736575299423475490441494052587714991501579355531372446142376884448176616225218199177879704535072255667100383081734214775891177093571467889103004962455203579678850804567191006666141079813797317606164301170968514163415450140533523734461483953105319563497050978907670804519826118024070935426375810712515108497676483674645770468208626642234291735431970994452655974816007859389868396095693125015958757173577911617270058925697214280445259587885967038178787324518876603475708136860221983939964135174909745773456300132208110601182007072298339902124255361370167843367618928387446994392719650028444716612920707630454899201136616842630710159882043814109530865568946027968161486246148076962830386975782600914725878667006963352451486202275339365485062468722340298432987346895993558650733593509981858098789164404835290541710122728231430475661517625026851953878229151340725819477464573037442509277262852327727856431685761275779443584027025912765965714833410895037860838183200147149201891844327778540358799624830954172206938339065582775358140617407878765786014230012939468780244126187915898021879272429838429738968151389608688528156008281818990392229635186147691130524572002412994288595903905199862886821178311224443991073919900680386028777528984038185457596609558935515835773028995562174842116041422552536527868933542134026135053565091228999847176628644867857318185458267065967130885696461705386075666591533098350661351704162929194957475647155132306476708097728467681723874918211430474069053802470779056171862908379520316029936451473933849190169468468268370142682944296607702968204871711138498209093616814858882846235544442091407415564534062363591108314361039418862316649463798501085920778685074470599163761659757163185295589380910482794227996654767086715095797542196275335574999425835123255971207819648194204093410704455165844264526135130821243106522789785816703089769653606802372152552800743703469533828127451316137012612360579934580625120920496001220992791766544074647450253065194234590136631337791735674798795176043592495271082246940796779663718660936068976973392697487931007427942614410371992949295129898449672971666278942053511298421507472938455314286780488858876811028323502798788253435149395667521085420989934806574768864024468182609823046563026523744617100545553217575606166561117984424783738379535049112572163085556775845228687814040552358169836811421143522900784875094555704805723301092883514606425082363314130609265154727507239419563164134105506224263691140146343250856246691842277177942923293129807027517026462633407079088712061970269854086078953274108835705497063144239377611259874066207443595243455850014748374332028973595315624012905864164260303624166276477689767536715866112871197182626394229251099062059909855165238975496004806147210208987777624652953211323698580277379650337695497397319816224300280274471046247813266265489204684759925927431496014651808838936960703825058986569858263768215533984645707466595977338715097769509413643273926989686864820125532621323124916944712196010324237150714984835452364686847111571626155877277311704278933442879550338695867007621635869845089369123080181897405844015566299754511974136000811864561652471675109880774579361493768886651689077391882575832020316096053436402808805214375974377046032045649733245025575487626097194614766331894304757274327644035977162217358252707848437348199858375564785455334373340845437709080461367140938867028202869510150911536733773768304120320748797705010390334851767936322999463473533704782509724520370065254097140257362442498844677681825903443174011653195320903445617380530593965985765321036650676529001448824431557183196000592465604606030132741642933555939479949116133479672693327065938551933013313878565971303177368917781010482858996824560939542280714825594415418019373550293828689954282739423291049975333175665180515416406824751174447847347113450065601763350920984005797065541483122519528878437839006690941322013672036621661143952699366218271518585715538527550991602236688472356056256978284055319327858524042096361175989743988776340590731172973871075280699771488639288212317872248296444030648154784045306983332573084175812431901077077032836322460687073970623449915330736178229539694497415519670543929687675942754295927874982935536039092639897315530796943900673215293834273966008802652123005861310190739956629894775303037993666958816288036245330486631006166827847696019245525607690329384074333753492294626111708372952631874871295356820800031034903320603346285862374713508811729477919380245156041463953553458549410146932160273486948525805989356750559495763831187898262713840622650622870627886025608757001927839678400830419026379724254576651543592112069710531161343121888818098679005419219730122127026825180935007957864499666274562657131913173031038009485483416524486957986211311216346013784030824238770974798541473360703372292108144852463874367605063232406525291758184197362603426158809405966183908583109332723434061879522317204923112726235582014372730153284576678754901648868403786590113356754733690375606898679085574204043671907034314834178122571563518947533237002672867530993131739891107294954224410537293421177923291319158956744248603893074052339768716488228245869767259045713109195770112450620779112172590026565251022091598898327596499453853606104899169876534222259172755218622467772643438417445603126337204065347174273055590221380415122127379011007155707404730811005626037534364188457097886757843444665171624963713593450951278599787812902730509556266791962839539059110956510426224119482476644193602700179304613873582418090970540318196100909587530419841794252778342031472894429783608806518326004716856660863757791961772060410947353270624317835827654596482086302356968395790796334781900086903508953495026203006115951266696554285632744963609943465952596614264654322243480131493139553802049385260992068571341458158017256155529488507026857344673414830885726049770902044818514002227095325304430334288916803962632797358088369185217400347833981664516828987432339608384823641348239537056032370753727692437950417399043060738155369946577986436288774815374091403759805292716355213425111717185006755365097952071083251337175928504917327574040181671350938335022034855944764852188951923398283615755202850284280481514430634226122805151807301522944856460265257640005096444209284738781034391228533055215632146069767272211009324783469435605657553585373514282786920692698575740536851500300873370193583906192292960335758492855777363746801107433751996092978464903015517018130571894029862996955064977797496939205672007250543207453170138665189901954265996970560492507742642953761583648719487104427358054893016317661434579212443605514800950564165994390750248866942840147857625154322511877544104415054139892026237211258301142239933504515739883743888896585514409692576728229544249621199183711649774905685368022086465967069645036452230705563018394636817761953886655616025187251785243679088099535455589891030005267125985894768998449423517255919392093613711209280209856661799767627930298054630843951468991483533651442223119244035658246428151920739162149025925338378770606874447150594027965497123573317399281098509233610051771395887499619338037702402563743048199069469912743829982601332561462355666148512117420505539257540926130613357433491615489283650673655883122288254644947559687643822412099479693059085794352688389388367148737798495138023837804389177701676910537859666566985712045338041554363793384408833507362895695937525265478467272952557256001952529947619502144220957339162533957006275401287815092846026653940350739107319520618338129339686154753527991140932198544256012657174265506998022845260022691515328820244160536618730782972632246067042941285246741959275676480874785923358396950543771895538750068367797376087882782571559402944540521110699177640332273458200848379282382095517852726686596169914569134568406448547649596977116868813734150669810843128119933349730605494479826642002808377954680204303136120236008773451750545252152713502380678892869220879833039498877289092881205430088221318451124783329033148891340289509832923420795559413061859007568855381895171118715342121615513149521636831429671428509216491207483039486705611610654951576619079657923996289698545608856751490372639759999664424841735137818583349505029440899725642570268222521972800300807082346474982475018216386335460717708842285005582800087150745454307608256891678568175069633878670415767853643924764123347410119627906305165758748086121908143688340890119093997042075031255652512331517374031179109895627840741617855735458787427789159778560913707254131314940199540746583567585326068193159429729196446662976387854587189880396512799917893840598316634463660389761770883528543553740660024631617758467669832953070479618056445585336307429619343638397260449543870491743981020887092581482535625648313176903599123886178403825915861233919292146854857390531709581708076643600545127494359545133332776583116948222120825961294678560294153794354138260270098856033824172646067170052718407614816965841726696260940946946676509724864266812750001144328480519251287583196867174955150149226582349312071125077878961781211111423571053147571942917718185931951140890031377838067643382731897963856173552517945064336160879505995978613333745537509044078462698361853819153310871120663095512664740577548577718490066601029501882848414434870377532507927531889124101829950455091989671682886373236482752898796043946373609374752416861281726358001668442231595156721942891190771346324432442583081647228724690263168289399148923053260797793746901049953552939325404050051597157185112908285358773549857107269960204211047722521098644361770814078027879851593219327744346854639641809296945258123467587051604912838003718255889785147275048942738858047191685457414217732736175527394263960992039970770287921981001028637029219393807924280283684794204111000381771761599404760504401762107936393741575193495022694014310370804213382663700549046842103390232342372524712861596230275872824438443230823177960843774773578073223369869527668096550551022304097202184022078843417344635324106329486609007342009447106680137539128253086129727813531561549450607891268991974745413962170923168166809074470343914239620463272046316232606539453078889438472655754795172752490238516680074379203901475890367252731028580951122464642271402124272160086683473945280653296227761908533894856324394994993246831805114677457270601623868218929341961181020493357623681108160841336521243376767013113491251035429894574539312612489000442526435551478938647552577914941045684063372146389667409483981421913252300455079397163769115247985981418213691957373862629479859301609983424838120813681967284041027119469452373575944355106027646319942047944672523634634847167937724017194976167276084689200962490621146300071258777736755170981738270216749117793244800363621935000400019724563778437179840221986032642002700057797833348327475638242245336035758300651095973066373123819242071987572847043490642753534608373934606362949042068418343772715250080334761123584402905850268832207508868213465389052553648474244583251656064766988139302594029548958051364801267296323494380847530587524835661934548140247998559729633591935547320642406173698680766060623189910454484313112066316171655223284719890141290418150669446596584371552161392817778382797785249919088261963466135764316113799200997114487963571935612218141767474850493845676160722959634249169626439338020664721514801609355030892583026413672166443936439821623174277166053565296874740059660685902148924153038458802566085431504981497073398196656930188959920385755848039647444766925713643151895282628109529336802699899400510585194801439139423410757666206828735178330851722674731288303984632001420133446441502447123027061254013081647132223056692405744568129045386709063193505533958466252647522651175466776310385413592161060518983568328881819584767794899584813363494244838403472130336181783477024198999963405174969139861531589158961670712801700566560611187125558262257541047582940698610656462375232082922497649597961074190670858408851667899015805663351545549945351550579296530005723458290345723198985606625537810469172247238367588147045972301881479671840523081738390337487135844675434888677743087597192391724533506444930829182086095969148410313235835070345092637754607915301580200629632950310000746282371457591865989349965997755629115445226571206874073994820821275124250081439040495259291265930111262831878543191796954154428120404833738935081923216468333357315100037844332483271717873506880365815263077925665388170770429624283515390812183064036076683586803885833135911546024310469011990847351459761250483770179169544403643169177189485772727492508554252338336090097454541263186741931950039387638994318295656238906899983430175752392555707112713458195584142712412231191453064116208518301291909227863931672270262853355233749634554842530392199773635055082389782537271584609506772774263693297704080280469621056031409896146375431680394339325060821127233808196566034681477379710259216826020985912831707434457148520735562173851155814474008190433638659299864225795946402650355565358466019772007623928859777637516124454984850300753172522984514368284750465663514587742650293653747753351774216368502604999666795597255061067390264565746667831130681750765650945462966540164448893952717929866305217093512245208737205116782697019024281269517250564257076223635603068935155545529513408897947579242052890417628683088656267884807748672481917214946490750626891213065905134362041321781415087614246734801307933372377816361792422903380516090823377472245544703240563117335199592726555077421598454388404025887416025459637807962955847020463449592978449983887349322787992964636543139747599929652012216280208968741742161696123475704489495644809023389890288098837686827525600440683230047113104060168900488102716831801309336585691363730063924924667594390826644174414518825376847996917914664072588454363090089399592929875672314004045328113142341688160348784409403065716564562196938091461132744994887657403730131860257763035739529062837859601925646751296782363518884729349888550669664891535392043324821624811869267133087784785085265847620823742389120661829858020193149723147365847863191108323322064905170650708078645012840975356608307976440313865825523820222513808776709414652549116574206461139781589768290663725113291935613353473473609503394255758225249667670983918783936881305273035743890007384438762536167758406576747923517580573053687894721407153485570728604746729606110280780839739127671695852474505106223832565819855170718382901513470335275146301211429774825375810206746422101833469759845319431330883584075210949250024433351844728086031821469607930851024013665718514554504611335484445193324306891125828514382994123259758152297685209602182347823812659975778459050053292010399124430647338016058232633500189546405530636828465678172818411307477251369958108303791344264357374262516602385674531584813934079268357833243559743087281796970265986489188997025176637180703143637607323054098705681865283110838672061493864425694632254758922679498972035415832037358497037935106205126422940763580391136317494049171406180783080632028872168478543242301114338227741773928079333164223234378199043871329025156207493589221894245485944016311257350385702082880245079244726122699277199152992971392720314205029657004220486514251421381606322970715971669568775729350419604693052371219619704555178677168422934965504484195543756419310596189658101872728840490441147799621136257732916866120651015120832055603608063225300199965118044732435071678489493816654687397449988340913618981475908715025285096514184113605701745222030037916843200987961035704447874079538499379721973453147693890679811599353797419186839871366909653807560600668618349557096034153652870405822345986263061272974880475056305917316309109118650908600310123295178767659947182811058548663246097889972593269971947827806145798549301636724337764360769769803126610723894672197913469679513841418405750790503422017626315840189709356995332507411015452021977831184903606842958886898049937083319090588871579287244160364137813145615792030193126382443859837197569200451089827292420607378564687989723454701291830909338839866840121237855240563884314647120480585036224646109976626183342125607649735091869937469874412140994392883878647703520549681096179572579315601234556703971754912265568199829210959506181548403499442632337101010753513000255117849386403193067400434778176896935682634593780483681312257910622439842130831261096017053448480765999824755338635294149798907952522659323249250689643340150077614220266776704067461872732454046956726407810306969341949612214956858503226109838909453748202273684493142971715418194688344611700641457555343229754272588214534381943689555524634562403421751277555843254085345887800156293663366967768336443492698381983671412061939272318727359731241774589466224457896724352200409363903436575905280079402876754859673495973520800468004391030919389652014545431909606375590114212088362390935500966156882698475347634631513623912957555673204094636796070372430019568966928508690879308724232501518782936586183898779552421224480773528053290034048073149481739161295897099870458547297889793270186453689653559822551608265471368552620652685381457982311035589487376144008130847007225225881046900754681293027922999986040935492639489847088755511737634550003469425616386949913788560798701214486870506165743011250344773201071638350125468973151706329907388814789167490320076452900759193898784096157473452589976419405137244289107890004912244954900131850540854334756364669400976849838062890706722551475313662819114202789523132258047170208218593358818862401266688550473540016094481549258231749103553430209360836069802238003433441641605490351887634268023613634160975273755512028732273645349355163038003453492643105418704515343460888924829348835770741849706844423180138723957768875404751950466233608143799219073790411932067483570024844876386376593556198475790287613194607145523795505602289706184869799972914733740808508077507941747698558658264867230050165025939704188806541691371352234457849578124837427217122576524412854226583650390942430482168383786133047690659851234628255084994589170098754391866282704515460630356739654944117488114763506727924399352381207778869275209669254641821986216516671382059564325705361648289049741690476551885179963521625782574604094319181028966082476920354366551274218195898584262908329298921862408547005455712381299616192511849152050554802258931672922904771227694424848091470136193284090986967916627904585204418267595447336461475545222780864195094276609251175815942150248696064005680900840544959539228586742494474563522334895625640835128264407328201534067882486259844889826523525005456954571683991969449733440235941865974393148415621223508396299004790744213559248220709920858264194488537616777154661059824165669169452367126058313992176143894935680904435772451158592848873438187002720263152111134389156519079355121028839120330645148838268808801070231304268156923402142643245718196275415279986150210758489032934079984370352083411256733541793794395234148626540263466568688442353266357559141236434108110397926446278521619625255971992361741802192013466532900469982072234107451501109891117332575919854239348949514131148397929795549052164966959340905469886850479440040679068431033606378622726340309538527545685434432863215000551981061683184393547902838247245414287161287700580000114008309653034888589030489638301740038266773773166494519157359505588176636693629362257389840823220369368654861171698102690962894411215354222879344164885536451947254522139433351879878560078405847377104205340502747465124072204225021485098691740567107388405652793602669184177755767311314457803947688739353785339854694888124746234889911709183008643445613875455022856151379636385368210811314878548231065779353252827203681141953451312507842844032930154071564335512617701819872069767418623859617542237629336988472653814374616523951334810635891131353866561498728515426464433325613370455946669192425825748802498002808056573283387758166948483146152125905972719646075789753361452095639134310017446639893864318063297115988650159568857575234508341869924144381974215836095410569445745694151356714791594211583658617980937840923317787196461901369423478114781887203585359798374197336648348223817558594279158759142783406804625472972743621097104725650961270497076567412576907070800183083830110845616920405840688179297459217286194254961677369185020595480052301121939798706355702578941237888932773753203961193810259343240991927787598544426432699937545362557423602041086042727034780769104532687382889554461531617654605359237166189069721097050687437886330909885888908649743555850324863482948811505448117729244906643723326529201053283362886311366120258573336062020078960791921180414079635926280262795767007074750475872522849171767074522253793397770603874202386063156759741511688522650512086497237110576491331351260366053943985393685840560508431412373527598339894467904766444993841956613825278310016293525267230569232538834752121858823720160143062163797006185194298624070057427829793136649713439775171515659428928486656798089925821640905069057416055912826130185260502921083815523485720165206095162925009192998182628531634673196118043709415690494782734974152781721955421484499802317589679594832246506364324949460380054381604944601511434668015190479041554727831562626860890567717723124581131574479967868306567901382521742552465608726267434858726108633311878495598293157735410678727616576713906337627535021650204245820080468117069941371610304155161954701627203178929601755254569218686900802152306501489984042819827870029528643217232885212184936241185329968622316601572986625979045900944603464274428418409479102599839645224805903365132545967790387440968115477484416997010160866790056452112076597407056146464635232270438908447776272206592929306146921192499283462414697577439891301286978994953572950665174890760980027192169753510098379310101233080020182592900343514410059597526882855459856500752021063734502639054170079536530986890797110382834777685751873969374904237795468647667657329624237328299208200876767426755103838700316442283866715675994740159127978405422243130343540884528173721376013782295448348694133447779420536839642072159045365574110893890332902113444098016539831639065231043059729916466227809359799488859806439946181340561228173257075198687875847012524823474462197035046193046839869460255626034118504540673078124000218808289911509026985531638015953176978400878527572009998256235625197236939961476780670481710352604729057339408480968886231322349088304376834242397092511660820291842038141133219080322556671474669174029255682657796157345172470169164475629843158685384523166822738008258029948549119921112272898608735179677202956388701786134653661366162221086905691800018255400796240667656529414273352910280225728400946636076085913861103786128830399961553632774354990314122404571588499536628437451118053987290954468035381718751654658730731374152049213938873285227850625551594463146576117480299121225363653973525359974527639546770995002961170000545924667424964444799261718637279422673652145764816311261794500271709622052427062622713544687052638665222775383843391559993029378282359660776992609997074659945168194340530421159324056302863708341314702093376402694270193563981214450721050270032246867732960195564216640908367732882320182965716243544825416877612169350185929863678521295502292906990490554369354296771037056453900331813854558742581392670490920894278052224515456899183372977950248073957445283874695664329552843441403657125323407593558514103995872126971239169460826018959400487852481314268320022461296957393722134136975583729231657647346620022056570517177470588082140844269502145055414777761283924669901166783884022531274626556791621562808331453794335821705626325352000968449588372404756714673184871237119742895933674512281054052090205938032565102777940033552684204557298133762134488424621001179515276987987068375347502843713729117587136306316137583966637041205980360578785062992139820123435545100157255709850159610361924776159566964884935307344624444820597865975268377383857101948413982993657587551105720540239476636567515993952896031149295766813755715062122890564618896165352306482675580536843390950279284217095157261842413379349860541227370979317574835871074283024584281516532492250383027098431065579570172282846657781923659835412092194963666490563567803835455804075846768814485938308018289032706387149275203583428850016442784895479420840367455976715116663210176339658061493255623695920520174196110737880882692372196013768065066358923036259588952053335867140358762873037907716608669562952286322824300940380033481161046415659853055591635734509141589131370440039420114245843246133538733994767791010277562476647207486862303551616686708802825206955809269864868617942952592715094733289443468584188103482617498189022071064135373660314230676029943883237612885153996269093759695437025399194887706710028722869730844918487391547293730348200119453271554498815297467272529645522036457123355811081214463529380246368251450588727655718266612246992472813621618319474190232205618473270931974968902066144067446677013634411030879209563945829633912243033107877330809342846533281602854779516855851448011149429028545412590975652482696051593167266544077085516160656871627124566365952679856002900687588899808482532791737926801328977129561175811336527396068586206704931596941985203599578610663746991339735507342441744323663844684841413886821905219972398810137008369561621760997891120864924979164316674032678017130022577314097072747840401296206409577590494972810520455007997016722335630510633136953315166324786188780916173459828783062621424494777407455252264428597537046320690625319660703830388489836162003009533604557723780892201630947235304701607249265828928186121989492375871560392141010650392802168973249078021376555835363249794623226871688029888906644487467166202314206359260986259870182185626806136497147434935716727323669988987999162185453493104844442634735469162853324032259796139212039151621962174422426238883027646145578223140292415407936532205455623426704640233410242857104721093189950712009295501262654723203892961553962807752832424126413497004197304390345793223678753243585771739779969488485330929697197365389992019614386820276861575421171928622060033752256121232524636267581763619816851474706574740950547631357459225556436216864364238801783962907877451233231462571684183395153942255198314606142807968298215812760375415309833528225316286252848664190095670271692536257378686999902601306489521851409049221425805134270853722722412842600010987262268328373120936266742852554396569983205991863330801235160467139072132878611873860643527283958455753733849165096425441008653057463651878118541763242529196167549459077478982998773165058396390826370101716877331492851663095296465873446973471272051818799552810634801373720465551806205708314126185566620181468960210011593427347130674897943415813585187817417728487503369037335182426228360481620231037280841288429971935293386636138932685200252598407916183567943562103425785900357714068212085576421372232252863009830229034972472793854353009391346873824491385997670296158313006633502996878304235001214686299457319952761771871333620008691560001329388385084610769841011513556457567640664626477432979170629966095999377042198021544372497306559851795024988503021383190246668505726186014596208149242596059159114387421651140541609752314735248828339374107287734807609742517286561302080764153344609909348098428923337281675768518158100659841816865606472623638196579993676623804062118594529481270854760244879058297422070790984013319545822433272911616974021710417592288208257868461519466953387785298811824041400986787955392507647976307117717737780371270835750354498543374227500537409995110799578989771512610488181969300960178934386244608362603787149923288968212641687516770269304511412413631282689969433951807771329691981879897779668770897319617495704990469019676055348011673396135434526295635224224723360642327720143256914696769162550505789244192725277293566922929128517916955179132411776551338560135858737821576437331758932502346953455459613390411442470021109650400126014867972322127628231402533829986091875224883195908436315898886720375762234864310381829131457496042695124077405036336099233029518186449836949648686243550081972570932992064427047362226385468918881962214810312922790253198143823576467896961240515590208051797208259569871051203200038219764411036542839276516766052202000550491623350861947686122223062335509133226876677737413480269537093239851528343210346088173436346513232661482002983898236455763580774441242091096823897031989787981303530575843994986419166565527866996697811466017976386363159211886754673976668165718016646811755036736734134492248356787180888559329643274132307054046592948786804907594251945342708574924889621775132358250493706376527556177659153760243969020369780404094500520466317373283839440487089630348974385088797059516380430741212485821185375414118693425167698832898285515650663377981660650377805051369067033317829287557307103651446598138646324030392127958640970953616926523810720531447925726775589423253168230289225912856541917310344138626464535334460657486353176445209169447967145725958267386858125064272158981466535251365543912827510361806569271257477962694097206034808668275442024981881480877427231135974521087144538811220993592237794893215822439192443256584811024876559568833417363858425130877190709290013390145795593245052466816091415594974435937808067236155731154700939260630719266047669009310612201735971774566698292261999437638878878731805421437080767011987849017078300743449175855661264190917956947966956552962161534033522060053326267901099430011780963002549232955395582184188708619155769379896693950980875167246683651243009957296562481114656096542743635709626799746601897268569525127297651299359451620373931428456410630816265917811136301929208601956232181641085089609977514541440083677981137856007548269458948170919983870417935136783327193587997404462725034541563689274951788427216671433507857678810849039145220525490219826982933620018024932060296710146840309043996428742150996684140077314898150717722069455711652040128317015900411183045449475775285624615170352011575729274077954149526305858745024435769972492262965937705225997309921249560552682708999926152334716116320557146531887678789024072902453985005486445741616099651928464857938272038745725022425182561846815238705662042081883707280125980589321471860239691103398027874830445590899807811952306527264938718466842281311475945720637353876835219452013949545926736069640750242144959186455323042325023346967398410594009614857326129345966715729624056124405748554462774441525272868938796511878449473074317782189125728503609305869889763180758913305453325383663163065786618657220559831312282760562459456714526621684001843495451781399176061720936225297392479481697242492145174424170802175510339335876480860979409037598181306577610573972822106565411555734263373644603120520650890942723173624192103188466846057417738057798136349791595229968714979903768753158340977680752154527803883724276421559559646068811533538952993178949711497625819141344391154443550045434280115789957671997192835243094042388516893240604225678394242153800954146417073028703509710869866722481202521661947168955641234576821422680022106193601483377980520602514241598783168708707316821895477681598438803278091575267882382609234212044408206922608313505388124067759240908171988350081743537284549079140295773195781991286879645181122103104510919101711569084949490226089237947879660798044156071335031479562544356126770442375507000828386197008314966209242724211805686868640419955351565825147735832672336652902532738667311916061277281742269754699785809324550045204711955431843914232008889474459381265318231811416020932681903728897791596066876816096418623728459278315208694940295767849037040536032745669929494716444458408454659995654176760146030957613381657782149075996818091662943867488190044815551184935270164420940094247653049038187943457998656678950266896791218896253640775778762702108580051292345541475905716093228055504100572273731120294912467550905257350813191905033775003778930042805213700515510891696184628138030071721507989483543977867040296848525599364595862897403663626619591518150461383656893272298765845249664281055799497309516940453075444855548864723023235199411155474851913909270990154796945071118898992716711633115972771651389237569271111341370793288473360465462947551601504974537514235874571290589141533279249781468420217325307081573500695088523570983947797588406424219631868430452431740490890941812747255225320628062790727676540700933157151730576147852317547937183034430361476293580554562380548133276594932050314320409393843772205687250607552643785239882127294195003153263489260784648630511859727637714221717752005817067084063909419109325795548790967530838831087655255719378907733729269429977996719899775665192404884977652817466173361188754967500066856431144842277133993324677850229331156604702210407601366041062693987109672009824998803198295163213017276873255318117473360182763115228241161039476857441472214446618974887357170969453049446640104582949200647591192665290200645358971330186509023501519497891247967823934785982702830886750938169426377728762099828580626071327239647653354456885874552357453754002168591864172205246433852181257176805048812702944505328158829277114993511072834058347061319389544584393799219960147720834038550865580532619806276769400455673626134345441290472318731030669991762188482901295791158271626844888435440702050596631236868898711444069944515111066019718658138345112414098753185724207798734369540724903674632331984153929400581263386705363751694328361041268911370271049572630120610012341024386303613778595223409562781273446329895442533544135255847483580385797909380279734851911915037824533343457802368879228271657928859718252095542280129470370726414671027492502308290342828767894927157550050406609743207324936547742829175967010200973129779951140569404630370903748325711117039545568508087294869046367772930127447654905221940012557833383189198836864585466697573802365019478541328158414980747289362209192940309896216713460644853733867973094655785714205539027761592508563396561546591882097446206075098736853936867765836817544070438037448079845893821358008489506107233329227366804172450851366339142645080794200633274108885346923422162015637067979828920350877437890673623875653368667211881046653500063711109717750028029141583023904214871012666170190835261178292925757057844196000297222006484148604938602967953237891293908092633269165498762681699542777180081281504524559538841848058808633878210069407039542117276850653363547724548342970467986004152554940145466924984001489792537204337186061701156921810169599632357943495691053486746829236170492412451614815179826017969695899815721852397166162141404703163912707248272001140579346060183327747515052767860962041167654168192909271794351231162658670529864120899207975663175679753115599828717654950008600084436122632333192383946326069526429928791610857177978645130019874919782425313290486169194360652122741618247460421397313896143140312140776649079844439400694498063053493072353351259031353668764575566532401715000683218271298089138321550488650931651050800972417006723614359403946697891918949010284797608516143322028743249670828842356078404657505418751177688039525001336226957894643196633830897280510264978850474077331752978092235808350672285491202156299746566440419435102220449803852414866246483617390383581973607166978582676357215952153049291086572086647403425131887830977559336136094585013419438344487048369792043621758692220523135556075273823219108493898885230494125574377224839406443313131472197529772053551148208288730695022370185594247360223968161675035152848732669927504822545777334359642239177918538734857594023279319569066368806746986555513180649061634914272898945583823228005560415769114599422412436739707664142409973645111063543723790841862407199384329744043472059412418407508256227571076179440178761924357681344085668793700793273699348040479831622380765336289705611819919267961718641832533677395863294693565652679824329527202364674879612098700604089407598535938880136160714364472414273076513997817609055168600945142216735355709181188786348037252873166604136765229679659654000418460783330172604058560102866995792792136035116679052848670255277949911810676407269937086977510842229980394525712050095036416169501250182819356410290045888939609337041358123182994877754979846661796824771309445003098482733310627458452757824405774623227356948892776112375186291969236579782206609374229309743113726931105643913864249174756743082429848812129337998463609181029417328708879029189879874036992244911284459251499871043471909395813291240412960838664642552097048471587568186945340751925010155560707347526071997405628882594188776476187647802025443934164302165918357968778478736476603997710135377674609148971044693649829321575203455530301652501884500447931662627356657653506822624364667354085857100593987896354395926200598420570067122833721687888662835228622762957227603043870259149771400272932387192592709443185161611855319151679981925942715064519665679238510308762839836605918603907043262373506744890916629292594970959898826683983495117718793611159979043959425544374347165895652182708746764877089987306084119479693726302522632112650474666067113518977758898872656103395395643400131204163856109576850942051122296825232946889968466874049647785750487550235998985680353876624359098363646984064590161791022405312597004059406312958088568806925525756326587300405793467537694530140255999449069269099670425334841352431445366053150990962742167063344703494325563564604938774620960807781371287735139774936986160082688706336117701981997978663834396413602794755849011162400775705469588787799877136236786653381145457420747513689530687625705604992276910338351036714973055472944338913091531123455102146886268788005611883765941018938025979495674453708426780666135674095885789063766516264265863796065214372365040541900880090957470210679293482764056948927338116905495284173724035894596350520211119900199123378708670477590284295027600194827799801381358116954880058504317764345086573476885793353009021710387486132206450057695285238547300562448323435116774261332699126407496706817775671780980916706657608018777309006468761011339125918608741857592085291130320121599462057972797321206515608250667120716445142932420937154652823923305158146977429188765303986076101308270848559314365034644024783218717104982493463339146547396851136178213096401283855445848497254755508467652304451581346906239143611786882798898807898396115891284031493382379630503727321088219698983540098487710871480270331207439756135605279870890475495353963956200144980281721887128900185577616482223600775346533651716588562331951184562367017979127955140149005797644959328215847898636822461468160949780721581053171182817623016419339672100931843313814638591147659474456197263575072328670739859900658390519774658054244390872270154698054156795170457258418205164061790465303022333103990818791215499973228846349071393541116927544391264404151573351419580101453743644789274244945541776637305319332781465163441665361650131680672101669579201592185022394575666372586080602899919869123074541476338884393171842788241364671180541216294227568690192997368094635869413890286225752762043277694077313624634389449065959692773891404989804736555485224419804232662103812904189927056625460932584163937767105233198051577131461609565410208117211539928092490890220311643514870653462310183853306886716333089874967721403841494389575104864275146422733345906533573171550817105450803594326340116183180744418150111122073775261107795722139680037877959861368037206441592727679942831143242451055606452490872349200749383035323389762790933330324750356139500078762385047304726253607599759241371069688639188101039217089747247075728120677456893790388805947921010172429825093385808141157971110905013458057095746894733966877958771245775023978053253535709002939198028635120976955434150854365469452856974207571303447856208183870369131803654604846300801269957288804592556667931790688345116909151188229469721646511311015538269093486556750276289156194228714696279960856111501278615427158697195077994725811910095788274783681233419774242362329689583398655107912785750412008636438810040667276992235880520373688779227273861668541809490048578177587614669286240687915408642014708634067462600061245448969022142110897168816824158607095082121072284025436024710260319861443931386283647106561221144674927139784908350051016456960632890577662726647053444604320124537216892367189884768330577084610806920027703642037229436833483623924063608729637419396770053995866786070351768645047827760906299733687414178190156012041232354595070497099483718833961953777405825320122487836533948063562804719807467239841429621067118706563539799580971623422337896554173616777670017586598373363961421145938245892456183902139456254335744876902705668476022095616760790838503706697785397328321145548296589183496099290006400125708656933268104956833281819148740213876818277337205367109977138627416449234590486743639309362480437681530890771858130263204895686806751348719106261411694651495125982141282512139556861870054927907215684261383054196021554577748738756637441512406318701705313231768788994284047478235720524090188041341376744957127769312777791017399884352072556167684119691832574217259856590952252984262194093184153596078686934459097749978797119580342150659324307703494018692918807665658226502075473008375588348195100667726011214616205989703281437390285239973499429826346148710669995788146382457004059755780923893157434982006367916875582988039848359219502511386191659165639652953855500457938796251931257539907835221737331076821777462211599005442920109046142533032006978831943432748514017808548458818232974082375724561150288498489716045377078284650316373294941835641451675130526895438457290611812017159826483104372473242232397210455785232483782813425728650357459429274457641333423942168604359392841864146735538433356745014670881894337688274599151396746438074040294665996975862932161827224746819360001951472657974161052257195785102124026785458521629349569338553032568232521383284275595738113406441988010009561507219103279166210398369391399600089664176242181802119026441830562529072793447316294213437061079045761345393592720025561248228860413523808475817801886124218764089948353531585055801160712041035772955404829852988197198230397551385733463206500884628102274972477299565186119766391674666870719656565822620370151145292191138933980582014488643844583383756606481139822759641255432313369855178045916200836111298511804125635008533815912252681382345386937711497960931485537516352033205020090873093309036652259406185063730680594436190624187245340426212000269845381621209345138170631127741600911716115156679772749208625262699382512479063957765867372946409243932195971033342169839050368912434841429946069539477841437897465961863186558020773342987902494348809046040139505284720678271965952784678926093470670956499195045528911158202373394899154857936119881392828221612138466305733487005411118289668808562827693079447627776075538113250714680866409601491111051664152630033548976638452546593536811060987745098558715168673753431974579980550683982028346319540491351804436999838529916734601030365727631209319546793968749560708510259278626567681181122688125672713287249614739106995606460253421755467716843590516820279646299655952715329097076007757575588921340132243438598647865692872027295534261563716015923230202684435518197992323346602007007221466925376760088975714181107886799040024760270650350267984830923526869506394061216292071742017771767144760459507471535103482887560023081883425572689075607789387668439010545604154624043988123098983029948721683525109324761894161578888050540021500233932405239469969839315903679794785528125002094879772990175232840066106753657846690886638012845575169101884069822479597610990228059713701113009061377102714242709801168348034703782823159486448990522000923228888840128257170708325208793812224733558309941620284711848377251819503124607410913004556292315462621441920675213530883815177744848033066505580927264469997617813211896809732811228689189020569749476731760719642206145034708456996588826755214170523866614819816159157281688760634382126307287653281701631537062902133707090078694872437751688238956354230952629115755627592889770478897258495261746439516933407843087146374112727445274407586879741258119250624123805107730242060385028784102687045591690836027600566428035348082253337739154756799322929458305232341062200668246569605393227576225144805853194280380191859135027693019890709626598528472167928833154383808810286223318048972429888630584081204880477041374473038451001107481653646727230690010618359390203843770142108086548143319558411596684472302939840383311858488504364378867320750643624631204367888421282316073193165422974808140592530284599901093428295336996671081889181191869759846856947786791198937470989803560744359550776104097163008299117185235916743772384037976145495579791140173306458422486550148743154055550955564139642895839130993843325136254710466802187047345272517995143460775516864806542260964888394931970887309248015384042236171766741249894818854199168174318096140856813998818440477330093038619936071554547396386418928922762489483686266247150430989049096988860652312915724932113909871193810252565154787459119991937803169805903514233090943402029499508842282657301562965538112842694400077697298995688108408987167931155823973434968449440073760095959371192346519344569531341275927817286252571950398715117684539217200386381005778493612597518034791971619073641169386083709599176750955553826218415160012812833500792026045346656587135237316611032322544615943478058369718473571348626256530588720368762496482450091761118733413785256274233056823780986531880615893785681383515418715912742865803791704196558257747432394831935952786296158256318120517153689949456106175039116567510649647613552663658650515274780696036314569538986086186861868568703269274228055202504684456278501273696771285390702399238120917515787716437220917801191363330000021041110895350362318994514703398844113063249701339574433786045857583351958296281248812397571824992342102226245364455248168336421958724461575927231846974330332835995317590883803804623959884347443016104106563329004490516560019470946792047099286973134578443496489611259211054786867019679166905540805669755289755167702834785619167038046775533847242582657864199979095055537094943743555368311680251319996248478343064156141911467554132862281588434582619563366753844620901761617467682920926524886073780830255473572669103930857528218334152749032876928363133574023624484126342255331728949638173155970988116850836644285187954708638126753382299004595442079297265045646687717128294589084474166090811102361042664636095728918270026523310764958398240154531137203967715708187391545916965029802557254288117507780656546649849953395972702851633686132089778022674703370173929694894425766701019374170583484907575539177720928454399436523224752505325746013045482569259190918468521095915315958773128911543816649451883725738314999316168821904142191969186886914575341086580646550251558004197553559967729581726125830325888892577503971598966233887194055397524079128172582361242823332128524773264695774027443796025081495227805366816688617698954761143377169189796821505928881184096602150498220237737303642056251663932859246837963723375583170757987052404603208047042936278519247206630417621627567533714152134154463244360597851842171419693783927126746597225981134155855498668719373173657679574258446310839922987958775240778415268303027472999112374866488905465599036294564583786806633370778038841762929302775973209476494096594795030306434996580885816043637461332164253001059754722033651761820939570703676648663319516822733904609064329269360245683291997378781512129762484735500279458495900849180566530836116686022786461461036286021807407240691555764606151065643286662673709214925788186052792717388172955194745492836584309779761752254741894602789760387045920497493767443022566520096936069805015337228324470287960326939619978656690319325077264638889774363684047358153704282511205971395572879985908873906089997758237020510973541313203768878432761321550197218436503088028379811363085358636385674699699396727510202823703835819998421122171441528296570619937078328537780630382752860531283873711518543345380764447874207575497986642680412376528275113158205055076329802127191807869074496082773438819376551974939330980364033458138423150750070626103281298142533589937887361586276796016172319778002466353789394493683917727778274962690565011072337913162039119691529877976337566458079696555588436463819385067942629981847285233100311097010555488384816339141260223384772282679750034152772520651369984755967681762098674227208329581928269979479361413555997608116711804233706505566091565711058604285522339733335570289912454534863264882027420458956058854776986266136976744942495006508794671420321060851918566765674207811673902101058276229261912567877844928480389910392953209403811002694761899636027644559605271244187445755257964465575853836952049551639672351621569923932659014809317587940725757793140441126212592039813200486515604320690026069484073996402740080667345644235377013745793795748890961902206890766839619991675971552680739772310584238421915900991410742324676977257992988852297838345460350785005976668081337376301893749088196266204913703956267419539154853748095708290110725588212966311581123118629909750256638010683530644989025051819414881546365402087325290101460594157261627270182886988619032680922106511339507575635711093117558166421253788880696991991970387945983023325794899024074020028180146364791195002590637897301497521679104187695166053170478211300564757406628526718623503883870267011254613023763419381565222753797142074818288594994632296742552937254732866171257968659039146749701857604406670016924621302072314725201924082802714697761100696675592009723324701014519232532055664858834737272723562600354165412218060255502225390778925246708176555958255618008877627429930699169420525638187690848933569126783312790829798549118404716341089268334996138239079616273448860099232038378478182268440146253706187057288138657323858512898701265089898011116436387092681355070091557207561970214793552166865619907735785266373926979063586075668646635663988728714658380843289503772452849965918077510569107108661244033837599099614119175640083889054183744201893138041044739571666069135850204113879559509359925692108449693048603724862567890090718681245564175348448342384425556596391521416337535923805594771521929627841890163872905516669745093272590514521560021014578468985857645154927862513903103134164063178795136550873454459737223749341812305097509956795452894570771798107496183034254211847145485931304076851947330604546100184405534833552367969769303777204686323120017679308523206302170372959921056843229989058791452019142084283353569021659636523506991362845673343840925597980458238915671418641001573645879877617473101504942793166985273037881642615446040850149504373360104460530398831743511683323825667531360395253477211178840221311659959878188657552643463821054091262920941584103810788055852422836418085694465441411300354718417493504663686461727518819882495177363863370778732292324141118146342100107647220798252933219258226580487947086551507601134181067883106963405279016696720061781771658393597087833188083110351187599694205907739224820500669107727066388607650722403806747072616753909248126049308617022114641497792974759496926183985657839852062207496811357816982568441879110147629878110933297980596117331025822993466461951649992312592445786335116786391605289083636313148135529634633891419811148034603136445166997447319280885692592337836331019331587622361715955608453716943425194194513405298497980148054676284293664700926679381515353752594806501936764558462269568343505018755073089635382228079534291349413532937150798269111843991377330811159431218603618683236697440435510898625062188923804623467701724726795675721779309727341075952492117772939368078401998108917783517480230591554789146424891877676636691084044161317184349509707788717906272878799361771586406370995743837555319095978432746202609543583833279814265508176565432985587508337517028544647645035194685289887782241543771793804777670836790360553166623886329392153079168864067114122005467285719459165288546046961710229029492230067699851880486379000858545324107053495947097390518183643296787981891032147323678168838047459082400696136497201349185247180414187740641334858401451166767259509315797334018624542655039159921912203735063370513467541517430564142062834349858619478482803844445435493228091425316322774090464722703439656100650352202405442769306586401051655131951106751867093564834257334725496887862476178088001283784803182891396730728565443536181959289237381319035133401353883538386627988093871018993994224005374327714992480142981864796299932778476516562652219581832765748349755333215508135192550412227742569821947657148350658652942357156183899348940061753704407642475589801325513817948301777670640555716870657328876623074418591441767036651649667091293857190736082267176604348359292592279638323049593504122025586178808023992689280977873811878638938418415299873449473750480084477887776883874072209736903014617088653070407132589545451050974965463857423225442497490156829856696032757878838575657403711093495139820513667703579971286680209500189280530467835837555278445859327417886377714080293869213074390423680464594346810787110871134911101763355787543270603226278381915230605146772482763072832451648297081432426932783346946283977879957662664741246543081680466559051768418156979591312828014119243231205520535280374784670951814996508301655196004290401708273907339266742713132108544126672985615694022387063691324397929469202264783759674953281268440699221423198682676315040618697592097219006942059777493287250359860253125351118476297093169743641934022503506623414583780081640090394267482880021038594760921487249053094099282859830059305567404086389418347231760553663070798207895087533105178035838062763928877691361426695880343474737577652527455866680475236214508986718838757314711896000666695759178124479719099951827642948623269964404481632565600028900154674114375956257419871914674021350417686610134729454231006778525601241566392123773724941247698139760626787734981143733414055962608089652606977648617441787293420014290460206811338096252845518645005957116881868783816496733250181793750485219311239963086130049326430291387112050968481645594604585252801753627348449865414935618612827171475894010891611213754534946589092397954325865024875076194362239364360127039754221801954878371100482416833761573366145761670972724837561673618891409345026154075314536438841153386642892113267010750620247330285922638478405460503315772496063502511527477500253284825835079992664163185658012511017840402057180385378917869128020512667315346340372691360087384414342842083082119254847322609692541700743710795963337621754683797612289348181572286523729747468100647021049991198083531431929816427317840723075042658612383667287251209340854226984856021257606615780860835719076359412784152473338468776212809261435221031157095630542781679426340665929729193531340503877726135129793190560262688945527185246854659996760425743554093649231788590818698852552278415541520666814683286821645335237299699754534730002711733247772545626397782074882052534988655887277300908038784742218178516850916801423534626847118870698733108103069136667870687694723208273657534393256595882176990797497401409025284644364517663913772488394241643933069256100535647574229447099604773080524518938233517816615491813764188003519638750290627798856504481806670824097077439585213718029898632401528261830987432445398415040553597515908215905631989505130291098835997307892685573467473997235366091379353811749488314289235593786829109264713828055069756170025085971846625066765046011647529983191336310302381031047891752080023340376997808199123604120567523785669270345887662240235028574349202603282780124487369310279627117781485492299752472670872091055312083438453872497186181820167966393087372424985191372223621325459342236615837221296259480782387242638439210427495269965306850847342582485890348621072990940568241511565256055745353948901807140438296248633858341792499116200282643210550100887999173961915558567919122585005644583433124816459992517868489352664529553789384498619331713187986289195938382853963163239091579825167982429654778751514431511675486515145188976252215007574396242898916920654856431717440463094831166128955969784988631656831873429297665232734816013046661128618831161769186467963802155161992095507421201001262800126441173130804724504325521066621928049692143905134304471044421352187682632705015117754902266990337646756144787121585581767142966872949745034773398007287346505883119643030888684942297390796803794420115836345864572547478596482076606900199903601461570763617780116559584562054877771552238241004051229307547193826177377191917722100984759801651304477049730918287395568324003002285686244308634143979574764846025173560881953076580469315104225503985106598529178074626146133157142931424519894963996716829870446371208726982168416599292127534350517795631346114480889850842443350964411106368623889839906394033161891252337265959271766757552553207161719810907435402586888419150960597796199631504143159490531940641112347459294984433188847462591601902968743193818757738785826980934013958313679665063841996474586920976717873777994553290202366676395510274201391897752501032197364558214688910084868278321586795771583378926304233274866290574188438354114292259120369452853015639924675280161621825934469856409602735676887465416812693346181951188803186495157769587167471556787139926266858929229724793133336759471972644155362651425347051211286968285866633426836028694992277669820084976338111948696337308957073861705969709014813281622720048298293473534024933586903021615460519327262710304787688408513836334055719507569217265462422032560122256447551642742596919795442468813245665567169645549645637724106595695896500422935770762815838668716252624284570633240658820575815802987409036240769890810471693611486402373814578663737177073207512003648809824217962425179884756232485034198148713824398388696640032520801926572647029351302673345540370927089120283068874510715669770096561163586068751818278385305957244088210300678273168111380249789431711781464002077436279224847361415153362985386779702573526006903373523947164984296134934186295853364366455948070529361527831412097538453101855567179033541179956211087161371833134416582910724946791665361394409908881938623884852165329181692590300588583502775085922514736886036672217188432927116251504395746405001997126754985472475698866042239488095337343790001300738527855237886622252090244387173696491089409357465753104279804937150506046985788463440850905194647006187193433706578730426968057356991441687320185060054959225475118955651936800466866976128518090085667968278823476476209133182249234875564731383045287457831019407206977659789242451789506758728801930216597137835508427132414244437841143867301303767523546433462098622593163084892967491007773559506916335297413936492316859596202182520635930143603403571568770248631864243875658197926444962743236090766462808708389157831182506547868354550784766168566688908856689647372324177574076157904327732786294490707199930969397008780524382850332251736092287542670060595796969272209618059592674930317069093247393594798796142147451039174022252594393190481431255779636012632023163028955378613811536718162850392911334498165496493781633180289020981080947761874364251902071423344872818610760192861657280727390345905200426069639154773910941192485831001989826517241957346460785549024796681170569244391025436507774056027887701109619004627220837917659536906087752842555363957428199436209914823603132054332087380646959361542745639275380229798212938924581607294365620742281805838389822324989462000701370940318194887246998044001899118908431067494234100429106767641718067028463273119880144778634223225574664174402403947033398767151016867934087585963333463747304414940634528608860839453437988258371137329887402135878718719443312988567196622926150602444940168878166754051200604167203240320891327155562612217856639369421251319109179434360096987167623883207151995416420262103748973299420545513718206017295499042697920834480586929572299140558286131118388489016913720410473336387514594096681741519196127623601566922717091151286389024885704770470151430633347345892507861412050709127714501766569780594446707368764338219478013626696087667172215793255273264728444518076686072852943535787632743841417382840120663547502507482684764947490113625148212267287672108916688201235360527757760364731211917072897183381250006002501075529259832765600132396285479180933743683137825495451515987285965625775525125558958814365694541743493484242242505372330090157219802244485756558231975812447737220523646031472410462501470112434665026363956054577053263040767137727232365182777481120595698289761715173142114736629669925200631223068597179610224178023676149785614074736747891178803566226444501784270909564648090713834453914443478439130712022140946898232339201195120720713989288473787124966263285528530053991912866682549431471742765961787976135886030848411607994194041229230250925439447000436377351775171582077133200654485928231727262983301025590278792030343587170665199617106941962801458715454352865161794285042605019744506130552820314862435098339989313532358722654277911405942838073149684526906745374703939601393601794034612439264415116163545357262974618963274664542305190662102961990462428127938562583923782370795589339323227935715257712373559415595367760253694348623170759562744378621066404504646349311859526298017462705113323723057334318330801048738085541629200810954320027804282725713771745366112647606167506647866334056478349366837955228771679292643170220510658793742730623676845207543499526767894738878806838281147198849832278220351297481776898709630047226875140687972845405354792804806371042256971162908239127823585369364589561927168621568411075700897047378069346525737288225415442116685994991270809454331316595911228241764376713964177177951453429755867077419122416105768874292288950503335612055781203851650033829268807092560610051525393472005160360853543316686252614086932971990925631648577489369718869209813800678897393121484696741599976773115128206210336962330596619866938106223636757027510183857652684145316585760818959709308011479096417239798551255944672448273652988815182180478267070163766033567912040101699682475537894153513742678398835292931465796647558253699722185551908774201740796444075986438014364355117979600604229593600174106628966398691278056198650423548051678436305594349213109409219465842956117713685084975314877190617813609621489124770560482462105006660801721636385466617918100981605912227591324049836163954878646457476820564749715743001895285329187606363514896099110273572673942720300146238493040840595070906565200948572180813835494538538874477265288273386947156567100678890283394813628633140581199367457409204337808201005476815089656327715013537358904826512629188154836483678708373678321923774770529189275259558475499599481091660142742655243531477231518875528032874527699659338885238659609121600264611563114119669363741122551877203652505462083846271870025524846312680639324236364545138025444775791143927920242845310753251782570655867374719836308733076055281289871244126310516486311234223779239828511673557340555034804188892500385640297753648729480117154063340825004901520769743430333339769654742598852986780859176216038349262795671014613085747894205921985573823287925319916265923375615739117282863053696138382691716909011286176672146064008988209989512986774839662308028453515210795109493529364926397573813489688945650908436945537499429698482094673148748162184927866401634671840239067595172879739227217309958170106988947658502345430702738988156204710054597906748962767075803492661732065346895460040874987064548203118411923633368160597481924284487128607354684437577356622548081089797374639344467612362657568159734798157265857638818793204868579086455284804329647401731835307393570922317505781116315174554963150072131695608232135810825658106289065739775140689048970232113497302725313429489506821905655772249856747848201569606090358344946205642783776686388845598808385442770011226895939525833456194839760778672234867823300889578415764628952792946709165055998312953706291003909210252137664492574518443984233182259255065298028428367954941892493103414497948033045178520821746968606050184610210514087283759101548185896485907833871086925159974343563919897828422407433879053508210245346195277860373148435721003475084506400753509240802569848514465595475000718528254017791184130024903739783595850649960145629720538992513173290525641895824326972855987812748052336486852764877974296870559305380989154721702556674550167603926084663130760688360030378669345795667784400791533084683404888788424374626073846032502781912133910315161613553729316414780930873853200311034968715432819146087790699898616509011289516956312646821208509939875637687509458048758418130374865849133035193489430308379774258409381423006638414531971565783855396357569686721037647224639597209579642453203867971885455947084100789637237592380768088080227300920304522638304154723982882514589115881145678863531047488246210373420382453421202162204132206974318363676504800808270722585496050183982812838741102918748220238532017284703262780751913253067165240722254100233401031994319148443997943341994561845035137300718328184142552537700856858905588305492116521995375537499643342513703997046920545190309074139393285828301054251542161740966382203955306047338207087508855177737474789096760191323937501382512350659189795336120523616452025822322004588678076159875963174936257576901913617273017835790181021179819663804267741131590855282221416123913334013917901360728235371570169957129455298845485600682996213890156045572793698039148902577410727117090503868070880370504478706913138752904760318607561279130936441219796058471407497953639210691681150406173455651233141461787870795255640165932306968428544550320251903167775362403824426739790562377832220638512156152381502465378988620297062393803845208470712986946130415672116498294064023681311573285111827838201139377819473654626901530509589645885446610056965793131035866509806930228010510682777106473947516571831504997466328747923284380090724722835943397808226294463746559814968306367120706161812559114513935786621499758948605909154834141499404268791991633038191226779825630543730140866349814278658363056189104277947408282414375259166973878573719544899225520824794136034769040841053432388978707251780926277460901351107292210408907277622310083054967398114787370035116755932865781350027929919933788653981741577932564991417788202041462079894143426386767761424119673701394386826496255156384421091705274905055311806547487190158955567628563800572183809262390672690279273532227864001234555864091696119569308857962902565773153368942333245588816399758122827123510775535932346967508647539909328560221874803194496818967586361428222237988571301727603214018459154817610212705875155907853896828213240248215386397380306479038229357919523303043693881926319619785431003082057706618318990668760337808228150881090619409257961726302750721910019946889696723570389025804733419874429966254242765059675646618182046108593601722425126027834022876394163981002998451910712646976812788457162766838157561337962602403123509156138904180681171526592425646766593553775328442714410259243760136430020201895517595189080870461337446726746933172082828090367748246931214665542432733035442823055944894349048065753539508672641559498855325329483500300596403337065960337435972673920002632368650826674258714113612830649179646409061519267216428971310775911518338492828290006227420065274323460120214190030252657228674041567757719914652388626625931054330862605047761539208536854716289988972856280480302246151589426397976452695025265101374569834929481206857313225225780899157381795706849528868802924844702429049789884957959867287731850302944951176940472317419711032974720500899974070077976333913850983907013156800842522625079657345101254237637264564458213010589972502986326097285741962542928290512566258118382546096219954005465272234934682766716828303353180989051281743636389662453467078837132243032893625686195000086780976503465242534257926597956826474744103310896652756261313550599580281102699880365726082897659759909258512374903490148239230174102994553851410403024967393925108764689244792100728588074814264798667538779545109950446758798131944871197269071135324109019024574925326165550194838888177547345860100503463806241720982052377066717814464906538059144824875954892081438363183600339019484066149659695191808213342157762239661773003686642668832939470518129386077342785837649625193709284926757736283070382676569416612502485136743369340927754657014577746503508446366952000176383341746152297792538737719962258002883034923331009047239538288105054238300670686049894865528822642644311329810563733940866396451791727939590340332908782854380400432668180068009543698504951847226146206885026545188917437290421379223170027764677566373445548243290648335597305840374661032231381626754054586336979391244053167594433901159694408630071568405827261676230221509745441676095184810231764772177060002477381283309616680215110826652582290947061173551086761932732258591302713006608108094224589418536496546339463960699151199585976223762856695126356283647491888148553697843558156187340700603407311808481388763905773043993265455453740280971139412726785752394360872381881537040871458602035780918513107969492992693289558032268938563293423876610458288367467182405692957860747021242585782031512651647837970232169321220345080159553407985131071032678083851496626102512536912269688361973546696495364968331007030062380638353335683319039077800426335673781967445423269738314431312242094351735637571629177869041693263705320884485824169708901153305588380873420490766226148494004742206506506026999964889928020761563265715289747277206131332295014846095049545849475697480899792634821726635747767524221225020698058938845611416917651361850528250269583444401866636273844438561849464642588446101212834564991677564183500777954117333142530722878473401359442241579950915794701844495026399197350541368196861707617519453134945332593891344258312981717839956357536018282537656963246382021243659359819350062387109857763232651514852324268401931661305617659822462887125230117073567983158909131712871717056840066769070641861090614104314510312331373921122721239039265570915582833469757736209625952266883215181988955540728533484838583742324685477661220490694656496344402321991614416139876962645400346866782295104008768037998746416305238900489237318143629665646202480711311467116037241508415765924875002550453795987237827179079029927525584804807368511988143411118171994442760482927735543151990961494893132732030786207544269657973758761982519147682211843017236307886333630064460771416188715680815504310337034997641063095639354606284466371155051186001746745487200755678330894830759732977598638626849928764137308782238930856605200187842774604882132894693103949253285111128794877889838046701545442554591038836429071696940060497180282739964758896998074085397281267277000022764822954978279400899682286224062380546775175859660007359885537426421249514613325466710607290418573147544639411977439832629699747913843801236012307111508583041506525768390114070599212583361788414974027334976839279129916403253224405703662157537570513427922535237467589904348744909952742897236445172857047167840305687611847049930325881246342253532942662482316044763147601111986052088123260198120607674836390663893069350251828509444587197121204133823306244871103474941091791449527204994172442086313389020751448402712657859445016372529681899370140357556764238219459312475376234050057387119218796447736991893788196247008939817600226426160850751325698030543498926448331419194765927001737584652174701067474576031571456755848537184625988783226094787698047973516806174271774424328048035322379521423430314697196215075897092817638043111893307322548219728565752016854164496312501091122733369392024598236860514306246831250207536944718315466564768378595313487105273208158112448626049877801646674447018492674054713181461541312632565678477739298520848653551836608555863924757337119422168527158710737520919413912898511647745201854546367776345568642807840247018245152590075565091531182698102706184517818601294516385856389390395677714649865123615666965616793237467673903012408468347793976135642811986606297694754276936500775794094021943823887404948811003891964885120783998304337294347474320789503177755519949706782826431540121537877933427671353314431081877330900167431381182797257814962671592090104446460623544022424249867711455320907018305300854989004343772846769184819798448536824080818477993178222166856623640788678555611376927369030996196914961178986645668844980479303194740036213217557897509821148187487627716458138701949903604472247991814454984840756516954331612412999498277995742824306170558641285705927713477347986136143325385645323173165713351754339460801326258991680170975925859858727856804068481717291021927362189248257144466394324146075137016125863099853834356051445429368016521728325324034428019798738466977585932899832973105225915016689984224929962795190973143836054358064131949650885154923695100808792701276737956307201492451666588573326390488718313872055209755448094760076682529047985201001162322558044517187119113754463046312007120722723340573383960475943261271529354558286707982113721346106134286276109622127690798259381485142243030800961161139025620832154661479458818751756350596700911900077291251992232457940163015448841345344391847026496597628616991525329732539450655392275451267524413649551219916569181645549842791670294922215079711341770550177762993573604176898827920700457595587418709917198209806545738051600540323074710888439619163992687816531184812176439695052720238286253911455526327633779658702173681686056955000792623079143863860499992966295332917742190767447455623412757531399260091043707606515540490011041350316002611120330982842262008960446894996368792045781461215382080135269145690003178762793838220318174189272513753340893633645762161673239041798322965239925160505739108032826329499594975326411869497771718521128920436888844439321739961124834394342349400878825224464053925554656573543592415795969633345766792086227922143493866447027151554216314939543087533567682967450881128960521535625316219670944242637161271731189795687746574960646832534737436154236389492023930441613556746644530718761244756725469002106361919259216375862832776216581909127847988064155164991575416854844428868315655928342087503039028426032943067875909446765493781988069690566398154488982666582606977705612237748545949917132794925581217524343357862994560274819206738477445782988027073054384688679931815412653927322431122956321502092621473351189005698500713195677552583272369426991862986135939347290792808183518624081755140581719424296018217043950188253270672579047969616765812447243873747310950572192292927610870731487269641900029344854689770662933295335070515047906411649895274377677070314863666561859868585524822642635542012611187078224032882793165596908600800617982932504692775881484302535652241662729264847535225047875635597687864012914346346161258844478514948779477621672607371068455322608960258753125366916337784811578588498021971237113649964516153430828132200517835179274048624169275787370653940388172128389208319009354039056144389421807977016097372005335304295859182531135481469607717057622445773674232155971536939508138399943881991780358081189475739598569863375518089562415071129503516165625217790924491647313730946188881833444608121908212145027626463710911991181710764135221573651011305142315863685712587565239770448773712972867885883381505515435237614820264962557531634911056843150939832395967368737986749014500097399556633787842633866917949417877135843045104373887111680659755886612127080183408969113840930560196945627449513636972326941374469555551763847567598468951385848219544752818931790526067321046366054621464066161862465438102589069395859459477782116686603918459057290893660139954049248920655765285203719264519271134616985171055571075473515457679086912167614046237358144637320067805790634072160332696300368581927108736858089208862735096327019513108223570169571189663677498554866537381280857598040451450890198961936321626004639674945263053837178165077545867398607835831908522982244017437286726685892445899117272693538564710371465684339916521883294676632558580628157295945315044013948660117549737717537343987406870702430035103641157499286255277496875370245736963985718641911937740170777541239271129892491191703822728046137211104230789359161905956999452604840692950806645688439616198289175630454914834124148630140097099975002396502876931183934213709047962068960466668651362818929977933643638355993360646921086763956393743363368446102080978021988324715831927616767231495272657645299445964130423276299194513316049278983540798416801659475852010697285522380483191806998687460711610417182399422645950330076149883285944509262165745675431670045164059056174989129595304553438058857462356068510888491364174106986853095212161983646563371987551132302164694253216016264697170102025785986507591360779220036924460660146318770054324999108839559526461859709630887196980380692571701110105327474307323731048631795773749950370201324953874906032752358911338512564040497108088635074164338035558617106367128009238125980382780881970074050645599662500375094452191098149627926248245991313907444226380778659486258176675184571740460901541511614667815199914691493749773817112999474181815836223532450126747537309383357655421092084312156776452944240668933364008479334767030909690993457658951109224359935956007684005193008460799105115467721560173528088216273911437588128598006525075054915216242350585343050070264338096833492752561947647113338655220061096616235910714720919828644514922319657234705956818652786327327290620470366170022333545878609705490137861917465753743315083217586366933014578208933858617487345787423738380155775368770486995549236009730819470043121736533346393503014414317415285476139956958536055845101723956569780938908029032925506375114816472712293555416229089786766729148947820404713694895180724426853002489470439567543454790694746516778982289638882144008844056782341992274450048970226715131942893827268018664255760560991784974900854715805273159263179760055533752808211878188566883638341759287355535243256175631665497055059938807411432914502827140379657380478782827397458008672093198151470140456988925116043448565183845577478832622210930304969627068847435890403948857752901453506578392749671597795112163845240403357191219678357815385881991758507090299747014454830444242659880936539226096407266569515530961218702285925760284558846024417595689024082749883873621071187595234083495263841816292646992731483932191150663967539773067844776788121744668850003457542814938705180066273164876285937190781444632612036299584216242468734171580637317487491240533421447520416820611032352209146126589569184948559629114464647642587277728892459070458033183244584874511480794925377426460986359220148244536433871962683517809861709265822824929410455958696496703396216283762322889725116897864398230184362853538763620936491937937213522208189387550139562804942877506042995168628683057215902022448556330477021276978149208209779410298302748264440892577589944270705488274294156877698117819114771110884257884234379150492423396348397880504763166817150998827926582232727195809496560510625550817652769165769192926325007654769894105519776349331025636463844869791394399740201074545757061634977668753487430359253873063912938072176045723881535994074526054899518884902894086037448877933344787345045660258687772903628923071052881636053708386426284526902901556631216088242166393164663980997856165405715700154456022793470092701802985806291515188087441002121450622852475904270577033204136730861368353554142459242818989038510963657466632962331898146890463589400484967765496613859049364221388220674777662732367288614873846287538580663972547255679680192099961276029566661525864808079368213650806126955284168887631275814278455898271077259691958078169668793349491602780228267925447273062584813045655321909017052976101035439610061274626976649391070497905037191966895097421880283732553723941595606326932665467452623007810742955465782053692010853085545979567790498261398303442916363215404497095139743633435287093845945745884856754842132012159956465934899876862286874070947128835917986295152564726256510471701761175468299791142462881561696754173701937546062494077654111697646012756783488638886191780199775308135501849807200324978351219593459588972080408794142315994997185275119118309010517359849606277955558248759589396633149831407433066842248884490232814823092498299316010137499326208853333314378923094432271967551244186402162722888156943908190384739558550637428745613519880452582639237509401301973512030031057805847560046920887313779296408159246889141441552375315381843405792601412736678674521812969084074096597659746486126223544589507046149822109285738266800821017332842294159016837811602957405843464291212357028277754393109558333242104167838052521394456883514875391273840813737042877698568632298394372363535219584265428588415984813496196427474324677117449919133045631369569511060853795293237785360064921857294577266555612521835431972603219108578404441065336896421013450979735826789280898737061232957499476511715059248715574382964345956819805149685728796732098334638406395711776024114936102066202339124694492003742900427338527201939212464121765053578525065601894537000730562708918392536172768978787072486497056020110406807621331792208120713152842085891059419706725100271740890624228936149747294489599137923384616719678980399211515586511010700824352732145902734625748550706335037725593861319481701630058873269658212354110078733751529481399881028256754730376945142838759770494531698648158431743801299601033196336383162694789584968975340451035219228015751322061904099798042317382782623394500311899731738794974978671220224682578706421931545713995752395893099404982949649007612966392764440440752991288008244160072652190060712189390918785619997351050215040636776578034061845021593183837313664686752691853278838867638628964621494006939860491883220562451613926861960411738783963799540728222304107971055358475282205845470469923374792121905165802788333195930765988707215497930101317230959074594326213191793535791380860735786694935576446183618050791667948019009337819813655597837626058623856878242629134303795085465531699286558985807226838278416588917641999510081434884757827263387688408815880048561333361250761360557528838155195839201242463913994213831842258630680256145991147110416320538674819880344896588127336750225127251970057047630535892477568826194482866233548549178524586089465565272928543308891557152074859330491031535359093264067478262748568466060538972108032700709683279959763057527622099200291992808982313227495231131875348629713668313905448751256906779765799984473705042318901897409049503663844806066762829323518991445507361072841706640858329712973890377385397659490979068841501209614781399385465166738373273834366599431417634779803445558229224722232231706923727640334635351718914504016745760612284125497058741554557037174851212304472971444002108140591519330039717306238784066432407721075745436672080942933615624660428154011839707448368547157762473554806207838515459424764883283552496556859280761344792425571270041534852637975663004693026124334713901187790726591059847595487491364679672404576900964939036378348983759905112085107063247635999102374855149368405717538187906655424051276705324691518816671072016678015012319641658724246682711538205602812083747942077246821435820939335063305946894359071024975623278554126609076863181447584028025358631094110129738836835390319820446923292033119824043479286111519519538753992546942205867062533615898954715636108122379173007045125063547297129012029754394171763092897272226723544160025140170961906408057383531009101595950274128715827279814495533255126240709973138842989269683455975769641418104805485029610528679583821179422056446617365909939020864495063125593766193505796013038646746114340200468445742241112413534110935636802648210019094789169295596937741413585687434905913118440089508389728373081284482882693565216873865422894253330014993315872242764839584720634067373594727822536165034022732806695581811358209810828868114298150829151729681506695653709831481721749323094746394594443170438911876284452980967672608064490980750748725493858475542216548409250324747536602898304205163904984594505537899491072819490184783735577057976801158270704281014030746900777458721967491291330626918964486078102860472647271030187321622511184670185792070368970037762481387147627158167427497221870091634658116460212590491908952009030586778821936149154138783951276174881443620110304194305138344414689186071393676418200085837794691225568919949086249928351889419384675503053180387500316406849385012246210314845862804820793442530499339648505022168582217821087552220211585291835317779309709881633722609520036424364233879950597245901953460309933201401666842039409045493817191481210227207100615340998514319936615591471295024604581709611004765753649598837204605325444461147075548924068995655926785905022779608630223359252702455689808151404186189506315947206567376398778730125747041921591690223971042285747663156777257652582653760902318684811531991142839756552371351094596257163285703230493228708626019885747802657603936799237693773145454013857287165657766015608410658790078007369011736991525260501132471800248673907953125505587193602816461719230850993138675401228445949424852544040408702927681262497631764180956179913247172064770776998867383330339076443735031750274104080070021331696302650556747968580130097092036290955127374817489235494996134216300864536820447911330564736230473808003293300571064486131355150682661732640760672580810695454968539031346623383284336778172305127151044022981493158990417160607280605774114038214474161657600463698726230506329058566260340106171496417143603645257283493553819015708948520692141445439255091566197457384455045090869267828277998216942255144701028360952208547141897580901955950033265832458133990872573703443588878195849014123402674172129362033554928714913646299652939688037769406396908018065665454548947198817312933578999542353148790122817294851004605388994923755462541983307520034843503232203246933357208736259909049690065990549288637692688891209100917925010582288176112945591718475529440923015565047081424100148013610686658299821535935901342452915547092575978343506364716529928469454975328609794509304602243609900536939276447266372558786482731945112024867991292802409979841602121494650882006365470449343236686408319549502067238062805619055687765865457353787013978047221255252342557017677780102428082749948977131367137984393436060506606963859154872502161082657494486844961967586006895601062914957675922602811987468099100182581621925414647385096465365534211297146027120100373422884778350239206872575624558795220930839953617956620730099733431407909245832619390556278599115770693049353397316133111272168094049750932268015904642683184846500793749681175736353579448476040014506300884226472516417719221279226242162532585772677240782545768013045770214513904366084741468792767504843237563240243060795982386718837221677630770548060964749737192428934184013125876624937217758938102842845692359248874777856692270566007796119675622042876292418834716290897707027401559675666123081671338568158313330268554269464621298641781806858917850079727072773431771529001806150539485650297046888630323383588079340646262603604117384987497752030247996240197707863536549498678490220053228788181964414235646713600693374348528628077252367597283031752264097056937232965509427909860893179234658846578349968636039319121714097527670701792021968053202425353833308476563575027265001860966673159858730519843055080291650350854696036228690663326051854525296659983686355324341209076309695366250938278668397003843837052271557888513575638954891386376201815219930563762048664438184426621891788584254115926082203992829667499305829301452909699997424633163170657065607982691030488448586027412488854331124255911796359452345977349925778782606089732714591841447708206324870926298226625914365260903655140125534297364145938130494069746246444044201367342127614898890682653530765758036177324449275734082632362434595757164074695249523858099903451544679590388711985949338899806886607093312934471901042187140584879715266327259956324321425728911498060199467342810773274523033996754234662766784916218186091810713020373854831484743723003602362100287471857392605935076888989851075899732337502498839626754868335741867297850742917720270135106031723776982838102956003773694411754282010792612713170315845039226262486221498239385050145943984119452062763407952640933033240390029021684578815317764280885017434640497213350668896060870655787772725424999294882106219281007280635804848695796433519604355260392243439342943799277201429906762711249370021375860013618407733172958988699909336097022710385916993844977563593376554203037472236083203407617606485211687263774511562519502404709102473906779242735835836932948933851883186795883479589721430357870698729818883204612677320226230286586509274547626904586215132897160763512844868954358547431557541832289652894163740049765288657734460411752313077702244764221228722547864405209696310176507139792865031798483841766415742095352916523064034260019767382583874232019784412821927145959734885388227704263738551879142480587082933479319799441206725452479354474154921341567367287393555572621994776613871739635556330247396362913435487741340065324502210481327385911297348814506965926500085501533413214720231969599025780181236456339564787264818280451013777004624586593910196982807827183469410079015463628096048517561852552902881348006737540864649527792108478903700129523813174603565861749576489237127431873298252460825942113690165093475715194556348951048869208382941338758409826289294766819857897809954092717550028804240278937719130208300162454449028483171715490955791651502572998889016851030826050786695651997183169515374263357772464632868002269463835619667106715547159041345114452350843846504873522361100791581490382344110567836643453198354515630383437639569244761570109018912159365246572057602940523896129701151506294164203064883831181391699391912833351338265795923270808014106289732103999790758989216536716045376146851197934046151456123301787883456772555840234870414693855513678914941929441662423773203027706320886479523352052066399487592811901736448483405014141695372077428327576044872482015655287381542424228264406869156911962999731111582820039570543719983830063449152752105937423319354133730621336914352018230219160930764202342143571792401958329779758248821086513264544388315812679804641122778467591124762579739761786393337467593878772436121721376616624193737337420380979228089952909951384126395589904760612879652923251237147238112878395722290168196645654640926275285685032070059790818827450872489132506325628774199716048617929874445630233604031457735411545347285052898958414034187814383297446754194230597865447788817485685890513072398292283794509540738092057002410189660906672416362579452483570089568474392336642299964938240979026383805639609127635071976938045537802476460848183803753664983702253322506753974725082051456168695902178968666715608827720813213628756431777293445196899670717183690578839879143379858416740321502880739570685597220753067636220177026541660597168489296986407529199966279189686260313657631262992844411487879324421097801747263080411039127213840512207075588192954985396212106594853523203107366286430035044496964377111201373556056580574543894651934363566044493574896208410961457536806918190090486790887090366082303154642637315907410541400340546898551937680772020502492599119177520655558919923523348814508635902900751013707171064450005102238854235407698136034911288836096643627016374803329639633744754192646141477109584225816676271052830578287811415626513009342136000101964329033424027312718516315826990655063792413380754546567828597288862895377838869110454749266782611779188110436812228968177890729335526639836000883852049958880334523577318109100750093027123840137651492879151547344091668484275277513813199874185880320175032375233948433775617131398180263794140831381274674636639541930536241209729920241563438029319049245637126007434972376774347818860264831847324507528243009095593133989762529143431744135765112150697115628097716687738885430743320075159463445006456192224103750456373187854612937422321952701321972043931459200610253936788679351350407659015129470130805168054429398161049304267431499962309028905283219215831215748067245810472980450463699507197023722888864028306831518490329731916460494814508408775552895116506325574847762824708604438400296656206480919124968164761433434237282586756489496854356832060202171548210787026336395613302000245737909216581292254465540549989065202629599452110713921394583405977591991032657083945797905155798107752078598027188975623046990956378355381173970246115472168426943929009282252399789755791269452042759549529852458289313621240727245083529114906526108934446303755421786419659589867986217476603306244588172889559163441997742461084980496241809427074344885061807887246977285584475904868825086443687331739635247327878503626212861003317537574718692070272509741946356200655956827163695929224478376422492139694780524276475242494428445353737488535448369731711604043063457530877443186485040368639898150674691769281956969625364012904473963782271312470026502514188015012736842131813365832193004678415220974432261771548535627018240941699440065322214174070701080376538141484131094350662613298371791509323020940383973061073375277154675971744105130781127352744131415723568525834484659812797087802707075687823916817105702338614469674861423570701603663572826023382944638543498334755333766305778244599740586240113887805947965058662616088906554397569228252489134123788034397026573787177681204473959503384480144827581953524839996774686637086284249168514379748275728036165114975451328194565808852235401455887798053933386543725884257508870648186151559222043244850161345234765225556914464630202455440329676177364944372999266155664120114395757950540214586975081567690843297079338123423309506285631998235393111609530718625319296134843868643451517233708796761001109067885073767449213702099844904237877992988448304852361547135151895236796813390320058298509742360929378888989545949792978807653580510368113537693506099165210747391693904273750347488098147057100623781529639960050436997917799397316632770329447187974268578267210920049951911385516647641485117063076444730678501462593108026644750831927708299659965132232030386848724532703178169318879448068623140875608368171738679701569639947715460138318376131777488537967734129578825690219907718293812114024404635333615153091311876577160120380239034437313304497030787200002408560547651104770963341441136087480407547165840601003897181568862912613053429341841346521608558670629760845751576264261963551379868624167741031555685374693076237300841530519990276315230733193484830485272126653145426087154523574167853604175024866859625984137231978189673296687021193087558715771373009876322728085502995404031945966616989734166343225534099200760929482807283563439798602142020479649887780252369242417527273389234065130801715494327974480837809628964266624644234704935325935369963709104949941547758824670586406833161340817181934591849697671148590588987693473110408991985637521131845082712476254874899433809347498020101127978121486858028337185296198682608465017956246345865803571643058935391006798440950415008958561111516712734530606701354656656567929299657004139074646160182177416958349532760363988340617572938143838293175669803832673494558286797874909601987632350979865471948295465598027653832554851141406834819067738305967533791512647752383519403249356326194218569747088221452608300636083734504786794870254992788319885312475612325001169740829085838653165478304401872053619315501324738539370767358248992543364981013429081949542080856303514252974416741657793024972030192431836891571885178440334960594367224593971675005973718405387719729578437768038517125563749089995783405931341092858205812679722712848658156690750521025710328214634674422587668098229478432103397965463235873600712950942051559958526294337860487820380738510464615525640434646866422737365490372793621490363774040983578655923377348448992730391707469657218960127451423260148796815884305802017602361289515736517263914646639572712214050118640317340493427752168689045410387141204346994834722674431894271438221917121779228588895883318661031747003439719203490318098963810414074075228990696292845824219353493244382730898407504288237714216165937202427726124708567709020189561277972915721762455527595943427457177755369945777423118549375769865809137910544203608611914736953064828180528339329204027425068163715475117512436524342941270655961419687675193706924107440263770018494547240738556344572912491293775731276126198155949032929884217873997484394172838757285919662092679387917946964852416459407182720439540597202543794911348495514191915571698875189497653535750880392433183153512473019849908160646300477333394435356397135397143650477838255670394650528776092909104255526423729215964967841084956986913483989152811378928813782765489609964334581460464235262083359873777629320557200367723878017255676587421622996563209659044953549396125467819172450996849923543338922811722641809119213646750751424939474563436732956771231299790330684388879434943727759739942143745668266206562685927567369742277550047381845872431534098892844538001546224821808955501273577972574125323653298443940643259388137142641788713801633746898993254099891622323622324343259730792789264527067118142772631654840808922516869731411291440088911386195012155904263280563025213578158150696502812868715279997179714916532969007283335546018991837213525831745630877554329637175861176408596804582164055579684112654845733243369990799221962464305385436259191348572450564318727155834728503752084426495799313083344971108551825981064232482996412980732986272191303201235371045744571901644827384769975521837074718645422194257055127493956126994191565828867979244227425962262230947849090400614164774155712943572962990022926929491674679440723308678370766132641633463481781051465882520888724260351543220339745360268490797223343534818135610920347999921997209733462334728690059411287166934314531926349720550879557619407145746633906458291490760286165991309676383617329577454050904463371177794187386398199363756571552470106752519980092763493829727950697795638006239145639977859665266017495061359975951914287190987618682591305375024831630357842859577727875768412595060322241236054531058469351269049900848001527226037340025745631526329424549038706021378007467568625847464531801923404189433812730068400020799938867822268284001147640678386747575549487491444395336779888114341354514378229625350750623204060121609331290862842064358295696411409101471492713279196908562133396293317716038471796352489281765378263909722042571082647737996717043548570267782544097306323015780825377177364748136738176545451243295547884721071208226954277539189189107344859598308733649532025589000316311018813879979945943664298804418072040070179327805818979750924538846002126742986417023133232169203328710537489222622154235831328088668995910524406511794384579417877017046799283123892177272589198097616457883560275722761082465878622933729006143343447686177919390456038710248546109820920426316911312552798062463916269932216320379232760049297348126955187283129353557935215505664684103229687216231066457196233643908418153209978780196705412242269341904818857378058719691302036705991735499567757497609412197305687032756779170376202584347210334653075548754354612220553573883946387288201050281734275026205714155984730024120557885354858765364727921990472659973698954566395205280196071567251079495893428651135572352175012031211550088448230202963672125736912962096462869630214110906366198617006379832879622925978989407507002546057772576080677217125191582257727623751837894083199561429911324053769253922646967612784890914271504074181079919744608184276605402199600631598268934036648786915598055023696839118586077821394006013393378481187757672086673217099948086477631000838447038161333755852634498920266623217690550125781950425562872237758719847020115150839265728561136592349109162285254410232054510812072114950648509411205768671244214890841116739880934226687330010432002620426570534374069124057753844357361648415588263436467331224054383685576061109539444557433461106697401231674940759494743348819248599072013353107853450089752006996691033236663361826616766201556363648244361065789443658579233361527535426759410612604734912336523178322805304865142897277191240873962523333442544267990304342018211518516417799766248363735331727908061416048839496579256853046598880190897730861897114476539015830902076530096066286212381294300906497498742276706046288345821046221500493047695890251168911191499747790999144763586073641396476110901960711115163681493007880692596425996827385923950984899771227240045790848265545160608256601292008780102093166383822124973207659685939997382022132428008368339927796926187435155742450954987585414349834963603264081715384282491339809452166491354904766425351595117314903481195053214262514837029850104594374107086437020374457841212724189856658239315357495848607085552364650128805431155224183115261061241825082323149952310879074891313463585476293123907353760203857144277604969376198441810859924474061286613269309677970897656449576574587318338847824078127084397923414549355536898853643183315704425442584888322931937402251885400803774131989329198018279996542335929317002949500129312572737637858613932638943005264233560347158462445752769026034223368111128496176857367187386323324058438537624505237771928331387592835784899523022052316904491808634213155150061908458116073733974722552417229434797091190751660743881896927880535419480059375013430338271846408949188217037594131653206125943351986173129900186569672452596459602442636390389813407433690780561620376814854118167667705042947129999802861065864930400040261816956259577637055147035909756389555519952502813217843080582746349273147019434680717198312734838864675656604204835910432985008027630795269333317275026327374963357582544048990676325798332591376958995308404806273843247361950650101898541304895247996900972217726916291516739487504371134241035605210001088353923372224562987431596427178739002851174128147578248642058691822662504205231717214033101440505512689351767163510172450642405855327300623751981461103145841400683971333815405852355367955124273342396472063287132855057485578689449344198675700468237464311037589757634130319067083806890910902752994202749260203284724222274605620027108052586522551260754415665993354862056570998053409489313012649313511352081412505857715267767728187759875931628976794404869287673617859638752042529141824133741572734634999891926180559477761519770120340730197363676745860465445988514245080589176575434155746852739635104899315507318054050037348446386447880736620658218570340201208090927743094207911499897295554490949701356099326324458490230508241135073188655951270841909192161041147973125222359130389910202403614034437769019303417931509352864429474441734969680343003151551811986527394347889057928905341355132055371849272870761412378980737822170990890560580652694173859682536762454861717710868753196162580557258109006288360791262162346254628793092990558849329192818722801253347400582802364471552647536245199674688191446045111599570721985836699189178154404235444611469900516366489249226534938394385440301641945768601278337652028986072743505757824001817479924113035231606205383397211624187611046622171325726862978867609100360982138731420227020583990359130108969470806192972220024562854957933277291492786464390457765511787307130449387103995873847239852838130312889841222958946603543517787089251562612249983798775515559120415327976829720702983456306105921598530157664948713246748387484819613874064130900712259773645915878025166493346216465654945559255030134281957466078367948146158341824767322395365520427957829734467661993601343757201915582518560974087865605978148508134080772612687135525457397465505063413876041366860654541194991561255723179457492901351138165915773809560739498180149125080150178332519925422204477463453651069647440413324089662188877513091394589455791253367474035314250524494796777364130380164450741516727439199340499061424162376149490214480756519107572498307800125659407546017409413701994779849210793668022638269552522067627402313967382480720999968862146913886718247118060172692561058511974460601556739596539974161766831639144262648814545319614833898518766100540474128760218784937647308196709105768313333297362860791886960231303235571125639297038472055449702515742597452473165173620952223538374700214317018021482254538041913193646325528123548862792620039673848523251880449379324671109904076633359540904728548211109736720599440005586589908890241953738520957038966777658528680186765732695196298435305654543540570172786704894525504353960977485104549515428307342349662665164293609361873124668467361985732305575053639293296656547742845104007244405629708050596357253303464754093192714436723310389777134055312985000558926214139880821001422643872283639883149320012608692211546146001023670243733275581086620885166681397963634992316757265507770323541520680137882809983288290290275232428435642609894431845671099733021618867334133111387062424185065021087107733196502028743015256611885553540980377971922028109993437778658989437151048198491589564834923630585621340913290059493573885307727217283276959830412884318589954319865377262372832941910822661378301288754934108131344580232485326101906597320726648135348121608726220346895161367664568682453000491697578368370788522059303420873823982199405981088556089505338361826626560126034430617815322813295796197144446705664419388305878996933866091309513323483846684177883805065554655892295654374108112100433159479967061988790677151731324164652820419597627606399031476502251093107371149317520747906700448054813164335588789517847592710694216690742253289651378818728631148691600117447643947263244239350447051981936996158970511457380474967639385039968183749519115257277643948472803226098119694816862466048530760369947620263339767561075841442722945802945114917100647304137388610712317527421832970914916784210609285214235291093694057667203187419483209885612892536000739937856375710014046087529964246432323495424325386700397885995677229274271875063644671713662248582743513725238423848733098401565221929670445953220717890460426146551598411094365351503448463572640521679206254598192903681412246525360935655138105638821605513333351420329301414473324440633634335144250049272356471522432730173574274008239853739883547567381061317673766395322202249716248461683561035090019569419004958862923245300201900895527118338082820571821556888873782375684439430984173272854051723844480971049043648266128450542887679689704105082808601939104313425126962464888003602304326349202858339495902840177754285449382690695806279425100459674656476203219242722975296143383972195854808532261904155778167552167248787146760585268079868173882213138539864151666861207938852810803053906644861868873176293286589637169678878561480274259762232161320695371717634911440288081388240038064256109527785193120392555677296861743326745619871860871142230924368168048920317659721777013249173139381234092007266039048562205929279495422075904594483065532705350396697114876317824734766071627468405404511411730607894648025478203631548784450272324632081703171924690335619392546140309870633898458340007834089516975073579521831310836702541701235900149441409450151448660955182079243401718169915125782574689037138384700381924784467192551213641500779197089563333352584109983627252850408240331966342717268812356582849514669362584640703363776875819376846372355046100665228709439133661835615569086995022804271817193790015616799390584862540799497281700732001118891088962101499638472774892192513335824045689675229184946655005564374353066989067082942555990972944728958587877343420659885463923997833355052525516227471036171705197721687257131486048038653053204985054032654091077900618377428245412344068342060026433146473527694017407870582572403583808094800128739527024284595498150015926800830811239026653161846058449454133190099808098686293789967544276793236585458443026773009491230858899079993642532457086947620394023229605028980064154097103090981305941124363181679847892601972779690440956584360585519086756159665939794737736315476694745180850345119791937907335582975751295622872867682287558108414685553238799974961284389847811869013445570840972258401969798569642766569362424242778053237698815402514460182693303175826742306253380678262410365098274069393831094821537290066126291063564573726052431088366079787789768064556620432987147522503751803230507010630323255724602201155587404950832687002545284025778862505762173718309968378214165157904513562676504531303945647050919060310438346450638698611274807092603151851291451272181649019900667054947765566938950740602481438659255508940754541697373512117429084407855137442122345318192502165272683817444556151238694840782660944597463574552320229046997853883251724409517267958306839557804720138926049969136139459331472447114794171809481992129084629227206731497952578656759769425740251784282028364390781631613340425163885269960384849963848491128537802568035309657881339764416118915274886404762402830613138766140487312014454800842500657481273234519689192898415068832434243073388944139895685533464439142030086109708153950454983187319088489670338989128857830783093574806795351601674715401934906861505542076017030971985980920684100400810918720137684418571174801568008049035966004819882741403943065444286654836639037069018798543717604890798253543543990580490949851220071423106625208136976936314434340393898231034068079261386365944351923516820554410915955646670136820521251197978342920698777380839943804131406937323056769417282271409975881193619673319675769176776636682823826172471286777503997821942396621240473499542293471043229618528128387440472780803192177257028911501861178738414947284134841146556937133455216786336691091795799102200243998898310934918230214143915867220637469779418489360679530118157561273835542196555431864119478045238484003689214713785382356206219495691002667246464879541578525089164006859324028599348776402005397715786082422944233076797271219912317671607198533692254384351955718207901364140045851332086630546063923714598154721254044283506522343096589697267556404087365273746987146361074635875477967378135870697432566129183340564170996458834360960942436156739038098503013257216055422676677543639063850013522905651094539228752214481917423493171130060822060144281395100965093569517445654899185531184997854593846794688393386723671525254926136893806289642366536492339123464745216363360553895247493579305561760865085871428925157607575815534478304822912144090448998680692126687919549340366802946866932443419318225633323072557011965923404143411345002557601359050376389794235237220780049758842887143448819781066565166681054153515408138443261279170289505868075512961270023785761762689971323120823962851027048180081034550360843239591740662563643474114891356178705490032239797239398436576487705306371961899469304802826861664808345518438477548071220554133704559232138362841343304254618934456191463893904117523057260562742092621410668493386758980542901683679958392870108480585002530715520937301137302424158530459919364632628868387419550527891513591653253345552447630213420769390003413761870288272746364961580328517215799032632795967690721584270877905879842045858522128225130998721823146085419499323448918265286793459069233782288673320873591910612218992468880773993135554210181821836508914156671910222417613343290263532300829647627496252892319871911245820156398029545098620476453941540667739242799239855438236099079191056074590914116944913541997043263761754686999001339317943371806829107421966306490533842403679848575286820195926952981498480312840688556933697756961120702596620421604477863392389730397800366992378385811227155431575789535280784937015329325528887032846662525039327084730254416023690036315209260768438264267808757232299647296249021652761121458938442023725577612241320479728650944705070903105295074311007784432634240164820069766484731539325686335614247370307375878138752770245593733752862954611162756065621726533186808331794913874605536675670384906324534377089078749569497119871709332217268487406237271463019301121069819074072201624967799174514531578121311858151987855807580837475198641897226569071831821094918519251908338242830313479823570193620141903431664040580491159786257334942637680820821788018924065078970478996074898696356516131168794083802088987655625407324585099256191413132778673207449225976612089156768911182523395213585042480948767957253125942870346074303222786974873320221777533623362151930490703832751444086764879337530490154795188596152944219482297822536943650917466690654535201700239917779330927075952895736857569432582948406795216745896393251971837692276481124364187544918516725443276891606027640680056014548386607653306567439346883508701409864361106751768281376280726847291878073773987953474526905032272591585033451542891223958926878487522095716605432783849477254700309556628392149964619362437167204368831424667363999298485522574052773891453520369027140728975632972857813398281827868615419552230226148474434473148728298790027275421408130011516133799176567672891647829567879652439783095324856264650012998169603816677671442540722543122163312545561885368465280745436501252682091001287015811025102798962249605922868539241685951642887804457182546553144293783768568256482534683848125023330101885792547048386926740459575939603126633670118123544920226012701958217031832691943179825885867658120692840715036926111570899043172330193833137932853920828218967025539283687510094140163709344889243812304727000932866168262973448015607470512625969802464719538534271713637568152094842729580398387411596398385068275125782662452613312385604879811754213493226400475894844526980511590538505543070072422607496479731751552493221582901763325999221421363812346321826121097925017878079626106087462134459796538663425969150358605403096557635273765965998129481355772301619165504414153674606377815888403255026062144196927868885239956742627667353849404750731435535892165762422975250172642649776308947058954529956699103825547564262805359872613214659539535631882237433395222456533723567503189579822654905892775940657716838171756393794583534819226869823137856365375723971101195464784785356028447126240020902911778006352471678160652124104871994717407763212273690045305040801051592494578046115629688147237070321331176169743596923926990593223924330968688079651883103200071857140745922811569107823577617929101322290505236211776368719508479386442256027373986226401845173352107942436257947775064103055384748434716728459485685149460998737287738060633344942144012196734632182087529320862004774791434062316226310275651553452549044691582323717821111550848894301873959557365597517349401889578720368572123046008521903295788840086669989950243108873752231713604028865124083643606543827276386841870347667110973612405691502825794905869280447395159329737974079435905276392263331987798520013881347304487698591130828755563802312918067249512233948745189815983001588573608986941095723761314134261087891073343158340694583301490724435238576967896354170910257071103858627430827592785064511771543912206959941465114424119386186147229832715121170525718671737369343069228933917710532390033497540821010083068903710879916237742762040209945524679452799522170494637016423948370399603067323781261381478846748438714324285725711361158422925106124867118814131362815655109245350991949548557725617547812957004775360458395547067572147585057954035661678633751646717004719821327120057675101440631316540888184475033483687316556439494845606383435298217358260725428575970831066947444836712628456343517573529312038973559027432804557078345075288467074263438372981771210972856145162257627755367641002107870564159908184574125570788677479510433426494903471477447907173246470950227962955526077284071435050042520549172090174261897192751745960567314772353516253391614602298948948469603765099082825241749878071889299581910667384405430912349816048613595555597665467202595811398647090754636421107711413006440455610752434276127175350377272772534403928430401787654136536301540117812545304538657833298982513229430566673844247800471109555882060418329704540152769419222727965786623017503571687290138020743389788652166690553582042960723204216309057579513382688958593690808698863490992538925849749413821683996319209975545737950648413576832736751855358617035850625153787328336839218455781309816112421486333793163947961411812254863474048605254262246650624729934170390425997147112754657279120944227861154118441908575480965397426634444006712298330195017558676380423498964096358820591193858778623042594843431244437516979582890410117169550165974982851970347527013405612670952751900105617773149590933819194386128900701178031695138296760657209435152128131809514373649614119259449127768748394134285489241987373862639618546198633444946129328497907768560350630466226999769459227083081880627200922871023680307710754429181223300760029493636988576262211013502846646512921626898846997750096163079906407320415497947171391907626102043987963264301857828010622277299036471347783318410231014860129211498476455889158096462630296947093529870349372233156100932291473226706950902410767207887793110865605751374403651477963844209955693552042540751176539985224818738594753686084419975814552006760449401017108162354859102479984216971778572039214276935203937753883549540580384362612840750122129584322894755150494883474004641318998802987957490786534718797917300961269633892435495020735210402079159038205874458335601467264093349102210675223500034787690462149378636453654922152795203238230095774514687686670668400428395382184906851137776569678376500648252643063776599871975016526767214729266486584946537115263049475891338755854368908816506125032365059259293849742870124491810403176433915318886706058122105762400397608449627298994894535692287051799334149136616935401079770817763897234981302797730914419983022600683336508431004627839219032540489789643593690902155165213828559805915847174291528073610840691953454332676681497771938399069506876808153781703328770505784844091465309052370661098321208581384617365497735550478717004269080802904635396027960082818492787251621738357251282735122297016167818328129086522271219796982371088871667272565481772205137350835239113343417571410125749632663568207215393063381112102660620909542050795612802824758799294953648106820313863166573794409698971044879639124734275232843574147932285241078299327696395201062773461269600320534461448392544477039661683738024821093602935720403252158871936375081420867809894338343394480498488059679952615982949130155999987825922856125525054679285317883860697870874881296485677303838963781306982008654735807838208783510031891267055033658548129681293100580858280849831478620917542026388895146154414031353396320175725788294318873825440400393577834055121378261303227002418798621272672494531654656177803639928384545500462302534000751434343286242549683937046733918351406915217469914964219443511202087976770601964305359279894513875319909350088885176507521086522017591718336890668524280365568450262324125788384815432295023391277574906187021921667943107336247665971089201356401583688112697153562055117986807701128040144816520031441633498859372187750256529270005335201931336050119319993055234024983792170322313556049991424494100769254240440646793045088668660092134233074219115085421274383358110689043464879575555419164710415769953283780925251540904946746301267604920557331994362028552691926029011998689703685084581465582351007942866939801433211471482295369199443992543552132800831666984703566709369998466693870446494355016620849920079718879391233794122483702643519339271037741790712980710742366896534609966752050991843668556690822909448582804112667974142541597176718557858375408701782673978985087841469678486948822158939183165233388341209195744442313632705267549126387382877307421213320712050026703635060809602179995675354465137515229748147599728714258431853108808482590690144733377903222799561530453429915532677328340724653088931331950558745357062630017217263014968050784261349595781562960122818768278914270469843769217704351773959530556545794657477501072254082056801113153953513397710394354894120335935012310648383462002937757575803135538668592223746204017733614614948728222768556869664070559347096191489876175629731316901049945376719522326307505741158727659536812223023519828737135958302384939386327189326560523864073851696886111044372625106320866772523897028644534133361129097754259285908203547843494859934752301213489022968542948603133037006559363733841579069304345759400696868501077899262196716092676856645083795512214542670078083148564222200408799468821350047713174179393071656510305951349236571608974309639107549335624816334881407731788090072579462726346201608140784848057409391026635406422923120740670296933684463192327980093762821632889645259315011734207999884786935043705300147394291273357816494027114802842646644175718460197395490198029079468270831553908781168711157183130036391189729613831474557509761036981371587387502541796158020329771365009662245566092465995870047563074310382383698588336678487869260059782602739174283447667769065904544754755017945528107478717274101430742667678759194866159293121224030818984951850964206766472334237963195079367288188186147592763529418473452179820748488819316413713009700079904049372720795456529649801476177026359561490337509017879518082286210717377462675454304408105818364603601467924606063311689069941906365813441669945929408133989357810002702647979703003526096454891935349350394087953412482216398823354206861931006583032295772562882817673144376361385190782669828118374941988425062477147359198660720258465880903220013578276791955147467389104209283271599996302601551160599854960600598779040562407230983427751741544600918857219375801424132050980946418496159877204675373023883118865765890155094686866312282054558741409489828167244884351383286259263565851759095375499232361947778271367162526797742059319257288086400684380429619216089055293803610279295788760767937531349530520438014021076707304990272456788243503506266963684520174404449185281492466875362482450007913007150549885979564814576234170335327754620538147854508137904952485501964809209783010892625224852842431690479111067172438827254780407585704356633257961461906601361105572281573967410259784786745804475515395229084556674770015951637384261975695090019677244541531041314110165826068597344433828041299702327687426136188858494141351572914532754255282994073667749896256082621083123462292559343937818191843612249711915176812166085083349663571873578396229801746365550101593958881522018258939836444024330206572639041599310445963647766264865022819434052466917131136483573443591401870049272382593951089668051028363088811056705397415736447358301495633518876809687891699146238233205889767534245712266541786991169861033201454734278603187961032685049130896065405182508076862423109562350178987721590104053218930640221504711967407815990183400086580983287866086233366194943106031813073206371307983167323395810070346690756841493972982220735853798011347687903560323801794384231338090809684902417344499597472669667562071136923737569323722131437566769365509975782656355437849894799179328076245298137542941681254046068476429205612277254190880103360446899594556576099981205112219622106391089912504875911162859394628255287913220505588806814417479924460183972803953864611723681253044906745090873124676984717824108319073110825080063756986719346055888394214389511013251836520466346874968557366934906167127476827677225617648898324617037094961918177727105196571404501969716736760319338689227617461637267109841286545533327630500686954136640537412069679970867686694918686118809244044671756402543405779406007693508468725046290523364487025042891832371563565472496652056220237687429716093280836779619808217600893942837912177443713989967030730085427415646547927660003041156198076135354188885500979932004264507811626037746200886173665248498834137754808115244410953368344346769925273307658109224787877307772111758683474271633230893444843389727996464695855475850879659587204493875161441336449444039310633835724630756104663496822703501009011124464587844274426580797758976142038894565446589815891816729296445538441575740693537872165578417589290448844249546733975606586986001751917283061572666230926393637531189293261130286069549312109590174303440304790721404464689044961817548228113739557773978610877316342000806256637122850634968471453648122918843257280527936219109844772011902329854852725792021715491485311573342639686006983734073761348143571319814638315876077462377974780781621105114316665925005879539069853390985770103840687223459608770243643226341111703023062072785798663947626724648504920657398730674248072060598364579631198868304705325011258874780614161796656469458692286221838748715756267642582569064940372633531330781869718300923645001397830851341792627837864598215119723047804195071806752750800378805333918196235512171241905390923355872870451027919182085460907657836641554439757520878811249648807209992573172250632320326527084865156292149159828837712617765853137228838515401383875964459020251953213085634164175562445880991940747223685586394676725107431558340943049405714062220930398149209055519627489048167678935579364276841561297823269678780887732254317366513339372009120161443970526867098707389562113046229611525561184709675067854514699457875543567943556166169312369419592705197304919953733716067798700785304837550638827092242171241603183779588469976060510991739352241137651499466092031752032369562447376283874489780758657615247162537217609784358976636244137172548280451696209490165642838440203613358699638826136273636259976653104344768609482923822866955239276991932480676497025466558337065801439060479725454346791660461331246195431108946711914921242790004326155283624346325778754093941434535025984352713004766302275775253885071333776914693935890783738901869977870987734575669540643731742354163794937062795603167941229639535106281219271554672657022140444238011081276661962110796928957651410708742798768781000830527600757364011641085114553488709927310443886110675671304499830658029671434630428745210449088404349749697365416081198940854552283127437384271617882435543618969817034228691304833744645752651178968513808046400346269095936593064552913811355818519312709041681270588887842990120873209333209089503485002070399277022860081496353426392985009491721039002287854200380451960049794669744250051028598418241936316158594247844441479940232215291683397164605265311770530047915565181135498171735112688357274465805506853699784095194512000782275710476468460786999261900270053848444506401369172211409704584990884773027212349329008309554388076779975392022619715407482245862752733774363156796064686599318671248153826212254005753349264512986417620435592161912374268359973593258105482904195681742230277211514426557083797428904095734882739700634275507493700911336945298153788740661160799767802549027216579719865056322173363819970550954655061356842266329052413650230805600114131474374839906564982598477691494626135584122452813049805681664888891748177795270012808298389895182660119119913873018427295536011925332387984262561220585432731248360943218062431913364532643787639595307042859780631871471740900036618381033021358568135683664994247559911424549425633631484001196743056126150468875828525170844503346670349946408374110077586973985897228727513893131823155517556525407916337496933960968721840090272785719955248363133292280618747718511950235940805797643525311232655827519136731859879437894278622583982397857696008339615463420099732003285685429726479157980075975443060181826344807182705169640811996273951656674867200296855518111877001444395135622134374272833179164427896477105169350674012033677659921793396273640505146675983056309626456817917017061604268829081899637025331480655884061645760261877780841654510527044460070693791044174988632108986937330615210784248398407729267240827041914921469956130134986659667985943145549091282877228505839161858019295431721646570688835722070678609042075927883479647657670739798857568193871685245089316879373300009952179956412570930995572518661595674609957577158637292897655844380741354068158645573732198986906174022636405414206393161484666147984481319610748815098347638391689810671130885517744015157242327086075819797146512081260518999961196227890486042212768824096071636588966569934716127883539736477401269451548644125545014318096078663967608749027228357893224220207650200022803044713619106995562147276130335092135490006471288610981350516117146249492025285839928636084592821130820666193449186756242990735432756916809061269375034493660817215748935547337931095402462580063485450867982499727455458163981913368036083249911530196181648368628303168610239730051019529898502014836665655110680240017904767354641559234618758872180538549055138781955128235625582587981055200623653472892441774072431098652581307241015685410577872142604081146769317901504728156279817641273096364063448678299532832313186593329999386124203456016207216175223609265870683110328417365093383548474621471510671029351687485640809596591226705758843855594586272358276423376786551891908461763776751116331166365986928175145339059994056803174306338339106099180583558187779232274325104543973023750732094485040945364724430906575495086119169453815359987663644321799159850693335392021080756975113517617566680596040938665021881893516183013107710399671115033264787438025002170008677329602468454346673984635127976964617627615227218754547147329158722429055155004177093340769443043133348412978442919315739249160370421678057953700714819347802531128738515860793809697838545378413800769825141199777515771767631370428398794488707453051357341332513180001380836525253363204688446894237342519784750988099313529873137978239559147692469375743744480971174958175002301506585296432925872212320827664064484364230328649018725638897501657199588932213084334272812815662422199997726157908707283640143819922177734907305933025721259928370244311571798979841807387809209671631049014069405713915469273310246105374342738689252391425795555222690315369866443978151185947620989393154875410033443334343339348547255825394099985775306192758573989843577006649282231856355963643898001233551034656280403255189816403414852983899463695810734386057943540001337927929098948449874648575342671054776012932682761807532847937006380716972889683505899370040759456997253206734442503716225606983638496446447268338820109324708330542735881905297296582834971895576172613501306055774107098092891874026302636512177037953790249726157882523948064910152742849855703485272195539260026795822644020966656350549623730728224892799588575956944730271462253909670135230211178951946654442728382697731444325291734199332187992428614127878585665824640113693684661694013008518554104455242698893897809261631335302296887815811882014228140823577273314150974358155842934116482910020767777992030710807970706455610334910183354733504342573791992934439196960650409631836603248156319259746318050987060899380653183495311578593226175046778195966804464776369680837342648617367798436468065070658984631217891075550804113262463639607574215442208608062813030905697256056419966598441441590619528817829453670248238909139980732481933938918252993226945742417419495844004175068316185034010056273154923386930657661969128758434576811756101194181945534355506054954928808585903177535565680732799335944619347766398548162454802865420870242254629652712587985732345427787716291641264154111010173779836530287363882636428263824735130932416140701858383651961245547097491873428135252512640288961823309280867073979621512676732275613391249663278427254066007171033066622599360495528146938361329634334703848617164255748049949338227025691308355427649058449665069578743087474098733477052843677007683487936511825444701876975262827420239548735651342159393784027449442175977054319526201419166289927646661929392107008784259109573439266556824786140415302438069471718101528589616572631259423118323970420636751695094819978635423188718419431955663588298703595370725803150017237176182024701692618491624822051518377628365296406631285110851110495032564865674876525730237672073122192567149680198225539295648631463117068338748911508901037137655770352164481705392991455557706873901769832835418322081209508680617100505154009259587739810687238929253953256202162999919462714399839570256457912472701199692195518235384734529759875921018574249525698670628963706286823036132012721141502395593394271472688910637558358880322845903390596598481192483009355587252577933971282286104647595433967052678480450718917048658461522352964204835264275683863611122629476594615405515823714048507914551407791073129516142043007628732946002799100919405915691741861115154153003102267914675298715588560871739234323543297114938537499625387183975646790405200009850155342149417877383117807619882340377236290544190259795250645113955936014509176126302578136709631896976447982866592395283609216706929463985538664267569098391834249276716231692788532698894108350984341647905673462866937301710277338027904548189708278530846196770782060588705058810581817179868637097161205958628557530424757049663759248194077577078607547089546108022595893551362226122686088315255567461334939378942731156111784755415097492557395926603747039991176936157658456094412413457896073067018400807332908575898909141087740650635445758832138487084340396367514166564688520179659591068028908571143991279742619524113947047623497154942877227980296486360174094826706351752546504752564290032821868671383128886319457490534474231316041512078615563296933070614673536663200372675503792333730669888803393368793632334887730042149827855858663473974831902258793380067149064614881177949761581586991361925139804791309810032374480862093010263837646541230225677207665600245169873718751112172168390638532619695475833205046159261377161290664766043061584566610521307522085232973815277645500046482433901716395413441370984725884759994571483628960143893652320845053309029298003814352352142563804450225608813996025569260390931831671448273322607342667775685760604654224844167663816909306800158511967668525443167701712070676237629440513005611242247137082093013217722387331002294503270547032612271102266028469006052805663746439458699452954741056094516607677473143760612255102739654422859992958762497378439268774492958789580771802364872717866779132970046131913179661873270909904883540916760254816886277149768419364449932741311515923474769971400467707370685250223688179198919004218283083869147447030746869809259367315254894403976481083487958395725284581191626727356947079815756022689833242148478544265432108285582531724431017720886403547394034812651051548543269077731624592153279907700762722160600753831253823809429550374283583843014527332796775574015565826190818058674851103009797201077346989350597156460447168940338689115646086468348710769689466843652866748253296421681924574962930328664944060475914582720871993858868316533615136057367507955420689269535171910131784405705487060914358984003539181547480993277174191407545780562142447085326579734051284463128528595671072535777650341259129400521199075436540661581018055213719735671955282155660256433865685595477780304842380139718702179201275116379157225676365015028945681672827448672670435646934520906819059019131174607734506448432834673993641750058552981356086391480848633122503687973692112818430701367652720244824890738783117373423567851394323346537269036574458457213264537578725811350949697581746263512625518330847618859085653022245427539982854533488046405002345259719662310123170022740546071442918287792050546754337351872361138640167228836838152204412438942918042739630059348935297629100381266765914927065436508999253903283316945921154650704886484903617441479970719899987022634863201870638734941605759430876234619309241882624666226213187524421377426802505695681463346534388553684789002490669488950304872444504441249542874343122517884634021966190164103642560459359749957865934116898822128779145092038030248070188170499554218731346643194105615990035491222049627459293348181745541913326364478035834544658367069197800565647189074386508915983552773330636651684506542937914632712205627051021329137436403189447219715177286755179237476708036052195684928655209062449775850645869786776885482101162349345493940913500025086503015392289861180807821082390363037081933633261674481289873519196921775429542776905256446415720008243811961518407017291094860041715279360761704469256219818536257719256033272634674526620259192099755112088388240489022460347706675858039279864398506105749384761410979678429831786552023584440318395405097922087604627378764711671300734088008219827689890107688550225702732322088798080940814410474828179469825951475619472750944799081127088690885738105284367322686598539208491319871267856215010097120431117522849660424704720692891575118311058264582653375109022063811843943433386703298382473877630487545722236898400132434816543808645632706306629901832911149799144988844256876776358397874960358876935670345505190612847726108902157940393015893688930785508438015362737685364070798020137106480948789563207404909215172742893712488678014508866422839592131798259863938857327367840104566182855073212418432009003678226385794276406024052618837957228444898152402341269149122509862757180480588511936259456931108588766157820066044993687712549136521256131070821491321712678535214745467329947318545078841726326044099657230124883519673185749100555587813890934944770416248968643324545187220021396870150153871836380638364336507772390002253628152260537715608490231284702055967230007303160759040695287668558352257992674871226351422002782217023691495960253239939776605574442157711084950654682014738403243244631254521162047484737035751649415908594734585081565132683204033166566335523030787846871921456699364790062661660266671637977215129003883268634727432657796604222103494591780420628950015997932835937481782023222107919306827688621256621469756381577650517391090207313371664617501546031817082737509817354532415787979318574557370970866312753884037132383196548757750418429761359864521023423699900336438469171581247175678447815724785952266680395319974894984425051245481652178362591292579106972851811380902155118513611814971001186421664966439079220532105409668058871751021163873031429028546651679773082193035117625955495984870199702811746739741874343225687319575071306058031112435131739213501701894307282031106905327467922171345526598728303727487151371205392647495469509564445718427171613659537960993500982060240351043989531665414083319157662672290010957486261824775452887627218253701406836802937699896369409071174736009606111380451078071080743247530837722765225128572085409908828648925054200271132208629675956439158027664642807735329225853535138145828110680504936911219439032094665864888863429297780699321466511963425223019391982501924099469487491018067756367435291669185240229542907436105665299797008774164107493067411060165092680455886214686085466593540320251112991646912517208665154872871755562653280490989315980408862659547783954043694742733065850064099501137065297154729279344186321354531884109550741930969170942642825745907753057765388486152674993916737669899049249787756468054715759999508756324793718257205839583199653369083964200914732609921613412841771928685388507203615263689512549459515751960781293831234070903024566193573837604812107460964262802590357119002195610882575796471562170814935033613851213361022552873814993425022434525290755509568879971470478947121456437362920874514480076546396976425743100776036374839242377825993146029341432307339473984663979961419192017139096507104015204387648515306057726758352498614391555035988213904799595620218252931240657017164203424598023931192517192818770844155334060909660019349449328800632462188270830442391663871076698145771873611013982301097644347997148994086157523987190928324696538126126010973644171354999757686864594890490120208375461899545938637154247694345556532261187909023152774868329716963197572799236585119190029200423867241328887619715412530112654450148819175701181895073738583945645470716362959243261958817970474867995139357507361234210185580030803609976803033659516988267422229742791419552822039446764806868053721802198034645946593414761457311762890757262490759917043982409964023780507570315321407187465033249189081355166350575291035322429032269159698555569017235818443380198286864202199261820729168060528887451618789482424378834058750908017445146016498356595891965061812818575810970297593511307345961180710998490652849740879413131252130186227477267406388201693742716939297717048995124536043452833063771368832398926234875924185017176272109108190164174641686099168932572473056710677451346298499991934504464605708613589474640348156517648395119606851813603427836731656925732441558114768613373036652570540877292832209524426224814584632049333371274111244548713077084655695180277856115337374311795719901827047830968639466960815618646526150415057922648256003457219988083960866783744201208688168952306403820727500075594408416038008814461642606200766305004136781089776468716018811381316151057739770246717931132711376248022349479725534182482510969791403755516064294721618937485812079916059561010469641294474054193838716761997891212072467467073735989797980102037431858303979158461923867705111943395336197717546131958099093175378848198862435153879465589653038413106200956608448119293479530733972650308453300413245525907975483194711852423820341535720231265296270948401680141958800276362941650716513803239783299397558089076334053727497666929922843212330165953734945851465449649261327568913590890669984636185192906438917233125971456591073848333825715683929197204699969172424734134811894612934801645318840596476684000571034284315888872946353118582351091993514835506929667675631172022119135240617247667288081050061995552957075611852281721459455338299414134700735362746809945450108167740880335666261111809180949967046974818675122088834304786277818498061015274190518458842663644379887943461528547408656690558010460716792940582628331985816281729599642610505401486153451697033360242505357346964714798873461664802744518085661136849355537605276463618614314658890533773624395341096957006415156165716590477345605968336982926365840568858604650934049457092780667982676514241627995762067394932609017276470607108567487876451735885546423858442477969416386805356879591458286554430404410690667240938896681812480636231552145735081428193040537093523729761669638540681252592636929025461007504930112966487845319712708938289917350357534086967208487711743570136766825721482513953331312205255525476821259972113857511872708709678167134059716371735149536098140620079762469875075200076924189614170916967655438937918369311725577454347282282931942275407293748668553935772993636229024803718063299885025227860929345700227379310688455790354277124876803361610315374477396124919356557777455606038760141026852631633301798947987164037818777531957147349910787509947171782420367036156232153604380837565082178692511710881670882934697768726080867004819692353181552950573636120886857197463817655459567706108324079499684058820143148093349286552678949381174534793184981575226250345863869480718067144254112425301245330824385036588654161221565077553743791228761160781069888487140757126436403386215022680749342676275284047986194484848783382397300792087713783320402608658961878701878917694388764524868691662261700509532769320350074230949125257766419196362390634141369000639243927668398437518282780445293484094268862056091606568608615887877629218641155840123587150128717065646315101195800997362758228979475447377313415908159286854654627240204260249379174842583898531024837153649058359789482038570628963938481258639992375158273544197469376837270558474298807090816826905390067067298468482295135408944241164304152918193676470529924835919317170650485808626672363890230152658609640859883827002470296249640125372656230307750153809092386202021737733146235430652900254701941706408829396598935914340919000994294204985078174380487314847921478688616927600267322584056771896863205226084298099819230179975148231465062520628844744245686839276888101533172018430889280848208225352868113693428333332919425942688841251249705837590704515858258634504735238099749391366508543223107051330477845626243977031078836376951651235175218895489372942664869848776493544486171533368853174619506452871634240994767380604496292919061689098997188299152777345121171620657717749776432647324028977797723213678826637898188330285164516741649525346332909596213296277947628799599526925838984199835352120455881654207330475874418439249762743074114828297409834521287570245364378243721323549319640036994447536595190110940707960935813762907936110473450165694187363986321756270482107173175230481924819186942804846680310557047467180282395313028433666738859821787182975544053067859332327867124569112122560473949439969683376743332065553402067093705421813683030326013797690800145283165833236123691424452351690215415696003663839428351097310675228042582313416410724423357127433054677301599440108546996467597912949156791317137402721268246949669183042402699618331249120305872392464010998630114110742794890947123200732942578219784830013220674869891064439128262967601863160567833530465720839971632208261654010232882476694797168398769660330981445029889521579510944200833653960843838693372733182255963989939762493143374311212256788465819339217266793311921148364086295814417516393245412978316489491483618359485385822179805410502593850425203253760636152708161704918468249605014930515845480200488103269780109921239227575189071739690861137621862931239788711163953845581522811878064602425052329120522783165519780589319380370134710384925409217034055815968407597630074183890323343909469320542737779300114026062481854767075977962209192596735253027640550453622219766551274536814675425894931914446555831078123728998082372558125743472244683277865818087424323097961464702413609388071214262636867263437323965561872524078260174982403849625664750385667226082030573715689226512046233616848206653809379425342703117912310672137775965811600569942654739297013030154231276367794640972036506087800470759999358463236297472644432779862070556584506969181283858545626395491824459093396626230868617329095655691206568734138077707505452584954563826619941062068936702388847211923218085179020555861608184691939660754041362989000680126461270054704094912351255268637161095691655139875121363014259289507789309214179527877168926384272350273067012569213108861334006439689160788029514981352631940944614345824442368018406149767010891614758957204117432875954548385300826633260587847519238804852276928820735436097393558470602454763400124232610718808537439363012634768626453490201656203541214358143522024599488639998475682559616521252822874252651664692555435450047012465906577007611913337640084383174770191494710973662283658218609058601307463394049540851695068906763100388099332714553073417065834338877685165354098813296309798195767786276531213415622787741310467258792188835709398652840300660798328781118780248494088261962050551690747535469897091487202296809045840571778042608053076792508424579020525516865618797326977642747473885889445945622236051677128828132830670063674607404355802742283387309172909566808167903291789809403564580752763527558629446326063131423809525177117489945044992014040982627292540433313717184167021528858372872403834162472330964528083676528992096397760305818656919166953884327439294756755020183454214149574449592104085622473351184387210431233265564707640294754283466910792440501466088295425071792479577886258058248948409058855651108746545361410432743143750873873822990633094889298138161078240489815743458496240911936370738008920197951879848750183946222112470866439700674209362154934955386314835792156269861924157575898990151930189055459249554868434970675237060300907063320625634156472940436950916092552235128234693155513360697335356256871797689989072076730567489083507375810751654751587881440553856910482422676411314411541188128797764310243832128829672823743245095284496283306152119291989748538052205977649215539771980760458524635807425809263531405435710643730963446364982513427336338972208238913406218526411513930925874709522432537878872610420089694437034745914679490050217217111782278452448522290246778298672694695461625212739325302878242804852815590748344109162164122507565254375885566107401462925290229305787001365442484170159885570165339693470113600637486540320432117078877190044590945084682586800025937534504095310824967884941709237666674415496451037120058364488381880543602889487402452530617510179756412411455045466927284516931989272236165083326649915274138008021410419734707273021805857916205202496582110402994033521624701346258539309849239135067008369359964826458116175357499452771480533792788109977488392904056857705416058492361878936773369491010889041604514313925974242698101215464096619597591902251580272763175455506942190137364172417144869553202439413611933975174709062472182499614067118889358182578733928224211866126467165529339542122049051510985490317548803063515056569940832448896791305380712354278128904577312101210029587980402815954451906940326625868276223265007587117917097409538242810604245545727455767453504065870621997020809783034365072549555079964433330784690372137778736155016039254666501991423696276202147856306220010116842280022639459993557208282813769227398682530537064666783206611776596168264872092533269243269585324889343304034670394670600232839284856606440478602794897592137515900052743465539068912853400396080285023194871428740167642714862397649380321446330651451429750108868466699606358558312269752919109441240787547507655219256017292498126141594577788599582247365835680654000160189283218705016955870878813055847653519159186616129781592450357329518785880293300137347014277626766812182749897053848459835978559360737913374085585998759392435603780023623106900855404872334385413204140287414357097459166049883961022446704935962827465212213691411747228765960318639967289664603733555793677522893575030081629848406909243619670656479118205816744190930468660116356785161796147405044315794333472006009163930302230968838415349874009369872179134946739155677194531859306189766002374912360547417260438010977915539168735262419304189832196086611714767685364648352946392980943054773657544283172383335493245237201227474308360320211165498227619639824612878406853005636641946199187633974182797311525678904402072949121587753484041511487285006370839123742180225721115509178468292632040219904862146743247818043717102230438297325744216676383093140913456202666042809750901687488480139615253297494368264123642121166824428580914745608894834131265951423115165583283552838731759857474265179501274367745948940176269952346547165907238989289677400170166119699030412863075383203554814157883814497025602404355450696064215050450989370646781671931122862832489755314840648053589546801747131317823845848662011102245867369148538366347791431003496881619137014836854583407053910525543824473193919526821568661387571054665302743960341509682272753862769915144237206751877310387924351382708389083052307634821123911247378483297372020248223562202136525855700773697029015568694728641506597782209248535162854872373015434329294304290675366954355256362723305230489686631534437900289896793011453785621545933305787471414913097089060693751696246393856671073427200247924864266657278764888494170869312722204316186715149457364071181721740858537849203528588076205271543111433408746739042932920607085904848946273336504300603194130113721275669970120762084341003552993891789789265483560784099266867065156951327359953870358900367302810912897285309330206256180861282035592550264959955144717641717903265584111868305810240108061099416571212882131809423851997375011054325302536520977773951416925682513935913805780243135420876465143687723244438445023779573516160311463931427873512745261403302788496435679574113045798393262825290508889554004966410735422908349738775419303719671860856536064407878032522542000935784450279557250185645561808990199910606534660699538175842885762417605017296405837965000917816045976233691756920897712405212875756302742224984864723611313539724888353436945194974690782218515498486764019300575183302244828068852585449414402849932742007536043722447762423076160297407883066783864884187220029075600428372798152963042992531412181709487946404518683558656459263843125369495741739208826568059675252456354106594633337426550878598946685781031205499355205023391878346591219723576954792290227458458373691077275276695740917039770406488482786608513169213146122907383860750632757512704796673317076554673346279197816465385312822421418039315315284293460886154393626099559385867746855634557364329401990260950921384302426912154351826725993803277859308480201842072863961446636962646019020788488671030273229603590355843080994199815439539451261726994842155032116493163415101505475582222930798232858164199146726716450185901383971202904396137578260530026112039706814460106695366055952883896923229754738396176395004123260662428966641987433260776784371054727366361000514832435445216233503721434565402048649275011960970491084850527331738912718278335006251265021056310061189011107825804069319860139037756437696239148829882852946315517545420047729046233545966091613245047146670268626143673750043824505494784203776956160557220412163928937145018721604832462842074901980103271348532892402559743707741255386572592987735711720032171960619036373103927216277612819698988454323957272302601222715428245432921388319865392006621233962260019651898838654575534882804376335779041210696982209175963612305553314858926782888494631428618815128554012147960615859481816749787450614744427063459220613560845841041400690865771492052543138974879563226841273253883322504629688335551865160116855822818954550026995807735858223716842087518453067386078199657157636715678155993134836801590240390304288952512880907771804440235547816290231162474146565318218314340007051035691153302178723837354235102042217231013242897016003726614632108678264342438667037242260449843284210934846559915942633039188522578109073955146173747275643420708995930750551586944285612989641252433508080269323454089217068824098501517250416318554275746453577710353387919228447975973166052303924866673354479073964626974023219605469213976690206431131465758750827287816111629634244485504561880874577601908379481578301189833575261626865352091261446294061847926955871998629451184534954956037933067529794883470592948155384788686775600168170443755031432404067797981795358089994043333165652145261445707187368904639179582466788572930491930159227429346632056963338208341632357611678895852526314120783968599407957761008123512453555127625172645114824247542129944023404983850215994958181457755328294489528723663106124109695585802277717278935488912325294687562660748136074135742362150857091769016285057120752570035865757269013458263921948445355344370679845247272121027648926712247369883254542541884664110221109795239057961494211541614692956080194709178028620228344419068235594449263755674538375708538568006676915712042568274761303244904833692810255885727371844725033390215216945385064001173936046455029525705584316223152528630697378885921005532686934011000930441875519229862036438740558286709810215827565874104001773951534958662112516245262011217805762300152190268558718636164475696748629529743726372765269549465376065940406599987963743884634072729942647499065354686661016959014340696332205002548940995416875066545851581674699310640529165404347522837824415961864688088931688897550421272115631873190916219712532272542800401154507397505854747324614432777310803197720202138332266372030908152284811444732564286107841641196761047072875984870571436962952462695827771440321448855269875067435138530542199768797206220878523832637646131910808637210596185968809280659893161291774004331399938865254069504128456955189319176494957040557226289418571905931200936747432637848055428101798773537705343589177753254188679493048535343830174523926488924986182753608467665012359837221159201835539488839764205514816553523848574968027948634587587779116269936823825110366335371822858629790972972055773223406340202934146939091396790606732863005936671257129310249902876699692544044681847751791098709183370525880038150327262596369883626670528499054723796886371499911093900389719431657552003799915440196637570842965289852183843034246145770526822243099198246044482591477548262128893127577009455332367763904830185161047736029384271759935901568091591141232176161740483532502901333328060374956505181853494717703036464565143143377437063582955409834430543673821969269849910402622587300564096607851077676856135393334219120122727400764044077705773971272915865845580373951404974752448183043051531718744007447811844756144532506053475749768441539611968057183038093303089927202073988289090776058837869766423321973754161294669250751806685919985509096687338525818967915372078392889283805071078688280696180377614581082894147237825674982129670784623256557160992710727687829357531410513769174128128322984871663720471951788482692177265031360604714402740589505137208218797996475235886557145789177586863879512815128476132382007566094366268325650750001264566271960656153075126807619482203944632282345276240252717122383965716424520579090676974870729224951430331282700649063886338595272041678086339352812486934196000851263120503080755882780269028186863471689773723902337864396326814138368625739717428364547266495781319547758270799666724688386359936615795011317594717183758158198850330454750055626739466087765649643074957401661885768716851077585132428281134991996476800440337430087611970189345913903938046166352612849751551080173007230463140729724242936312104740758164794787854137997297711734116301643512550348976919946156203505009473614249405028458360629447295906676028491649440858019814247977973195661918543659901497631518403407597979222889674742133341765255776463169789396123290506142666029923489287283859544165790144066455364018505167915391787573044364582708475530997741330701539757133320043740539121158011966560490464067181088793824944176152966615515157670678530306723338087253674203161279623523818831864119517594851911440381180971533297373000065307895510257068867028331703258515304579629010433392818286005716359429994355025536463553798642013146670411858343637734816952333878384221876562613373390833466352686703160025526175834360569227335195188838678238338156950159971578265978940605900961115289656138374675756586001232892081904050750502340540553246608819768907185117184411735231918229166096735335485133960165543565699315727573869580363067758027534434272573937409471459775780700806810773602954621752144245753348332249424878446954059038948091638251853774983134911252413307135190716985897222421063186239615844400754982958137156901745679325438110008624548655518780297461455667675054078047570109763489484539537631244803903886072080388485638492471978080637463416697603279691757353315884405900953844564227221733598508167605215449997162842551649916061678595274684769267319017546387733368835479839311649993552520719149618642946525421980731847635367005476164105660460059647335829578520625097593612930197480111031371590086830645927233896451558338053379674468111343395226667568587549900213997877090496446079597093659907524448757032596826974918716918046470525861739692001882426812573766955632879428139731449909964563171217035706359455520082703646423966001527839935454253889320630234004640148332323538246111256391903793951329747572029966190203755633574594227810646800648080438467893067785949587764261176457999047776210888810918859475000215869007131513381284747295916833345454395106943850125259938307100323168441547950130728599306009509465103442715334978869168114713179961599894254699323245072328378600466259103452849543956539323257511332205675108407944349001468608182179065934312461655795387021881253335844555359317569150409078397218957139141087049584612146489490489013450423442586422299346873385123715834007009730270768832138921365578154598339719434208624399191253930774771160331277126431983772949110625782059833438256650701123987122726053443702716685742789453974540708782273176250930369575922296762080937195242219127851693994212733859692690808191391731012190043038803894304972492209207680689193824862125394915987230051825425583912240891250069639321531505058885213246222296273603060455132082753715717701282780395767288611469972048552545034504734976953669499259072983563795103602885857101350384865443686705693573185832048802568184971146804347849877559647262784409591037987951826533079626195366238325830718289191097717783108648070740894151366314531469929792084750310039205791840003738589681975848411293506826231970498964142575955629602267399215525436630657380449853905672290050141902056418744855980227714413984408049134604626266870085007435514915707549541674759541336534895236885418760806187735206248407093945488898201846436935305826193816579194082120460555223483419236502558428678938546583559144637861359403306891738878799044498625159208703095051149252771034099675425270819555986952046097378308965749964162694309366165668736323393066869546422813866014344940500138833955111545259968009576808624518808729026458646717753499952883901850773524087369657820852332069837454904623704127606172934195486164977129317403757309206244476914226272639964323918405942888663142504016081795272746160032143351348396186386151568958898447707764038326701763045750900075552390121802385810536259178771889450303846886407185905288395186696628171637898023859861271560577287271805638203830464748882109326307949798125500707556246137891717505229946104276438774398719917346285015796591190411556659928040090569837274608513805218624111278049829099975284041171642375545806348511673602481393121779823842919894183925062827746099364345349494106842554612362719085647324633159519313534507044130921891804817596366153668392076112274626928025322123855037580522899405202714562495945758079897752615665072818809911282383744379598817225090246635947300294843727680840978975072974949942096006624902254881845507590064040292843321219154528943010870414119408782691813142176077021162648059989961347986384777549338810563898032747783253954971084644530922462745106900418647077528597226907794798395639124325385033216383412696656607475524271698446650369913537115826727875283897008288534591155880748895955189976981735010587582693797244072704356706711000680374014801984687471652355356982524123455241976907128169574050861842264253959611356293336923065196627505634738315717204253313198181640089604363433201684249725978595740373892649347967180744707849049052344981748654211151286722062908466213444321002270828007601277653106308765348415346071862698295812373820080922386223227215219945107977018256022398793239104264206080302907118955219524716312589175292829218827633227429683776408447128185219370486972241538493052116304706261486529029742997362443742956688865423557891440063502785898682784633531798981298169597889092043051006495150011739644881366971840501600584592106261345172276077472570581029485259043600323870364161076009683307967995778233188397062342245552594764364825316713759084098911536383933302983597255995282623448254919841408423608132200496722183461903755026082457842486892849017182204662770163881751910447016562179462548678839079311121031924721759779018666554999687672803010572771680632944120438771593675609030720494533135908690044273637366433271534512702686611306490615717408865029783805331232635906785179386710442388153545871535592228082866954332981263664191536059844862914770501443997268239572974852665921662889621123650002732415508853972225238744182362687436618052903357386307916129354008042341376544263125099087333633499788023928717408951795083818743274888598497818902091650149264988353174503299183817737001912026413946746207231886936720834893787475256842365593375249738760183073160472623130194134593240086904042256920147707512976994769799426444409752092568003108013885244386438815948295198840540078866613608994022144423347308232968761728991236400123605511545167775916735158921147985623277700973652299292602850952309739962596648567103379085896149231999557327756803669431200482875332307812311932181664699649925685440338583004238225749040915958567951202975386615869554212678664490625172252797497748696973565254766857782134682615229116700997916415188393419104328420445201476185278910817600449588928834282397951196448551393833349101639535079865988332759512852337122293480374983004198115376235372510516505488719481412885213069104431618064611783801744938532839006527287888446152381431127056876987530121131956336828198202049879434143794836690353200251981123620315138860013046919306549578397943213145665265285587352376413812938973390827500144142784652881664844137999391176063191626939692550851784735769445728970007425137132926223679828310765076958862223134445099653976709726318985999829578731689303645947482695623744929946291749868492346600257166015870641114027155930037040186589019315809888278466547589678479440897258954562612260296858530959233487883968291147706406224040350572012447944716581403837975184822553756519151001344808832978095091334555343972263729605338801498503931049213337196269273402900162199860404877414380935477252359163815716618064312453540376030311800814986231214621416840031968671161770524121571807093122918307703889840348965493351197573965975476930742885417466251646541464965211230719733870018474079933953496802024347763750384151212346830422874249412618931120834196160239664258841004763049821372645201293819022786834624658845327386466601105759368258096108479598904676870094089070118491429865566316289917587300267068463706554144976809743201110004276571296597927507226400517590843948700112347744781477696644567724274062652567873624241450026060383924521108336686677585121503543543402377771622550045036644832952454649025857837511469565250327921674037865431966231901036070467635747067496332297351316899728252793715213091680471414293080802071341383134404831351798024644910731540910852955548801612575994402813114059540679021464434550181007600237606071297763235697655543470552145163463122595676802322656110197288291346680910615884239789616077723700585364854111947960815163131654927196639253731890343020388562866620191998600165256695388869911531776589083481736098789790955310925965459626610988094427639170884749376175560170430202035966592625806208407034059441997353052602888095609296546183941665030991380813637633440111499176570772007587506065741505708768096849777944795909876119753655139306135854321691919709548685387049671837227811213574303712577629523616846220539373927133717229687295612973390696104267546529448068784357088666275729082961345649776692316314702990711051886392065402597350865684203316574921859167592544844619140935116203872730585738498944787689877446147923754333724850133976265711888507346763491445776784890417553986090926913050598020591605865753209953822125509165229061243046064081495346799671787238870618963781708250517795583580214560377813661086907683309672976438254213752786807640587037665134919646054687370679564550057970163343215779856672346157890850493495574441622923672739944157392967455095212335615714622316522376871775030194741611762910021904085123489534744342397118682909741571111057731227227464351579878825066371762027407510626633359163905351267838549110176503523201581304410787455144687405145255822813875392756806346655366320733295753919514522464343165441241402648438499172255644997484483765146554790860629999672017918396898866979562371505159862148245841209749293560993468019297705247871088727554360111053619328758830979351094897744142484832534168164995509754322214426693161745662877963434548560310505949458151008976920682042424433458496765330259855931648199631021494569145146674788597594057438235596949191693384349068956565758139184555225476553732343150991426474158257652931952178541508227340811665385446158125175385005238875876845085586920324216889732041865013719493205628028761958297650317482591241063213890096669449983913113190595324818997410817599618471381483802984906253244561651732749686638735340796235668376195853778014607664656362749708323372239817442093424321266052375737594355488042821531404028964799771252394032800983688181198278706305306805431837022028121580387192358606086239526344429941662233229017576035277630855622034554744845990717131223114011037474459072463875416077976135152645479858429919958743919585517760180359306214681375005603731968997301735305486609685281566873236263130540296641808012846185155073914029802810949541948463598429824819630785470958898057209303250423383256159913786502134788836088957021483791696881145541594965670307625473277335078415946063843566001925323037065524215565943200676217606286663215839976434636060751142720849481294258211693230444773082110511644055534357488414333058819187071003616249242682527378875908060460245337567114483589248047986083579021365604900047511570091899379390727193571345137908890845674278173989463589753093482052206233108829512031042222309769735572161255427748568377959852316318403339753001171899513158994701202673525398972139199800552827695417601304705928773003108817296021064863769510384661179071528284047660388324333481717192705596412556263296580738413255736182801836667556758419959774913547530478760643216043375962727399502332966350748069179791525435323384484673486944692842959834633127601956906359578438425394483278821906669739397685426822694811770799493395191551831534202101268061595226917885643651253694153771123666514806642187461900033637566920974837253629888671877750559914851748255158111999828315972778570992547264179418765050978723164191752013623553891660844040282977319633249399063744108972680688262823306437054731273371877515485341483210704444482382622011604766528056717178431368866372536858375708550561276116571824060207722441509456398685024117527718998914033744244832388882811285833273827747032213256873206263109394942939867416914144014861113072045868222853745001018526773625522894748790614582693031006876920515854894341723226244184737722006865422384795384132294208871573498869594561134922674811045195382414156686271046039075221660054212228027390370665865686510351267032010047490633457364893753417525619135089223142903216989696677864764461159533835051004739216268273241351568843644340802122335670424679127764831380276486727224419028787617603969644466798912008086093139577105515225299188130225171965366022205507410909154305508486885542477632411653596966622276834459869270011622685075422386478359135661728591436452317230576748117200564154724268140654894879152299408103744436864647082188731797683167293696043491823793379949113153939768641254773224910369523560998718749675625780737907894469513727690994346504593110391673464327527442603569989303323250942836505969262493064665147288106059128532587260807508343082635959492810390055403296378595237858163297677666286066911893273977797582713904618641460179760094444629361075047960155413544684914295053397123057670176686774763703650736310849005943092940368906914215000916658750825408747592206222376845397282470129826228450870295146612297058628811723467577138588058505579443212742244345537747302300369628494736052290735706433633279318438865671075887384791138923582291162721964456805843454444688762122520088198362560777494387733267883713826011435480220598295898460093916995899476379231840245938317259170737400410962148327002212039328791303057926747610924271128415858485986491618068735677679542940036826928431073905772751664793263618184714454045413426324170811067014682502264921011871214330614012970709290246858686516385497097443471022640496359233064149110491951705096766679789978942153227403861705580661778152982355704111757235820808589660437441419517251131864659446009111288542441836553359767795941569454739976893053578749671025892096739032844848769346900142541804160994557555057048504432375622498926751227289843341475097015792330440667166550876334853876123501112354812573029810017885057635117387174787823181120464010550096055835706365140530671535341226147390953961499420123175099328204021929464718476077416358187893341494177076817211131057780250024451514811481735704778660927749090969757921654666883530069556260956893669169133012109235623838846807778052963191418657639017544076762896947176133877752038784112017832752558875237667250811608019984591961242917214117694469387186023492122545031115215923800459787660278371271191959051199430882237317212580061440640307259919085478666182217691521412179101564352466204168544151695515253293581842049397027784151579510488758607913980058075246407242091825340089350731076516697036752662265659313639854441416974599264405924588599842356696601920169065443468691713866618419672994993348459990513567925128715153680084760069160605798194852053824913732830434255811168740255264593028796684731372615573967225017488726613087492212948160430318808842981877771097629887691135429514510822857989353699651779253253489531616300696153075444160651533460835844369701453259802927432995291430422195301665657792924528863040437475536422614915530038373132575923463298344847564707092457402089714408163963952444845618266828095288911729513085797331499620628533576098352048248991298790935546294071780247399680273001392511477734966043442594340756871554130003557898164303950776968107371160599378068166041296224992129801820462584230009229815845546966145748178388233097447140235801097402229357469931521556311225776350715996340569943691105690613723556723491712267707789459000872968488658908019791261671506287734109111704570924761783821859255478422076614249726384171278060102288253086212099013418883238604356899004622442496953426313660423019970121817782198497590759031815836240717670715633429021744655392482568884983685630160084468749644163153449627834142349604143670856632735972365098448982541108380580225977051832288445636295476804348728173284334734265470561133772776611568343906137666624809378497110685450555902328891391709542033900625905923603531083808610657325898466165542163088544863026053021517596454451247891411973331194635440065448606777234179053119294012211394448064089958045394421147004616699443370811861122935193466829702697839547985143326323272656574128393633559510387744282749257799658741941433425335489675910626517476517878813177506140509266296208623844917810758195662571375974527939500761464737134653863090364504182355209975950700312606944627516194068703883449648209367762446180791244212045693125990432016032944590426091054771988451752558671317173965822518812836002143916580230014162743317061989094014280395793737812007087189462335394943285444079677592718781346784203154426585283771501864035238954368935531961227593433861817883855759775675179316271928477222405370927442087406449786784332348985972541619970690023815263049871471308008536271616111907016369428613837111540152861053459022787450794561355405643410104098635341833834437662923916495102876986146651394183678738509713480892323256541362857235898306467497922845306922814424563871619404218802776704547585504998750285476831547341871751921659970054302751665349227951799885983214040581124030163545153121702143577807566695259241756368595549226869169647517461032332098671366232341836219635787244156486842092542655660054976851029289189724104089565453333620634721289296557723010325446719645551710737988567135812819923163859229426276659836962187368800042955970869636353738318868008321511045901806414004901181760075123196940005911515483724707271671888628911633943357895124078978047914329681048870542320422122905144731422601778565449744537705194374493527572250906645071321278204925089106159097995541796938919087585757706715559514451347488124241352115633980567951839356482275892197599219462178579642696980040811833604555626299964263901387101774873225614388690653793938568820068582137862700736530007301764166559278362653730619730499394740706606662807775531303255680211257835350686326529525457445047441339052654897926146774181173127139487616624049183908669291994835482444870190653155830180291211633709378969517027635188998522161082579806047284985202920218384259919767286635674976940880679611881567854389427485914133871697686310934703260607383036696123042557139369976650208889072136738243715264078139395425819769170149825179842993548575007682276603968477970412127236383817060808663525952602666562680264982337481018985029921965554569514823994804717732980913767063444357305223215184871256644100767404919174874765303447939316448583286744532018443276597308907598268197887922275458560471597213266023511544472370506706841311897196151702787216797535902152242541250748404248682582613501831408517291111289660869698179972588734751177688732171961770377846395037457382098568449407622726887578544171579761409093477517921219047254716293946487585117718826668017444650860909225835972109128791937507286492061979528225175324693390239058348186102124431614485772687758700097992471107541220802311290344154548444732530443398373401031791188155203970386879189811027029963449982422743829909529012660897834943199860120247725285995807045138384838128975158686561334333615502116353313858804203430647743749739152692598079103452150518916322467069591526808174659495156353290860234582904295300190012766908119618104772798970941501767890301601896123787744013190135584268496126863445364954701928117120593261697429273390726020185032255453824427682014615882343251292615570007606232947342315379858479171853193144042775122370033326812591391969580748537695315359073618374631837651083327937433043036343474311396221911008431711588406312340004810274394197309836575118942034965904727966858512594309799397443704681215136170127928350256628202369671636561680569630384583297651544623732832226103790684305997306063038182279345336256241458950311363066115321733259699207727335923867066578403428535216061111392566755540164209853026771476143845426211957631929278395109794007349429809706261455310008055419856130917861287350759455408399739341396651015977819294947653431870860749412488613149788772053642074489727189383704073143673997701192310372324041537905755878787386200817410430208470995908502109050464910470287326951471032599941710283807941612406619647826644531061553312625673066851312422844678317260346272840066364323534411506390725118165369774345629247660194489369847622988702446466556257924447625848615174669030229637985812042452484567851119011222259354878458010239488879233738856572782759195486363118093924393322339514674140521184724855469761338839233724495661681415849170902333700590810070446666869111429499852381917698151687849961544529801277866572487946628694704222013487681065605239634899070857508715344310950808878053537610632386398291937918271285796113823461776431953936998500275220937495101273589497571409357268844812361970941647884952301162535674614646195701015529193249130132091772482857346518719481213873011312800045031799642553774507296622385901650483181872873374122678126429623419380069999782825362304805595138581602568099336444634413255663181684049273398059248670427048953536197619455963816621173686015295012652534328341107364170490011920871274429913971231853527365453089844211046897315623592340507806921506282123609696123540808608704380953075548391190931711709177286294930553471396505884749307307416888702267626553517637063808365300933880385315198133640882696448029384454209908284294110706191707769931624933373529426063356627388311091987568168432313050670097727811321734324066587702309287316553844446246809224140680910670855569554257427827991440682939661255599748400649921766142316797693724734362769267536750619198166007529193312571864079565583588170633786071768293993792449237407398289794534361056156601073043268695674818123609905144212744273499144753173705176346053834056418428821890478806331027453192106888082106886002220491160188113971120501190510219059146897495413280308064375953988815346164212419578499345655070182481969259527777821398962997806544807700856596859597202337755792233919639514542170806813297736798241027575555420625910651645781384284182829825992184017262882684796187092163651454726645257403984321252557851927948916233340208039233524043256397121255764927713133553862011922117753436122338966509089630777253769945010790543216605927059668221049306848198086049890010501563286546047494139767275677446729639309197830845076122176460122931739825716422364650643080017091138806208687635435615609795666631956046802753841597018171261807231422858802475326042422875488186780573590949099446764572295820548091110007295447746401110570126190930123322868957562262552004501366912094965685988640090297239985690320386758297058218029248908826285127719272063105559752609056697802044125881966248951527826919050093999057458146665919553259843850944690589138187514650796768000183826747384676391573352417458991017044036474946885640400056394876191388519708097785459032144908209447305405381398546815341177113504054480559681210507850009700926991652093486168817109549051968177297340565524328553414153525596468342760548016110677292397072883109218500221230115475914226160102750182364287643803264719803269617061091685142540072231386671999960361620706508491024033233949576835116292759217587161409814777761013926360702347502842914320938957025479799636084067931021355396780842342509088650715640782474152806064330398437571401550235430378575488827197707480627511345529700241257990961940447677239968569383235512005952445303295038614859345296759149172038729752489231305100987511636774207541953669009520739676855868237720314846945202030200245290469358249482822475657925912668659248141704963366718378733571482041789173499414336722482397023475291031814850060050177930203799216739506142506228705897237444190047063899379975686667145445276471201113404388915403777535059503021580246172236229231618736714380557617865713256218520603971131746739068703492239527248208267197460502466018727956927899666796197306417143409997561122537899049835611573739781754542347707760930973624500435481167840623065800248844242908467982069196865466536104412763847302501589919481954372096008818344930845941035394531733290496164247057705113341828682030089489957079476454779267801739213602971636728450912876746089164387093041526716047886181595571559564371288026111604246600797301639203829392291706371347188466468306523217767754736460259611153307660106651769185668357291696355607299219277429728324735228427604161358721078880670703522252296207614677952585037245882151997277769197479970727337706110115253366481332179418918344750556440093780786034417933276865855076701829441068225658926853500487201373199751193835316338828470495541111709873399844167386302120259148496259736821036128481577622874714789851315572489025149395436402022208320983458183914978446512885864332853192063173912701563911759484055659215882348823686302854546339081343182298570871097513686190241295689192194208260851845785941870590964638181810103725975727604422770577445955203980820875479756554873688008424449731047837211163043595642404393103658689067419013358476020521314678222388833885464956256692696921383011761378070949721129787160950684095394696080634713002192041312297919797629698618497960284629100416369800612625980772629670150405782784085505462751174847111680975869622210887240477583195895647810652869441528593628859639118895498125353582839380280181347838925912089324337605619996105069183665389472569728180149063250700624544862163003487638964128227808452715507591578184244358804890431594651047290588435412420673418081108059471269649820153172734832167747265231493039424416421126238822730906570646269542271904590688605920761739125218656726995821476001871872453813324700921275936485172378101209455231120372517773426122228914052633482503889670654797214247029483402188285994837564505425428604352546445453871241299744959491920619744699061582586902465670987428517673799482225521820996997177153720622709061741115407306556594371810696060978676104324985403232264850707798736018780511625514948046460892977401679448487593719120588370090627657153803378391681088829505866849277004104124945099310031736547952388851431622812647454376926419426203825494047732617610604903952079528827943199335581233764084509744070011264067562384441194300360163026684845451487527983948114531489620123828738619234282626824478772356851098930151078959878739972829061019779328669732661611534322194812669545781091292744355642209819209118432812839254281429210486322550804463369548653032514217095631871712485419158812819455572283444158781167125710818030922394204104302902984264812372223936855423946020593537137077177499151549974647465692498669373662352002422131488975324520003878209931435186175234399186900331123557683650420339798509514389409052865376472922998250205846504687409705428069113723389344749226925757564091588636182546823843073030814291203207501457690080865662203528490057951568898558523888327795107733991818866184013033602198983637151428899273017862328569577836729038908935261083876226329759897311028630668278951448586092030260449913431584278309183116713773389272250971931805788393226062532633128085547276753319572614104208693023718748836932026347590919308681571380168378374607117322336273260174800259003986898453828035258306472170958101474357139502729189148727234707854727226068758394760018459213071031286242245407870971320412089057138244252831270447120075672905423376007853808376781694659096601976647156136173431731265922632724547086714448247046876642030420819302438329597039657688015688670872309471277312971875792488980664823855473077553192347737807714668141088718262373923636785524836602151500682756404636332099136057737120834136137304830016026395075846760606528707358397100522837919327949785922011787858003565983672168291228722138256320532930351024778614899217722580972048718762630353801600991204367859978847686187694384547875256414539108995892222924013027604175233307303484395869053770711478903984518334423085742772740711030306501618833703430266802312164828745152135383580347864139486428918264479134664627415116864857477688363832473863066259581290225561919368133698999842789120770973556955381057318576146558202103814406794487657071279134657815650181211766557013373073174296768420607655588408209771023519532155714049840596311902308564307031535967162205869075189201303498901524031580841146899164735701716980203083383977591430895228458982385469660665356922053756496772735827540874388414626318549157450668335600429961939461181808048887139253948202233285902650652107840195930821562423291110577303795849446999585559170729833020524407999466989831612094138056109113890459344836092558376265487244806645223618160420868813898822375348372823052001171092167804938865516687114760414477629538770049058509182001813624659177499359247791409050851980375872724003915290693355242306037919607603820601300968336529130596948735046945726159663120105365098453943571618284068450179264359982507025570297809173387886945092870552577290668476712320662779526736880304817047077356826913016378596357141557278690731658025419741178915357414610800525928002747179563511882878939787884188355794434120268385144691022759549328423969670051367751757726172309726501343532688586064504139218274045640961313352676058723862470461367574963962810388845375624521725171898493852161428221577636381965180006879455773806677914481669853657476174344629358743800999419390819169999911908516377722590320790226322972986907826119154985263521628066037952670482399059558695598110325314422703265609317600130195049848344595284109193503199149333735582842465487822639813432874388901203429786675793935946646974753752605904611649340808057053792163588399608142089420043190581994989706113601039468836676967796134255935180280548122430169761320281785089546203405244010927222685783343211202810758727846327495177572681997402473177161632626191941928757453476493712992925999463028816876388999131335937082505301373615419079322566350179866933804270452496669640796462602018602427053285581416913212026455476124480104157640120641522923681783177298168684770845153810757563168672598405929178184805167898436880656209895716900145259563514779590788574154961382741327797223500341615283105086117723185880614638453173896892368886334286986506390701265513609310312522945262559540056511806980065171029105754255871586832165820609669395503852511056757743803155406220731964054319422638746102120043906065953982937556509370926902631534944230264237058968708477584062032546851455431535795321616070413922498773934589768364169281700756195418783774413934244903321211606245376328530730108945803544566784846791837356633659786248109090712785058126906717808606383616805250722069676856344616451630781100003927462602824055628645169785880003380033238999953644443559780153248888105944327644666703629789728610608290339549403964364954487962660087507923201238121841544924802329675541788587541271290149218606179160500471300720639752506651428651855908666895742357894578293019237820340418053727196264896118306890738873326681763219745321393313426159749195362838288239128192713064015618430163713816101217342825826617287282364727785621150661167111008415359285470648144567418454725793494186460806470009427336235981814062630826804939151206337631010399309484802636483724855729323814796288038176313653830633980651734696719842897823942158896050918447849043359497045514275995777395229568230366371811100145088374416362377445653813751527880539439492812119030204305136659343795573692749663497705741078254595054150942389732099597112091130976790039608216332106482240784317239367805824435019163345617725678774127914891789210770887570348206032709523315033362351692414214260491023011818373023404400681895667117128138318467918186658960278368191350787919572930552755184136624618454720676400191059312259664423657626353705804597922269346949344247607782330517930661944335219092701443455990204767733159804539407945402691200863191395294695330582929706552208793708064433133954511544107542376251304724225943118252066558357634668224476814477604322087463998224668472095241767263276499514347203094817859794865639964519617343977780636910617194113333764874780502608194082851649794531640422736712112067789578731504258296157589825464555493521469180424120930317024138782701764083862999278073469198902545062821468822463535974067052116336679985889712837381396480495670172883460605457715610179689302445360156776384921028159737370735214174587293274912310874398071376426984492948373728126251952441509068972431872309658905151971328126756327946629044270233182457570081429829036310022613996229428476020420157660329122324572677444562067509153446988405136385650346684096277879232654794459808820214031038322903174836806050536921860353389229619929784769629110256159081171687483220665374872467695802120986834976244408310984443564625634777140243715751622957335957834073354168304803454651633513391357317088667852353261344248242653026626576352426648224971107684610561528691865417798869777901587217455327118790187633979254380793411294271515445837701985942717999295267888610738017427845762856882547644115380407108402474403750326632948226446124919467666210607918896428541117216155777820014189265741156402183331841750934774873331356187033339650562520859115371279463024551809494676785022429946097954828087472402746324093874378900932723203451160513582157705564837930484512780922340583912360202982559377633282614808873174840609562413908190557214657999461227402651956255428080493522263040342428605302375695168157278587893090334740242192540976502281975434591254234805048662551688247944392915049639787698118137591604787412045178063192981980033195747312015965285780494828682983980269750001998366625365499917534726836146483704193004673668403580764691070574817033073200754757886368002576748505863828839488663907615287116562740208295697971226132480827547203079191305992956363059351869273624243324230890360246388733766524953216191748329888348612722964931588918073083606696835714942034620855937309859196886629479152640966618692015434354880448651872225078449420050813042120098328563475091552030783248892789792398345911141627732200803557419398166923062049727136607595646630671505898922384302205114488373293276137063308294104171787815072113144797081824929078646023106687789987939344115636691230257582931672578028945245532777362028838663636056401001821286097240922000322285642876269529924978550910056434309242293977754757122408334601256766482343054076147751425710283748131008797330045753248998797320852162793989488046289610960601170248607638408283867692535832463280975252162682922349153167073586304754601789769937861289696205415843571419065584078325724031921267298597401228665213642104536714720156936729152601416378450017628180427779079837666997360770338834063316566242027575680135130732188815509827826244162475526452307178893601751154803962944815290711148155286744389361927063915382697761241874417443424238408601674687869090500502206100278967214467933970171303544137434924712907609558174231555321057276322398088535647510751442152510694617665787513562669571621593317675529761205348159048850973559182410311259763038953064342293748776710608231347086817592431751749858235009328057396354640445793665240196854629604889774161357193422071992682536364384957319862772137698051471274642352563283304418334063773576125783010138880424107737507426664750192227132068693320014740666869785791849445955131779430882836613387044970767108619509961474593233162058758659944114347706342949097485918258782892650998430077780649243174349982379502118603993835364667426870565524628888441813786141152135310368556803905011622857249974334923781321046238713238674262147017752045461304844877752450752776853766700344629965852342785680586428925714084947763271445400654266699362928303767344450854216701515436732749557117531088878570818046465398078501164694303577240207189105982777451281389101967703674661150695879589692601423268993257386360260204362479973881884749130577947465212842409395600644771735176025090605022631140379659829594877003593153812090796512879795706071768905126379297844382864563722695376386940667098849239995645709275736914232290419480955148692455398084729856318983142850854341536552693641304647965668062884427669344558075750671720041490154721194437821773958937837085122218169692831668561747363584337578664867653666954206864132484601153592869038437019765301046206930971355203395966227520544241818206717269004879055810317803363478158295263564414692318680795575196031582101625745800551420080114831648660819397767163599603920816315100743003232326996379896564256685263158008439843436554113905983826337497083221927876317538575486228417591449530749290894293484552011410164032650764163554358819048021359961107211380640955355388106523134267464991279305678491763484551275813535658777992548799357241143726908639198473022171566186798355552552365217416083316193851124936675977218728805128805146291522892743968052703906808388003726817668330283190650912508811458808078163197131133389228524224620409079595893933131481003252948807476178813617239681099695351203131966176603650447478405594927863760785736232360589049428812131928644534191424000564382651688294377022726524784583871643705880321693801136536030086401958530849630033558007908924714273494106895663696329393025415046842968603627042422527546236948138945170231877108948464926918258108369420968417492897841210206123313029569685423963003824214201970881668402254000730659299589599027168763688159755172388594378299253082325069425975768437854423775325352377672395016077727621713342482263231295425549366147386367472712208203267268214590320075864051474601291351061687393977694050531953005559795148606388076073574130104179895923626471148088129782459989422394615678005560083535421672119182159463094152346495941330058297012127024236063364485628876038632887023041436871972430895705313596817793673162838135755814680234353619476804023465153804822280991313559306836401346976495771082108258803419703581724274413807065576386065347906796229469950248995906850266599098836585484126775602161522457794890385837302811718104076524329305520686820348177867213714406687280374199277142391948806224119060999285561373524473025399298862578319151018877288610323514129530271909710320038055627577638508057652295878740169935712713704889994652556503757036465050578900096236235289678556890630541626758545197773792780990668721185264664483869909051253928229285540769076563795853656483437760450435019072363272383180289376974477919888900577028193599243907738201078723936770645395914685509027015865388967401607035560722702490904950363864648002333710616066106591801898052170998329337801914421916954625687513627514819863519389428051848460076188700674937413458871920196693187962331004401006253316225162063035750737404154186991995009220199776831681603500299181107116894937567251004379860854223675808187364505889006605408187604601612197795427575101008563021664490602177386762967981843749862001840802705524273614020838151855112741030281610999553174761193058566280257951771958030025456948785999800691178923745622772418397482107125733137123613095704302509791175739969882750620611096082106167437084625120016536827679806252478680314582125159884614313952764263903225712907512101880413932623396964266187865358081213391354390334832144763544419676502564416518427453814730696386204917237385805017989173627348385964550771961599603728280081155386793109949210068856172753843043418086338611395744825771063243674546160615849968849251971135168006268313536415666757883489645115879388821716031970686908865740837704303612754972573197907338319429869865170882533920939225075408209127460117846607375229119700062379906170295511464151266246905112116780985049996736864089165428133450479261043758436652446684341296941777101629939342238855246861262362695367912501463711965957174516848572044898082637513207373993813487377783126730581398576878240964848701704020097575378035083136082282662030015074776086018006020931471820835681527878683351294351359064639788408805590986676602437240091026484483688826435072142605115745080741395601795853347432767761415215594141733680177634229106198838341300023942599508308413035009299336507259591885734051955280156459271215656078749352411162277143845377013353662985778814731324170556690667970303800480579159259606965815218351705580707596248278692321773429838473921999384422473615917529571092873974155905943366659340274636234447058207555154837595181542748777686136897106981629461534003661533274357216828972487374269063309638300485938714098102167311451911510455883094539611276929140586661348869882226200116992407099137940726088792159638181083649134838595694832832256834406832530610498958054250980356828570990191874119966269517212282726558561287034940513888709257111919507700683055021117736879414582202292766371796930031393947213628001506378868842154511627750021663073925203802504953896294197058569833533813540033835563421712782801414923703227054017223761431034801056557279012056361625733404513863902451179074347596506936623408794951348001379402010095017536750363720982294834771005002780339784486879254467946177201637952478638605239616997198163869155080643870983417667290791218163202471024201437726722387078499628937479733248227129863957031275767804138183883654123338665884741892136185952517230712079314373577560473067125919068868843986744884027606399888118038428709390435295172413251987322242383484442555631542415200640468652568278834961274493436195246498385753723409811278789462564534188134595069649367855616914570837293785929617192728217229900511078558797244584162570691839262576306998167107417709577377097086691642896548145295052693714098765787115946683912438659494669979656414699404064012343319283286178512436620108646604006841865226162538593047279911671517723284483778131230267345035155206113179724522765287646430339416643375181595107896152085634405275611157830121266268480785113339059495555947326827962121584086853067714066908503935296771173744062412623889212501384617526753151597055199235513843836530757593250058517919847337332144600733714367211395230588741208484444231411120666948637720033571869505720670041902871433124285277286600295768448818436411637909453147986670630539511927058635795328159958801251638834690510099937842736293196752049420088195983563330778623591710521782297014450074259605502544912176591796864042607643053606000538852240407117808138015706652864562964929216878365233435153344211654935329635396218621601190154710194864163443621078575325622999249533985215261111915835814035531162015577429542410458007099472967123458756616840089774546320294017266067960415581893043963389806650328260396783188989082631897712130296638823891874389860245296836809665447274915401391384508827871119308793771770020935513778624605751498119773516358846570640747530186550964051011374017866009370210066877375135137406332724648763788662662676748216504083073021101604786906247405012370737384269481056419811766061980454002854877885030624539425738615893794713859830694698115649242855714179320433943841876209293150677832049586222719764422008787938361361757478049932705261477560059268039041380919472383343381089743398168899678780465388895102236905225516503827337924190876065344642412791894046729367720302601105567078544242905165527925221813649596316032907409842689325398293040409165057265858400916558683209892669904437851041187249233612154531883119434581920681990332530022060214748361143332957420338277219203731072059946468399607775367193881442095452159966415389080962954746378894872915982313560956216136314336948543490179034653281776350527061275849016225443542434313062283899492854567928581287531748665238657791464646863480131128359593332404312416524346759375104570418653138266036413690213484140475351606117546920337503289119683397377791656117336681108108929901303273488448238059004468968715337232293990122063207907015916491180918828585366821207099286967308854466976579856054735415549128699576434074411335920442555190649627979451572513017514988236498134524195196597995710159729989390185055852660267192919315223571502608778705713537008662291373035458917863957716699754246186407337688497345848850590091688120912920034881824810305722266720035100271806779314684286988622874521029177892718604598378168755981276250399323782503043296530459675606839090418456816613795056874987183750968600452149323996584690333822644774633019507983578235735932224048005520729559636435727432130263882282914215847542009373727884573537579887131043348225107307201176520812088679724870358603919913482313675407352168531978268560817750241397708662897264767658360751303228260751021337290479796769017542455212738292424297100256902160799850400623873394378848198088281131275520218509138881488603462214482538430899175759543213074584057556507462166004798779449551561792396702249079491130508634158416616104916844065630773787575980948038903104390396813838594129019187074263427299091678074438478762262644230022567230510854005063519284793837819929772071718631948251902767167368529419412012747382312307726864323533504671733221470635135332311627554755497957100479867961836799914182101571547961755981442687978482114380717041947940548966547600461891685462354484651384724449146851987339025015969732612801304257469008978757969528427913708035638937970786605829926617084488808197635331446395793074812029889812052492185237310024379088938040573146267153626833124563233431584030730814885280475275353074359104458562194705573929663190568530596087020991720742390964287403949867430986473879107556392081155338276130036778760516481399722417836227715340733348779110472121476995818837316497300623476157896027718780723704553695973326172257793416737355096833034752580285336533896000983721628139748835211574838960438791237270229674063559550591248407012523164635264420486912612129759268179698960058741770904015119775983497872512284477695832050622659600467644557135012265498168901149756990121404576009094857326200740509585787650545569118478747232959417706377018042753508458796313617154243682172008648935210818206485568432866386787211467036120203666005434575341211121679752141211206024093459783475580633399490242554340166247781348438695596896824369599191006566458259601312559962442448754534295600031022513680366998708761801507508550336341737005636058953047338273069592676719089470406845575180488210129316869312521274607546459389716989638749206393461445560007521024555489930304855251138982049016441511700268750440880314242040590582562689723916281752697987578996134145088798557125250907562270673350405446418940756381072361801510846601352722720438090357753360522167614895455631492428589908303449966319555774356471756996285679965905162049819864811177136930181120225458662861575491575917905111205184084501026095961300910634091689921183900326233982285975992986388245669820588216039180862320303456080654572300829377005998519381533695634458703807563063933876121737103482584818343693005475270924691721961803063615549209378897806085078032027732860793941852747134092629266101084089777096263822379779334363349117508579949631805162980873083603866902875180368427174329822113042877778418291172783749935451461239184506602866612947974166108139757985241262743480846523775468255519748913185639152159659422911243884158817360072901019281638492894317564268656914307883338001079311519700715676627322300550225988733339746658138649547304239718291004470741004921564132082911076150238908967976797858782322411669516603162902603499716111360182540184611176973560731432560897750076563779049411369377935078802991253596230806779895203048235875100519964719882621769618331589584996326050455375288380679239999157875363926450334399589420986921723144160084298951240796694378835229912930684469403227391639655690875513518842971504174124804446196555738060185010653325808628525466430369922513490640938138318436529818673441436615706104679257176001243478658943343355539188573223794577330630187438704235940884660967960640122451767666372330881526361428627067799518267974493244197633947954747494770105485213518646031787050198080883459229707055380633766195142747465805983019448527794885836866701244853376235921625160104629086372907043311442280575683583195516663526876489845005224534179663676532422048423434906222007453718748074785353592994025574064078136381842196984469213476351174555413614253567839262186677537106926904337076108170651116364524088461952169537082551233871023931586850637148784857033726230736752892731563872721836865006707734020289658002644831367916732221607948401575520994569914369471228117451743920710380052477731089689641920069414355415877742817184995983540904731210325384538958783220473270536143843386688122266526503759522932751413573339542554739799901669608614417934813084268869321916712713234770243816070647937260257585280953035423053946145117596072921413165837151989012077516517229787655357453177136035468849582221461341228153416718518758644696504925301076775150759303812381385120696976692793769576658530156925616593050242402376787196810805686842313307778794951047414757930814340776714870113305046406661412132712638007609934318660065866918509221911551627199379735776439187945552381342161752881171410513517043473401831112560651102483058422777509825814639696622776434578462662838638554306877215783165790091880274354605113294327094154710982412803509443849114231766666764507730002298186781458127320570563402569462841182192098707393108990390974684257157852798177742748304363909112925349695359947033579133804253960191889306032964977202731760983984439333897264953751519975643171500699205632491562894646819387066004483192067815331998627981281220347377756245238415842115612824080943563021385904834558663907870227062678955599267665342746536850395324917299007576412748407973409705294459176526582536067214345476370169993089700919900810150710497509696990209818645045032582192225625511200089356192652578428541883219644147772240589079334095150273815970938163517442817095092392602274939174874283045115432680324831530532534417638242259772660858193479669243933351586937311782385508440946494151413375424528133745339696238129238971138584538739060039142161655627213189379835413448552284509463011633336141863850171189009565317007112123978386601579528355771834169434928100061230456741567504337725046916555924486757420748845298096873044447267666852249379869118501966127333693485109935259421940400660551854593192443588740854668341247012952072666114111070916697955315555149775311120212584300929800595356236452295002102161391768374582785805343199785090242720933384384351402889117727147211545924445999720540808379909129907716772761180533899208816324240084076815422379396036099434106677957641470101830842882221568740739291253866976128808566019486506276144546283501579882724533888264611680086935591470584499534038094485365704064533467533228573726786776702105627335283705022555646525275113346332112154170742067261940356841131551588826716286956412674361056790790885179222902402535565154418708709723659747677412969918631985713920991126544309491642650292339781697725507464164333066801763727362149839813434503569604053061263600676443765239688286809958376975896990731315449253138504302674349416295658022442388154051044295539912268498917196073024529748018836922091409339162182585354337338848320333136869390358645642946742466193671086475039869814865149269245047964066176855043885326541827133734867598811465259145051635697171818735875000537928703794463509451304783529438576678182396702156112628313359867349392301370556782961020173803467618376773216005931318809881541961244394612622034828256224971587138510162612526548325567913049709979357137973306720649700870725432261693043353789209782471341464103102896950597817741655158880256137280953016741649061562876991245892819179505374167677877823846762906561494659633935787885247319651039556763239610834042779929804819859366104834286360848369466874248767753412216408436721983760412449629593501900140233008588553115605671389471498010558167516988712462121932160773637723119311640040541996491441842740539078559283240362657543771503449700028885692616952283301398787545410720863537725086694369307234999018245315480537676712503716269600869316243734492281939437284426042072044861989805109977870430994757186529574854642667682693939632830443608210094049274819902459864994855613942680933446426673748489704813075319029422873996164226346163788192123076302715101572922497344209433991121649455351234292555599163139558916219030271847578007849406189538490229222172107076105965060275207817432862156446895643778813091780704189631968438997986316881372250915301497705172035691287703411242788531671721775311967337123744780762478790259081394264468056775227538276962369329358952053245382476169747569408265650293687062256414204122670377273458827149507293427890247709923438466966494872648358203953447564922949548473430213090777595596496620283449512730476256870390834450729122691237287490100297212637657962305235323364886644730928561829629831995506639227922675911612308569161884225523434726778676531868460344112904355726248439917995857982454991206483848394654345902897570577811388637756118044630487249449587984231754019614862369150597706279272030382712884898338270458650828642197997449571556679562591686671231919696950880995155290170895628585912615898682754667013320536257130792508730372284332381352245880291523976312591754175946305286018391802974035750776454692406358021629443918727565993125759559216625928597779047191502615911229280359485915335947659503908391277973980412629619434246925565046512013029402732688683421527727015893905005541329234141065832559103155726203630271817160912321891586361489810413535137420776130027765296345721481051903576196319159141810604550448636927091397559118355235598872156784652221708115846905066995379389044098083680458279735868931382364858859290016031139612889023118462113928433414272564428539874057981704834646608864318184493453752397645086015308965680843528144930309747355925811786831917657000872659404154505199158287734191804048349495129537350077623810699121911510233738920172623547358172436210122211263818784976295250067283098905038443330793658128358883365916618990238952483419657043815991792572908303625733573267513210665257002733532640054043347484393618576519704912002138034963060143957315848991608765492821682104314204379925557713059758797165147137013263267673323815543364740780216047082539692975564434704122422631425576088966325660411970861317266621046190262287807803307207077936822000058879207974779411050168316560290544237965376316671324420718045331664806033038513751873353102789091012567870184576731690776494836493359689516374271841791290013558745545389520695525371098439000989192164362071902226813674577704280934703812111775140238512777208673531565231772537391463290046176983009144350886279811908997980916862898914979616962393023998393959129927907109349471297806236002026508961611797663958242123970258702037415161830762355560819210877331376280665240162281461989741159698141155228530830050818694099800998805266455023045174410723839498551846345402377291993009171623760234570375619644065665896832231759306038346353545368993494749538851847066752351223929519909560097721802939059145854687259602374544996545678455983335034836226643917242694666218277945493213319651858950308749610158553286075894888458907187741030754038938523519839538179957883375248123623618237936998712660064641767267456766340234767232472635090616488377575659478049542975823956128008145908771985426944057476039009350851788732709393424959907175918620437770122736952005125354589289953076672637213546973071197762257928814318056211914976535970186249580517743835585865866455728080674270570598853661236504931647604815162533883037107278007394774660932142998934120865782506544514926825598687231803343102216997834142464530102901845602276745795758701982460489881183618557129272996333758515282037244970535753975299329833611523335848302282226707046101622006873464151657105208727273856625430243750969691818992797909294240646798110346772286803441679818279192097390322571512225645019734104749492497764746494825521549402576130476233753551975784143554911796757516224597220438833089965097509177501195823030787632435347159432227483296860064529813883043908632913466112051854592032469191709536520531639624140602364349989532970117846414008262225742794217181497153883717958982888015019162947398806455196591236165551521722936407743060277705036550995371293473148279869949225593235732970065948002564056864955334188122357486723911578257965749491272112821529235886769893607043511287796110232999174220246306947237272795843682237061706780206934848506018803314419571738066478533313871889981759025554907798885340336744387429487624685068039755596944035056756108606268732501310879936863533614852534686128152033538208874926006660130932839305568841533093007041342899576029838861585119173716033111970861233163559734567518841173195625892095842986283110854768812450110063701896913431593293760887104543660877228022860145153994557691015050576993173750493191303934021218055485823715068571492712855041227080706779394520746724806808941718954333282027975470794965438537823204616733120336140872522566536593619353881757121580457344423434783920188633221527046552669760780260987213591103413332314902441499535020223170988600416134987336460541790844593729418944121995521333838978610202757382529838086727576675812815681102702897724936592486333496685570878105294544273485264955095446222618397509305416424933321105398597871593683873672360199652598765398834401515505835281458814482124240190858873594339230367550893407535150370201946300507612205543170841888719526482993871749528596563190299698893480362191549115846788303918389677611842813483158663549996491864852271336216138507122684116488211157681428976881347998802618880246435099508891171379056218557839665653683834197486175961751923083583022528491850241401993392180934926624842769743966146964837409819829140821700501454977093224195243823877268547387971167439222774365776018775440822168090489041426034860604371612164165427423154042505773833836547292745083788721392037062995961875005452932010981298679913973554031274917154664566314855370673922049027171331561397498608263340549360893493471442597482306564861632787872565053490235208436858063160835195011522444670523750002664667722315803137112075071256839882317862353182532128503084424347267165161325765565106560032207089345516808734874416182247463423233231321002061337705827506390550759503980515886347023510536288484765635391685427677067378961615749209174354277832065856941274091727937527843420655791846715768300274984280066892279324769741738536688963403183239970482074146622865862643239399335354949851858962047646398534166806609400033029355501647577007927287881489555880277952857253615089789493214228249636693220730733337407099107354229438314269182224107609892095564393758982678488751495774708927492438930650929390801451282591271390333563614493335892254825328572846326185223731986864048883941632877449601527764424337624697549196808372973097341128432470393223011412571609975445437007954871975673628967253357876841633284740753744493363796743595484557863022439315103619343298487792392255190350005007595803729397526379582171670165885197426250623806347240566899535569306161616269477361821212306652049271286458934925514490393908104377236942689610164616516246445024770289607091296991376118882950514023682766088138113718305878333467361595640181279271801006771936324805216782492632170245707770068001157471181782962777189929363645089070947488945299927001430456485212489538287945709961075979495669401765051048238520357197590108479253654460021069987575901585752822184369138423744827260025410678389061048238007831566029246784563783225660510589606582555665629479044527988877534047217755117835632596491960360015687582808343659470596547298255577910213330382822483317727127802953724658661006669761896350746165028003842756990111793756372968341858295108190603247424918863083315127143194396205364256224396457686099361929272395354267367689705639445973707926562522873946524106383373970699252267437883667906502125552458178575847537896160374576493995704470756516572671735991851056957899698204795247445783853456637924172003188426812748187050682832861593156448821814711118752537817548896220126206642809303880566221295105831964661857964184835118655032336269458742309938437163699778774710763589666701135908253227914181209588097203952200023483626617463576235074784928860188258349729414801778315044651279679518789420134987050971857061949028886860299658642760021837723281102683420537691727956030713432873309504683387831247486706820793725049191506211581845373491910843323266234488712949000494266154322838746538954726511637108552690715235952036798665802839671284105339394025050404448721112210050583726746060012019665415648582571375172508476503994858062863953916455982277771442168352885986845911699389933364702725486120254332009701238672782402174029821680069935607922445841613158227876404122554640174947945576381563017603322164084693973293640186930304618214482502827760175519196964767547084061045581032405397110615099032759161730665655257988187933274345642651803212766319063996120881305994721148724766000716293940345933934977615142909433575833977768256621472427839054817647934325243574730348469196131760681584874151298645594770773951012159035046670921658225995477314698982196535525049822718733985090934346903093270685789217985659470133300167541666234876816573940386396807427001224681726143976805311826182817395034039422258393128353499661018313386000009660702151632259114808802932335128786218247753651898276163990617435143386988541103073383205393053944059696818422496095026447581103431553838438226949086546583411111136850319111522672408133778638696266635443009994694227269495401056704569181907410961850394349358803003901035370543996264178024522160358725803974071133393138913178118701769043846875162388666418212531568624307624387536307012714548672941184387550136615022773473827733984788676950483732817115472648405656483027561884727370620334080701222370588461940769798255001801840367941157937423459549576384911206360255483774146129174227790602262024090397281634513057750832951212361178549884453641433556239238026919930911793442548146788800769779131122306152696932627732506429550396006138808902310995149088438676306179816342183269427832325990938727070580920626468815700011459455201756625693797763104083561129545123167073046178210512570851886249717198938045843540553597913031157971658931221661045267012211779842687099192526463500591514796292441648704906103340473899937911283321947965945627316520246075761633276689057584614111029719924730429126360165358554202831944751511412856545651183074183175914530884782688229323280955520591823072250342864284982674798515564280665120312211834235075579771660843280255636767430762809902587700934786613277816934908646368520653840043566278162032279607441065447400756900727574461834950764762831406946481617572362127196253048669855922604875494389785642796556590720164786619399825442950116358673805339141707951077100499531885377375760942882779576830041076984844546409058817990163668622114916610000380335046929204503768136450573665941290154686029877058521920381757536964149917327390224361925877597438337342844270858574334634120896639072634780651484826497686722735698883944913685063935922224548009250198179378143172122680864811375832011307501449691797332665129787273129848189113840494181674381786762568032479746737279994095092949439327023078192369690726011412657762714748368260699000173191432863305508058533653533048104377093653526609960578910933317728129495018980409787806597398919211878642134601724524870612928012444632469727831407327821314504096925511532111394854316683517131169716342621189010324475378859760602014118587380896681640808139885651305387658186620910443955512773380708564647393450486942724839387503441685943523819879028789234714293880953063823463871426287782369739695871011025693946739429047542360017491709722315947629294840219544797174618960153152620830245806276430767528892731611998092004770357059768337897070574828218763873500929837652607496833655180682547638389238965144127690928505628086709268647298147214017562521370481657023495225207179755830526979434608856471140616133284502277259594789153680151415945551358552494866814374234090184000380428818427121885633696042729307127088492287346741525740286370621994295493555045370452154694372345222014543645929827463821744854447724512963825123356648070296065310662397994211707635359999701887204743728644604899343375024866687656226856813219825091315298642050534222643585396866652464061517690993167015414443642984585179909349205228383536941291949764009559424464934173181194591812831982750246895899128043948668252069761929511247318022825542333411396871933822859780884051690275531500258480422912800896608380188037249601199779672244753080650889562904396762563377461593568924859616022203928432729844519638406559259072452541897117789743869157683638576973227498690099926406270506634743263446600555024405098583408749030425865220748857071914432177035099855513324061924897395751707524472986617189857577045529070370440295119185265339433602343072082142528985254280406130446252666385254356311513481768876972205885683884313207918819938084308502790253326252215414722560471906971908353403605815107202059333492981156965746152956853000091946035624412573209879721556267998716059059220818901197564196663501992535121900255767192633849321519898821065394012077413138647108601153645762502138600212066626001685839287047175807107016501864758142919202501920879761948965580441778575966516990370096883256031833080402364985934395151141053877270188426954706546900444579751084367872669741559938419186682075203086087907610804115773715401057899500503953657251922463290790284971819997108749613679414942922878193799457297870225078494127820551439342155100389865033034052830602661388217565167526985518564632488281913709772235836447798348255128388275171832027170268302728288331482784430038742884898717899181922830618443059977626696936093605607663482915571793345444440050706048453049655510019734547737007301269079019646270197025738475401636596232697275304647716247853934607104186511422229248064813502573042664298174641992688416045093458747763985389194272694935396001992525705438343371242573387677168500510013655374283829098308437495691281203465240189081365725913299694226232242745130622588002174976141464268400891461545185491070923702383589733536725887767384185684886690824166569098482187697978815900171159193778900677937442357103604757421716516419435294892765458810415604253085150243185502109401048485612010586957580424213722414713143612384621388331833145660180541707332269177517758398010480704921988145951011234276390086529656912219306490924994030139774563046918673436208780955145716786926130948178216052513207194418414657622169937953033663969806718169854836748145819635111638095929097387107142279848512532589239791686107716213123116696313422288791560149634765114590734363405284387795263730769363095435549934456319995314005444820450289860022553857043524571321742920619227404510939222101789220520059010670364449664157736486496299776146695962347331288670083211541164897810852238596388305876959941090235150198263939917764160247526478475187836196197540785375015210474600223018341681099295249116085898261039453154102552906213967756268837327565431294223976447816014842752204421620006856444445330011409717618723086270414073221691686576267748861722508259946990424194761143357280087266070528815215117547802466347507461115170215275247803285455842181602294452790575840048043241478461102916965414863270938810189315625826081681014535696432999269856577533258529230787360851498111228798851263921700437686992230440130928178140929697539680687967203629730861857288288438105097494404552345221103177221492745318795427869147361673211230429107230311698061894057426541001563832309733296363881405568039416501121078077772019562503421812158060090161641413962884161428546215925617618135105526708995395900658831651383910242985806247759249878201640059588868395364248270074063716128310713637552199005493469697505164483013169494286264154030524871972860075067526856981868847207832143000101964020096696312415701130880802987749278395249594152347603453528358867871896092151801292089936617740540588262280112769213580787523030571770208833823090759160923677028495377254839923549484111283532958455261137962125753441367747307784765802091498797746016799704707743228482504988701153971943696336737794010780973595461589258067556981686264671569422200787668961039770031138078827722085534382084628416281799477513390967086490884259149591708560568932460206278608552960698120660728119611776858309727810039452982709963427827368164488425003960461042580330074587740956721442470915059686694008548786985030965398122909923674966591717308207572625275602684307945170943975005050185071819157559442093240915193228698273510934408004176587697194183536997755896215522051181060350279417560964558174108048520518393807791380443587779583511112424570524584686022283587381786126847982590116250883187796057538729335766014076816949438866052746077896320677421631611978217345677392461788163215835667572664287690288992305149466777219027987601902946089367076323025838886491130519948289618342274819345656129241258683102138187950449676988156172652769519408563096429726490837874502957737653452891200900149010888893979677856894749928275339870281716636871975632241266771390553888823915877252129862360648351310485689614522418405274781423221283866220262340993818807912378023649524769124608880098572240207838376029062051067251963890069792882907853719377532906448366613621525661288159634351219479783407371453228022494939922073915652130049306703134063539531883502418812800290424322806933570660637269968577508440672029903212413008701659506510330823044512305318010905393856274368516603972483575106699548167996627054362232455907045936569442947336748232253031802071150277752779464758187021635210113856850467939354864882970406705102781775840474554963393940268103919444254426471215294516059153390374985492824296284033385401906689466954734288748969347215755424209086889253411635699431055948580909654974334202920999653021905045672258871474790926427841201855807025491689897185151660317171920810125852613563433271957495106341844491476319842746788496795066699400802688459756776878561254939395117036832968945061853808248650581907974275747226436000462173712892623378011857428002000274197480093474654081942665574559206888051756920700869426765317855514082567638354580528333046405463774063625035065284787231097529346346558563576121707908544110908985990082367032909890377342174538105868014303600739104654213342556466435206300715761753134828166168666055071053554173312136567493515186797718891326640967045716609168227536979186137989055984288782640114855122074298611209363977572579280980009496968266833277761189363835706718990895622677895750710937954957611594259873817402054378667627034013271501396159881576120492528098894782778848690612418800269269949261395736118186384535397754633595304811015213051128472714448152347519599249993902271092613194913708865525617040089498539846479885242297871327060928617149353900106525815217377342732376584323732365158671144874106609022474713273068808058555113491371112277158748522555219974334573720750967605180761093586915038183522978428509895787922224914970625478900250707416786109027817553704598636148909628926700481325483294163973840181391870090600304868772746139877660352484775627010554097138321202540996093482826460411338421646255836769528616698997120864443501568340530279864257034927159701430845799622600419177935645914282129421944591587152821163570314204734850164395551548603350607929859562814460747818390850873817319568512815239846110304434888566839471243177989617807047763568305736965603506749308956183503325551489152354835753803231223980447469243354127169117088291096333121872576398098487095986572239178070744268750372625979143954545808783857601005248929228642030915009078011204817346483382757436977710801977803816974646519414526598545931954571111365249020032338392853649292334702657410998435275078729273160504135759800005595538114689842600567075135879453045616487635257227018713306508946134773984138298806235292714944013360360983399356664020655495824332081267494773036769052418182217347855211654319013963577249578295633345662061224398152667145328818761751687217071974681088033138134281597650291748411720836080381733055138988153077413950830625634363314792848854938510148410256580074383614154212337711436508131794050316103338828580034601222653251448816314627357962417619602591766716028945859319786598391435540057950157674673868210934307029066821879010265725391000830602305211244508573667121580226048498270270197313457614905319606213230673970621429085554357891876336735798496945263868560827329129043567550343783992488909935184140487790759173147584295951132709387235540291544877837432662262865830598593663397878463194853117946298461168685268271972792549627136448732683018674043075961682504494977920631922101423218621150252002920756824281604020200981838951263211169700369080946126590809798969715024052977108604717846550073334244240381125888857635037025517110188687846232960648570376605537831870782498812106127326595029927979048650712617861410862726058819373883509875835665736302089743985498967306122197078591042628419457001080356067863370550307429311992136185515394876664642376085748397389118132568830108351072990531877682881148295440859711037665991600598896109444994511845083573681205313272229642009429956971992344820088230287809557651431164829046959676539579422910119461626795044263054995732388980735924080542598443799458026615444401349965603380762824801622612882292798570274890899554189432447947342624102535491167848061871515677279843259176868474773802273683673677334207418838302880853451665216256534486175333312089329002311891248430234567776239056500763973526971133342909323068617770588980244533671285749720857671702096642250420720128316081448674972235035759438044999469852299340924756408843449056766852160330427479670282161184550748604573094747544134955479157316776249879033779415887693605916215186127185573955959525313770183310070886842249642504528458314788972640384327495891458860043361679264512839834098557272077011647062118530162036676882757315392165271008386834607104309042583213006337239812466265162763138791675269805419608081145976796695285305880836586046614199302814910772996285449982931512158952135350256523175023314671449036946104478505525433847566244416402098709393578835036056457617955379194636267050172944707481919117963685842433032344748451338668932078356073529911854458583907843968214181303996257403480683044135275975916980057439481150027819056135270462238352385324182574482276834707821319601851644811979949164514910699205486627640499957043393238516007367515155843381487797282509665246643334083163675166660506375337468864165234913367321950481846291172363192420800039094569421494306737093768583734086862287048498840814855213120436102330205584545155379649332485576192457391563000021717014386581263384655253171558188562604580469161676521872567187503546371569205400768563330022110729804558645451329706114033754475588588294954469533452430502595725622539740157448536138167532500871044511326299507935327689135400404640558509501371859379727437106504015139134355651142841172017487161181258381289241710148333870533763643272840073967906109576002149349939567544852535449369205883277490107831925323715706770507671490297300861858103140354476152132860216318595252735468997756685935035426539825146280357470831759691894805914016889057442827739129684536026101992859495815099876315985281846783852465067592164267645024541341496129844199610294929177109968464013158804271628882659361880154712157875783050192571514836807296227987885212737063171567354576686501727951343489650719186282522539855118493979369230855539361317458863615773231287371522127679870913201173288015380094512989093318706972875298085197153247426430480742348775436439627980000347517092901386724725735934302097500480418313920656473427690043719032379116382972116434513312722387786324137820407761582302091049650397462258406823118196261462930362804355615621218210415644938100683792212720434076026056778753295470718259699220139274227467981519351787807039150407505021631062334490657435107298448314319929518963589277315600863122160114767163782454844564364223428657633742301089593837591202715422126503640646351905560512971063536828838376680713350366772291723520723075478923043879927278148925502872027448120290374826140289803609181033599810646004602558422232713027047652718522831456922731986611613295924670474703952317127876501016217205300663902690486449155431812777254077643193444582334969941549208506685583140701677246591052610886076245457485510614180231231286964117208284144737791048826660157433493058748476355171218112837511738811376656691318766132553223239738959984596347488709861360577400471356206726602913780583714274284102854657254585381670236414820939818822792683440440818629764454200163219168405950355219706066982167649160707271419659083295176277709837584295810795851297110102976228027340742400452613192245980101182383733968544060722850720640115932986977176845803169281372955602027630309511768922320040755688223071315320962872240195475589739393619700402597991280995394407054000636537934563639510072153667670856983479176473994013758246655553411093380496181431647195227788975705693057663659890020307884247028083979664022465951925691202385611061447293207388978742506468337833292546800832721853709970850341974818573273694392254242264731196929169993199560423052154180524523921760980652654905709498061410325283737973660053624587571592647802439440296367584770175935754836357006056419371604825877763803579147021515808208043328047841277822853333439347621523217984876037573515364162662450779356727385084838593635196848642055884179984987332368748856069768818105247473473585647436150899185810203623541688282789360231069748828084351001939286336942114042849172904647346240265429087385606083893746506925519027387574381183169917424154818791103261327749846856114473579909989410675885140952511731455705085265817202132579071120380547613417350193036324059849299684373470540069029830038312684979043947456021254139195051863604917219944959751202574988553181901378808865668825604239869031105867047876855380323236313023979792661866265415496026602751026804878205596877660764421589551927400746935805594623022256617777941700633877294224331405103566022779535170904141283751707469601995896602166561098061853657270188720124780185618122048670326659748142283480764983703631204459519257881387597803954998846973259266681005117716887458899013540872369164235117811198958340651752977684640264176798882201676118751218926170312308526276887958258594714587118237537929428876104208357194528642932854024289840369003327397668309403235398466107309947493477949495182230918697693970775902694079951569341676639922553876900845654803734980447485278551164078183325916940100302034045188348802051714692427288821716572212229218973309031358315340978122481429585091210284368391740165414362880070968202602900003322081425747129428134553447200301551508686341881530454859696427998994388527709359414891923742598768236090064414537596628666141504310268622398678025414993678066551516460220916710381925491592175838171916093945404697489710688685547919326357949383180748913280278751126929897372139791767344844867053326850451661715447795018460731820625014090838112853604151522415208144005485021728358951881532855698301923920219899536384117914479295885334470360022987258176353087949300391080526556920337668690641426350924711075381763749313305944309341391880951936030604000334929155934618057850173101711212622995512094446734455794588247995792168418170582506427559023447397376745311099202833340761586839403235977330829446815423349727738967628964244637373121098560223582945260402828821914607740351580762853948218238366142145229272510306197107677301800432903015847704899663544525299935771062930159756026499775109096618935475119648776421363235145485456506485687289552729840503016825451429605516140537933178506894803259657192344140969977371141908212293462907561118409021069913225520572352053362033550872025334756886510927965631499914613661827764837001992681172334794012802623438418403744010337209793007251342711510231761325032135260524876198948746709384300841898694871911583880785843116563496542024431203643735551333307779885951443748959949271252481610477422265890121601968344713981337829577680617179982137831345504097930667426034950322389269967846462778422116268894553409551813208606134952738071029448250573331888720723443924789474675175270461281855940347700496029266279902489777731454547798156423637049839897018788190539660039444036486576401032392482233782649707167244780726129076176206007281425942320933237555944527097280531123875031149757296681489131487822184912255393107450692600296490624178562740380969198296288134106072373275736960190063316556589240923418466137362071253812559384178962367344944858879772208448492499769619960544761363804443152613541612962492076084816539067872131157094722831184557860935699375554489417466563985236619200550868732266357668072252510695645541891017957204763536588958393618372068803943479405712723064145750941136602695544680651291893598531348408067870240054509138871495911816836776874626490446175264164214211091182923705867573413383229201297182852192587010155986668787843157202896349305514490258847457596497839312466221258825444190480464354363455458982348248994731331912766682811842524612450100302786475866151315940094181853481851698074172268598101737326009648146361129349769790739730762716364980426062212344521090152045694632470178906512501822732060320689453160394281191341216512510413904916615535791556586124364160236303642131056357727657403738816179624336320749099505972889058181874733694465249134194587635729569829950001301117293215814377779287685209003224015885410415638575505393722415457403560886997438371345811905561102470261651805333223373067395234972022374911277019859546834007628342121493679811782865305410148634111203378605578946537871721093382284269399768151482489048348931364747343325633628976863906874345762765068431544951389609623097550679456632730116119382406668457708789171410045222669436985498859870871227127811694887734967870049930708127979104731676473856268099777797688712779090240777875333564141299251966287900197667588561999026803388556049273117185869601430575975170816882158105060939953951325994358505265963150892425598727990465696968155961773734515793133684767013840650520070512338916797082331469993916336595241180994615628349952983879210925353525775179065244509665462912731381334581872023915052662795984962451420821889964856477125497896785612657938150895875988311932454934575243410147542445746167716874404692139863742266129144366043643151367923178644210334103689087495231327026092413979091011503153483309090818992455225272624760571283623054795540136242350859136041964886614900106289580555720490168175253365247875263791961819637645486639937299835645455631163002743036308846403812231991843277885419387728119854885961274374077413154414432478523231589502618747349017294489895156447967747014616381829438487942519326975081437612692469390047463849176104516313626904861336810011039800787859166669285284365072885578221952537008566237120872245542483655978622081540944673339449262307208848078696395777317462619452233038097871119991741927740361077683649797734260682081473202361334050604079685866811361026098063951293887156877937609606451545294061609374206432433455875785777111261947787175967182497194215222262110399980209575065951169125520275035280243566253573260872694471671368868440732382720552214277055257720365586385357883582915781161750881161149953135801991602475226215380370714823831343969067753142624429834391359884050793690152995949604116419540690846685020260954084446607242263158427323956207471149966119690203604531975846559061833141333302194837167595008239984513680226806703989570917208817239508102835642403632060455436332214122808427929657253700364197217314651703310160347041987608608985841741333029696520048451047014638672687090293911652004192026963992665702489859639505505345833737857817911397608128737293012876845313212526465142831841551487510044428766083383600949149753779053262719896425498897819575800668233093688142576204403846619597197567905080417898191139760352881136349014502272325099344587585067916544486753084481106402837719230800116958344397485821269205661799010894479383519045653802520613124006178584122930556692036213127275969376149063181593846985984251110294786502429039637849902699995826074906943692764976986881587474329099236580600841115590441216692346016976804507544642181428689824384694540666346526358643472768102977747725279969121361389745259035708784957670471389568572755371771483769387547953022095164358705235934907524771282112535437278889064840377961703455415217797930533854726970900006275640476286263734983749514891477253031099934252806375224304088301687760300121685574649298129746086393686334708468344881962843998587403470046230862153163367746606550507392758999655240010740281788663416962991494020795540879410546019339120946304870084584778984660561845191502119209958366382959993892173394966266198492227530579505181560361512221580229608739652429160241319421969671916916833381395406572855814812170564868850223580778175108548831921142690276908091697676596006564061395360561774963434035524111013365745670579253661839100642273856114286197784136044565882252425659380425828404600692951318684436175167072081446765181181586876283270013308797678904583829114025490282376939860767535249262931871150917077379713769167873445968153174928576026414116794440158798796013767701660388954148399342286729733299822513165788198591133248370320911477543663656836549255443983040048801356294064910721356322016192137481376008783616369967565302014965346865725544391670203402315454496072794267017633924941751443579204274877600206993451548832103449284794850647661432443312121126911834439145822567920534864604539988563046293088943230891433464618007447103343006852922565472513864151370486296927907328481959462335514075532342096832972137412039869967007929420370051348661711480700397167166231866673592348728701526739460638527056586729666729394928650731615121707324170889422529149676968348951143277473592058665379807185648267927847694883885213580167136797894419943466323252037753282108533163871678198793239979852951237694860959495063433792123454401668770742371143986989123100814226498085468481639416699332795798422064142260427306088415079744271922551879318853755036623343013379111280812088760317270453432322534720841417012169352662252187199182083147176673181538231266747736020778095875132877490299192982205971620895025235059088427900158385665060129765761961761051792840929117350113535627573297219135251569678564052035780858708758895267620346980935699845055337810287947141702558930532655665720899034722126525759795891619526904705540564090574977858252662362143769223884851341580903914524057184126055927121282915391724035247024914508250637892504704592873927865505656231106689345794601274944259096733690800206337286525815330977837265647013503443561374878343817515428336869018101664355339778963029382140920101253163888957610590966638116261559653768426212763724942098565390191993699363381146678557010112350580040124823093484778152096973379400146983769691464259223385525617718591439860767317147189138162728815487289284331655369634068410831239484293720023527103673731163102286298031185947561440182006154804775762071291249495797063455119511559072533383662431476975703557300717913647422663242052349585170592097116743991474297693308123387567899587160364197257060990497302880958380449602918522152743883389949861521578527338569417067534065604644860374164155858091898074285529454479905112667622028897215427263657967276062010794068909448282232253041176012953551131848228109204255576575645968455692562389248613275251373080281959560350559415840042890423506562191699289429831065441115981793232011233834680584117949238705156709156029053726811008621876903670696047595963228609807085832630950552607451898654302248963552546306436928656238632095504722116279567274432957127954729545619038987206354222109736501904186359376880574939116242122233766047819426659176396092062341858995699460151310968027769690327899613654220825429350189716499336183798405410475227742570216754518328085374827381193067958448338019801326847447495554331739818504350760375363074576527411990666612839713095359135845443973873906070099843135239318461755290255745692276675699779058209753882255977798777774550942554342954456623956114129295921171526491700125763190467258526639837123891737708598728133721910030089742949798430097872894919643752145563551848652150095189474595823087304704951857817817244813006677283974685381980811182046775738048359201706188887367276804496749712270671249901252065040940166364521152623913268264150845369520171493541561579042901552250617549735392080732825926631038272183847291579034972276749251813597429830223571861162944351705932667754143170354197995547729806399862394175395902750571342795102165348865784656296230040895475398904589391191411768530831308232079859631610040823906714060412358484558334647637249821856441309502909879711532663352498344505804274955041662623880377808094269011025036985957263080575731319161774391936584044279114430226201527480309198796598371678708591659712870141721287702765150646514610660181935352744607106532692691118836531301222094455187237242683650918735171494053596472750903792722934886749616874744980120531194149628797663683003895666633903103567861736605944291615906932461139921266828773826495510225873779863324128264750844137313175081858869456252832961428201573430194719289439329201325130046965748489769505942270494335774870378667591955876347735249297397479503962788524927116835157636186097007978222020558241766142231396395031527606085319372460435692488947089201403460124317663145079011494667619727955564836058260690457814205117610871285961100254810406515470637496561641296103218075553290758344118265344642211632550788610113406516498009015340659464757095400630982735461022159632972970287645795633444882420583176544461511512174109801842446836855048399992928045937368275510986800827711019803580834406145165578036597054315043662759151030265168352178639690568019741958994136866516153036399721808466474899060188438400058808454002114372830267286059698224245150682078710881409324211946592920390103768643653125460062189043284541921592962284093187280653040889719391858969496234209997525313952697428373887852817005922405214937463390033878290402514774271610880128665271680078742571607860064451358670252439261852953919559029281647671039985947961485776154411265386269993926588046567807170356926059077889778175491498286409585880258067080002582693609683652260517234761695754078008739756775275454033501045103142387427847177444878360796753339887995513271636129806967212383077871897558369110643179408184533296032179849737830952156231499769939393374336941467640009633900180745934792124898693305575836683035557937259615166718766137853634849702857382953791469947005510114440641496919008131600042523688898619416527532310225157621869481767332858698628151515093528285406247725846171296970799097555403577000297242643184917188544967148762757378081215745750076535778678143626560504449330976239872866908599639506415942592472862665889384859765985590489412015992660946293636502853920938848135429209565337513005732278551469245559466973784655836278364656505969987259098241138403754044965560445515882291616747426722292510250879255859688011298430524156346016902836022417955024653412759533260812878471078641599792813774302483093267928110593021681115071536580017539364835326758309612097796098234105370294965842065990973822761632177698046879860146056439386250691791377029932118071754863325902313254584091863057674714724881095990342502964271530010034745064264839660931368718478025385488031027955552734137044119427005341176148515925451674121916452340559095945921188404866716567691365031491676601370273469512658098021617526045184549338175995732760673289509608911120286903377738503850522235641033046148651224055498335651466283585530338754742530238172558408675760282142116391754067143190292959904712278037139073639511150099903966603992867377865989706143474540278546368209673247824900165794321465310296211686217512255799283909425628187662360937039874184055579722318909690162104965749712875649929472733940146672539075928757383088938714032994528719756955682192965190258371502578688437030510404293962638689599881633818733877913161865025131842338584781161905083321137949175358871448076062472926803196702675776196231983277745980070238500805198354059373466375717739840960551050280775070952087864264920846936968996448644000231658280684066442251630016392115530714460352440301871344890287166559606592368601113991926619797096055035743821431902782770838795530323805935951714205790640402955217658095830182919603232528449786861859802642133973988686386869611590816189648292448520800624396819216936486201881024271439673753664406713837041607851011968056584599912148683882191421074925682149469727791140886252842835576495966744895808869090300035547418186555533460017349392065221919323670270066227251773413698357647249897632550191405378213251467320245282041081316354721100997695189097927332615895496992751723156551290773427750133993699098089963695682146533506798743247121693118402180573125856064289665623216617342375575715569170892290684522146127066626597663824701008184224395202771983381640584581287302033715411879944695727931494213713261754320891584875788656858546170234697762028472620905696412164714873153502933176716098921173877607452400933951209430239621845620319674129159546964196139078005467684345851223061682274539004663435062536535966494005892181724759941331542150205637097532159821370974767098388196482389651593922277124656228123238838258536442828571754505259249054737649836307215835878325908658762824963779777126214621917801553619134086411529908744635017060858804375945440246326466766666212759408738953800912753942020375599696377000624712064770628476705071147935599267051834474864289307129232898126793519771175693138125663084333456723705183643520736492714783329885651760968885792268879583453728850984611554075123053442202691239817926651328856723000935902047657150207693699688337135615784648693657860545693900642745313349175185190561548625065762390629970912458131425285842940663128282499750657449390822314590877660205915953558816143527381787062000238718362049671431755801246517893916876194213685572680257307510169180473644546162808834914008239147679508813264798702301562249499992548730995123320182972072772132624749267988357697871781049850303171439158093726862284071903024472306010696455228677625990153565984885251031801951003296225615288869804905620930393837943573031127379817416975365431948566698468850955875302024187803663653695946469663919836078940958442999727208633491789590260610548864401008847752462050433604566178409594006334144465975677909545950845381536912389633717907338319418119527439981246479570468961663541197744165168751097377449002266940724351923262648605470890528986745118283139807026026305349354088141244045295979668190212404847913999733920371316667849518721807261190064180849314573958009074626789531319471499168705636464749797681397714672222477028347277148086094705320931103013480238824207321857780739856860744118941781182795397459498793376038059883876242076301971518384212135888258558832849969155472814173686626518678802397816640657395515746990200480034949084901048517934153596970383356761633557820071513026689421556346892033095762175845982958125922452322202110950191388469113107185176558075133100095326787741793491821803175208567857956555587980043484324831262623363083736080794282609043109941207109787477704086468502759920634833947268051804206247974839384994180880466377611638847036806648190280356260551664833003961738534818960171161429976172667439656705960971225654032709905298775954561771925088664168855326748828938845321685794805763513053059399385861197410193335857741153162249422046498788669586808716625901418558470035389441710834460838989643023282319286369751999946329503293763080763630496888194177021016337448961389756520819150619035123167025850277235488504125746903143029857374783864260227897703093892824953076513026426517237229043525440663624218293846710858749190083680084902296959543379144536826146520344966022685215082812400526449526453714792108058715866590907866223747923652522190788715003765469291227740701139804736814617139183826962339597086088358218614577372349834445170974882802432962582858415752528866506065458985191951664666002878932815874481200364764894024742822307157241076473078923024206083963118622611193908178614385179621640016972329183338946430001075819795584624800721656082160039970209083397504436712723393490508185293164483864356272086775265162713395913138707059434049834985226988896876652887601981003276709775786327787829124582370090762572471641510073336104421583408081076582953820607698203531570411152445508859351374089998341823192664446396452773022818831022062192235764897229620404454738634024294855766153142780512147132671734433885706017510063753847211142521061057321714076550119206635625419233729509297159686579790671461854367251981387733034063249410669943900619814952079886598849789597493077284628439715665872108251233048639718003263473964532223617676408207743922157047011493482648884653715620020598284930013994544804137125456500653373917416286946232558060289619429676084860499456052856572388502083049068557101066657826422281081571414890430566988305024590994948443216550175891488089751376088478451213460723011190002457470466594928210047483668813562547137722609656311531379349526477574296458922789671990459639566785472289679004135168678669147789104802577210661780008071552311158572283372643469433465478707864430625793802523096538110904746378347024355543262715124955433250038655091679381436779206672681749339661060623993582951568682697529681760095255079071402273389043449167507212275370144320142144809509323678649014512733762143278198863612892220069590764192549502896099860466723085300553298644826983355211096610286662268757300626826365158018259090848579074558935504476798704642122464529769175405334812031352116742006184379647353045397639246851387020703000785114831667023895409197286396263770249552568328495116722914238862638411201496509514349244858309864484062095417969759467231427701351949566150806262310619214684358432164439846050232132291952559686820299409515577133401212941811266200190362873032893199115268939082626847369712552655775842531770989279861072487065820393839062084812066518312909289630612052213987897555580174638589384523281271296869545736220893779202027334349601733579069787081742783433073066813304470874377556473191136431859851198732073505678931173525465566273469627207266674295331210873047799551665979154054899691069942884409326036498515207520502951795354299244603429451600323143808959709354423094175178873751794802313479912287832539602696318029529416173104855480204646158170478354803228883409342444901993690189017232624368748339735038125672785519269343490219678813088232685515607934513249610843123791324581009480862907703947788512397605949037777588675701425650262139194109711231149507248332986371388801681115450438572353692626884021536285849762352066046877611090295830806130667023842543956367400583590002444016630703045394035379413031127613518909464439026407165037246295384046088757306792705083291716629878181681493182268067057308920620769258489923925677269905601511400275988551452874636148828491537361028706271910985032484705158121233337023476142661253654972788270845319910633313593378928569947604151911642885589248163876442346608432653546200177503223224732634180703854905066479061817044239984892643691261727190483099339555927678539447527790853328549548643674504226684178871731664835920340147829727667620944391901082507847608743360811891871783168261037493047663083773941581888559486683851745316430878796737287772446509259548387333921628674627962056572003679666679395572861491520588216716716361141517111733208387679460426209671165200045528221447331890397617772165839011858096598735236936274447359779257818400504187294689951721751996803041973031420426850191143739473976662110188129305600947930059595792685597304745313113205491215178498742842587769618999395921624510646934154783586200043460357439397316098355221149572586021643537273323299312893116243195116265439767041396992800790374440837673389394736164417025612006968236986953222943452421807467969773294817858600543597945631661100808042911136117648784444859356213831128268485449396159417205046408760769110795972765025758925458607482395042918749815095439924319716136537137532493635284594331916103239681472654398539230566906065562055548537158197133048409437050707170298071494884107525544007652742053669062202099855824817976499944689626226775216226413101891817964136299720209506210275134112841961107295249287394432730736944188627485995075450922898802712771361754748083270787211347705962704884986278582761591879154800847317114458177038600953125515857347604342298519825131667664184880104192777678485466756634963772352210952155441520136773926353572553323270711657931757527505754396796870225876013021699310237202428935052199520430631996092842668676825602199950129082073167312276307367857197644441559548639126729794768455491504226930715921424180457414612973856532846995949692438318400096161521688595026579091423177601000407764685235679528845007128172542059410275635090196354476027901919770523987840469082042303000376581610603143050333001568655773265767497718939754448194360408014391045419426696736939749747348839572054216605678991097245896741348532631684779807027357359494536539520037437142596895384518326399240253226706131174237287310433676910174726440091878682827279617997347228377383797094040916296685215294610479547376667587266453330858314389350866670761635199492708404200736770827658454620847028563071935845275912918659031122538030818910871342140681081121224214997445881381550402649177476948793082950388696120435957494471913740757282928207004063490587123664830187052465393102422235383555333512027271951439041493434323996758103378418468586757251634410318702567083750455275934055858727017138302785765764341321016168828957129994315629612990218857298565084284791822091603071044118665304580877096346793913753671572512975290370159249652183432110151047295638128011484210098714413073814265486484081772631448319928809192287950161218533817196757944090434400431127621133278807022339043428051593552275866507285031925995153303119608364384768691627815556106621455195579403001499066756708973648208924805586800241721464214456633985896160384005803303520557454472646721294279983539340243676070633261554321817771305384673151287577262090379307613517853517648673380485835158010069237029240512149569441629384686223057844808525006297763198192606445082534887892604561075184955872955761543429905258180116573891884861724900529396430420302084753283049572722708245841654660883016584564840375083091712941889977564576071437643119755624050288144218859909774837337622447940614711073833202452111659803482885026057870273346053850886163082169770431341703529204818103088159143254004964158903450936738871306131249490596193450931738411141008835583087329827684262229942942337340252681348628992420743439291193911080584483466970198855506662778238819455686992370226121738102514888201338610518976622494776002711663174131572731344298088258129071456400116840172852254537614768958772378303089227686871952518425380642235218563175021941856681492979294105894780578368413068689678464697770400361147395716032092586140763886053393679164963150589262489955937546026817322554448362661156492636440569041327789810764147102781318498219817340325248337134364526172019294514697458915560378147125401261945141976037295236502250326069955998602706830461342858019732205925453273824245600601943610338348518428621244115917774325935469329835703615096307085424042622244397174670994015099425070700208304574637022464893210202608785814523920378027581234484308103501394704117196693204303317068205691409184760002321267703934537948621039698018219486084526192086758217170934072179566288548237615721742370419950405500095005306614260754335726853413160847701775455117343492559099575312940941213223626319895967291803084904313081672046821977303379236490079772409648066292267222301127780757404806996633388144349219086510301918922290614803403252463884927358020650304617305479856815746760734089340364952321892798374499236843554944680892565322688879554751139362606844216220216206483139643691725371939636481928468128386512389856242763888036198700437415474825702095545175066386803591055557955017889315372520844170912844343734264240061611799805630499773656208824976414357148170741533493479703171810158928931504049666767963322997248843458893715581828387057526314618283291507193750808900191813108233841505132212999912327221442063846886435702220559177947133199562578983546063340691933971779341818468454770537754882375258743847201663585505100035413152108092135831544766126685914384626846181784579608569021971586274803094213073794008134307745736902861218800504871894534874291916181674815748792102366631817015753773187318331463760072407883480075521825764869416896450663810855012777616971198091238234580622071148352272522334697593036177528917968590851863689352682270127709362337616570434216924473821740540834632519860519089756658648233146763869878912608879702356059957464025903401036291115096601074777974977742560587377686906601650743856667012413524342442380030273272670042191060929956479668282539146167675698214370275399985742671041915824755842252070651806134492175971756020282121846522799481254473103696616093873149275495406104406241556353003165492909710122938830017663305571680746194945913036950063269486564453015418871163007905420022370999403170072838591856607370326940866158430850328264451712872778397723291244445195386504172947689379505940611929808305854899221780548042028289907598385295743468440212174343399801980081470887977149105609315679312254002516976789247181961400026443131194651869853686352246830848831203791948226351244605625199230808691075364614398081601519863859967483321894824967680229726237101910322613721609985824191466418278299019376958118918604070235828671758626529861411470385306145518351706783042342148842232270899496546641425592925402019252682209241048617650111379118292533839574436700451068755038706306928230165160306808926472899400357617812804600226553138083318235786688077561851263252005892702352146603079295724637331108643968679220706223739006212494063718956232149544746761586791027023863803182000815461503193408000527177530502614416947675515912598420663455693311979027161103500365137184470130420726848969587346429761020032017461991150193885830453872543888263985097098040537601295536898473725396629371169991362315471603998209872261234533519337797182732040469195822529184995597354612041768566048858766730611805505903690854681611643701137572998186635783576069028597471660357805315086590361903965879258366995568536888456843581452686047328822586951817722079714889681938671360563969679032154760559002662868478664477770726912638349957349486929433004887608022258478629545127083091276562252796157994552810085912402512653281665238952858092175118179947098253012048052460340977821982014723941181901961072498586120584608272856298478390383492228366441295829152658525375613499663085296442659070896367881701051924768883288968152828265144282795132201139343766952967737639594614001504701512219364663940684536920149998701648650720663636684716616075102303381449543603503072040018030408339167029114085111396116162094138036553577297884878819643762664116439703589134819108937589237802769968615535854593478266573227759162912239395813823547315963033471840674694267676904918289815042095701460601776985528670586344750275073011704947428911704855942272930275425673211907616450392143878528741495109236374581893822071108571004552428597051998349812393930409619449237633863646912506323263244432625015032245635764230851411930317731669450271449257248996471312288494796819653689690984562810478644755489284442222826260203231118861852310361293123344517398550825124079077551158306715416158834649008186026255722099391530367541040320714973347504937587470496000193508991606603826489595278337013540401739454224340360063418725914812065417142286996270728450406124968032890288615394801086393602004898836792436294333917842097002760187881123873623468849625722732444219114808488696257878932545242397732478851102485769513361211041021805254686813084313185951454534246695364139045826444461325784103043769565327485285058774250097054569639292413786620782160180431814608826404615035633107674907074320036507737396117298144123443483748657931253755012886672362337762019830883854589187334677960013125892120822804512835886361308489878123198076990711196183306383518896748392500048497216909405123492457754169458046177735478976528618128628110792304339301620553796522143479987523853597973967055869760969336996431409479059990157224908492469803938351717501590143412226520831714449942995103558837189672494792280173780677645006280831906995154059444128920590483792755204062512458235061175270512287743474754325180039091464186779382445827231809881558959662997599254472423182853868772758843845311992260836288190845168002547336266051661285965716622261386579969284168248860702964292458873700482403700958300464060324632565614412160368877881703861814388659322410405649741316707481713148243666744263735575417833809367345994638572880354535857046078800598629033509011917360048749283338402901840979381948513627975519054622168521256567825256439415655989365000557575149931190868758626295547106110883756249127690437305504337944988599836604019537718169924026457726613117424168861165577004724571394976723014398400351493471818044070808257020946224864949881343556703365430585659141700991652806234594959538261158244574444649518975368502517329453167609395972276342832953710265017139940889079018501600216555932301062670466392036413704229529498909769068086304195196437417270049658672210420117318794956091393558184955022453098753102602035930796669569293888607251033825752425222627265978914586572977005159913270366114224046995687375014661566145065981187117243085094446707681813038709532593209931572556450999563573962616621143733526315706289064796649873863761065009066861245851528993655996995958614228133014469518059986496229538637516709467000072710577963627551875081336378248080069726932341191251826316381279558219299121767949302906391796443865916681347357200454054982876337152460245566351426014133955608780526635312744401048143661863604733767418281854590993310773160293017426576115744858010465158064313314828984780811145369195580537051486042880668416941647739102652919432509909686203948803493835433333760563999913240935194321232520679569447204467913809328430841503571671454209823871590558611127319708873980720584634572789018115227725799046351088355548897172445810688491960318478410190455581275460849759266879966165447364273023020458297220355846109365402520402497870842940447128137392507508002251335926129957224090681336562321760601191763905671110649211966000334946302777729285383455511003540048139699057678907742591862625974911718422580773833607074351137999882213986154701349487934807876706348484142737290862981026292674680354152287455386241517599978748059438499126689989571794361051812301663644649540592143922510263543928735031479609920786522392134086234348251183628507378036988762808775709279346218217581650031116242163357924025997930829556154026565402053839717486403712597059614035351962751088862313131626362233373407497343938743485192866734653634447909601530949512794141530712139551831941218017317903901056647112876955089840611672150936559487692340008845067328970524256827130911629994669676690703095884921352311013500880091168016105474043741321736511733768611558626790937607244182253534260235779898537753646151592701380815692147444313059089539473515518629849390996825603221562511828753303384494230728001139873038680260540152251726604994296517944555439912876517833070232789799741507713437844562366696426055844025277395459337155036333555708097258069185525884588985329412911721189036887843259608452847981656612644050955540439150526819651404212968806378581911298182806273249793901901965878689001517893832586620577468952577108718680910721172841941565525592774650730936786210234907546544642968793917189048126138132086001781964557040224048232787927994025712642742036771733543848995606949169181896671343754362617570926009195118177075450205630502372548099903948521451209663238285495508942983287446654143721422250729697223438251206832249808045558524433000796986349021069209361773817992444157048490829448258802658144999584733794184213003834312296915172131478306435088821567476621075816820183298864999494942907130788239898175278509736580168924929043209485879368698327322998887776968241630203605808658445844337416801182897459295829650700297284230494061716527377675186603621220386323566622051838031516118032748566550805460226850688976690251714443251604045881392390425271424241189968988304827497907777548533678815763657639344144119778249498233404016677797062238287656221421604552626944932923514580341465532222157327094534983717585869234709347545034246047901952591113038511188027235011380165762144518414970948503670922919131071418366697486570773159728582474621464025253704735312826757210545147171066716869541215622910740726609830031949625320974609224700121864119108155784205666971736434115631796763316295895823829266834489121569897605881340024951238152184972144514029296686514522453594340322198068895140077098965216183383195077639201012968366533940268990500737899903470301993320317436077370345576353238720950221515548683326133793009302402971937549247847433010556088414934799481583847788212550122405690413564161809803285313710664365670110782353539289800404048133720594820861482779814875486796660102124670540617804014533794698011809693280626367112305571220190925564950036409265226732457410582426675068596078720470388524073712372541825021468623584005858773196453995461044737322644086945785597843062199632957938171701806400588860534979533077289174873508651779658989164210258989694307590249829569850126026793953238283575643819099081479722813712432143540336517457376816481376689530644385913555582170218381184412392048337282091296309830426351254785736941459763085170727911240983768528009429967581838737152304039583111926800707511446836874074977574536844976710370094725318273329310329848062132985827355529835724914423732085683471712936535780148141363065758928505124439932583595521772298273303332638058098209721447348710565549078478064981941488872025151479233330602813059075981295351502501527960923774661642700072617882920206016071831617637361586507754053786483749857064542835039639358114777157294524732155246461704015832647686988798980579123684776817604993240899270417031115974088907798547251591973459476131460512942589111903392358355946563579260642821071304678230455947971675248512314390775251494366025676852225871202840954413289858484687239041986291653441577130179595508146114419932642564721582224330165424693982944072949149877630142643375166680666180532096981595141566714664997588592879979852365932726119358393034617836729945369643189305032394577276899648507940388803056380003332478483265496846501271377660083116696201665893851735859315836016191384948600845167927822033683998424349643621599348618595926282721211511995297208841424343846064103606102262465031904986172850853034500486507745035760873810826405681510801135231568160474490707717018268390704642533633544230349670450416443013737346430597993720921337054253359930155868015898934302949669358024740873929538339917910589952499579689557025168089208799109846230040599297448319747492376015850504434551898718432983299669959241118735543549993894137936593008145153957967142116310350601773078474350526968362784910887966198427035897377887562168026888870029989903815524794357865607175069007393897848158701980686757513015487473057701051530195913682218460102923620682644457648935345897617678285844951318680756993651644028919022557845723421601453691375849593464243341981118395888599191633981015673938687838157172388365946047674738082944438104680076482281499711441030730635061791158851157152371795146327521858957467933234541261847859171605788161557758613174793264515725684936614566199136512257804778766952376695978912004058482471033952959874237082744896678902718700703645080728384669762907598494767866080969688747619284855509133635334040359523388533248096001835614597757335979967752796312242262660222906511046909547270921891820439804089548151321638954503840471105141312242029128954433089615531594417529568282147708257007085325225683988571541325008281467614562075256783246609382921488134224216893822830407092476458616637292571881669858397563342208581380000079934521157992295572662147640118044308744291738260918516084698073212387352908426766634152872151976774401282353335636565292826692558528433549568381165046581129899522214750984983447096721415854629809547050489380717271020985756094936998021108310144228451601819362570389932255338532030869827499347585188056312770045568820219786432897618118306207480473440938932559398613773854725293124397672874740287364176901711867870057291398034840034351721069626238850536028107399989903798559722859900500771980278323500082622222851711578869398758636013483377935354451808263135795758250978894828092577096418355387376825701160322295107475641942251806888597837796248823847871910554873066674404561738877698233402623684253814753070263268783889509373702972885306405369614986197929499285672272406189492031079927983477489629404994995080147740180674692953900424676709007967759198208770949367989027302999768250981187223065088635578407553097082651756677731076158631298051251151296183506457076562817126616250782542227159667944437773844590936395372438479596615443892828164581441591299179197486846538457133175610733694544087382821610234502584131318334547693241846143305160728663036176634003439738974260436447950070607812854394563302797995538020246479342674451401098084992697440926866322565301707064593594491779200559183879482005452943067576800752593280369977102272158263530565126392580715873374985051854185145178789061660030589260289313719634311345630605358112302510452935734486616328272572578772788923393218171967047365656765957552576814563955890619853422428785160453114615781904333240136804158115742399267277564676633062463552750110323454887392496392881571633113258981961840666584956665344882387056157525934767574816494450596209667925665862906632418269147542509932908766584613443312347302148173153165095207183693126900688758054889548950902550583271282219060055672809793602597697071580653391700230322395689119183913447083812891325121182122654403476039192952317359452135833048566188175760653174976313508315433949656019022912815585833807692625273951183110287179379421996713106422375866278716566946981325432111920428732057499330238322417522797809927257303636349226996693378474784358998855274971228378633066123711038589757987817508128290535787129884939224355056712898586681831345401607301130263089653252235038075455014066399818129204570446541588036126900660792129287151835194173965335623618900392469117570710947163611841542954191476181155921845365368431345781745819193993767279148018056943343431902641041484072352568539649899922447036347855611214075299085636584082342966307207022027544138026610361232982506318136569315882769535741727711485328362457748328837060245380281422888054449865355014350365431394527961179894021337942648887556768435734261395115920342500373818637763896166546902275410709478838593210219956700378246970810801416136368150220282638696617952364881284866363321900885655557615486203030488879666549083125531294856387365957664889426565483723944853880693337794085870288182575693594510870920687583880791412022283337366676964375929005447403247737821771937971033356734071350182672291557921775301010160609798477772750472332694087254590923583135077645061020946419028013086145216524051470333082555297935673981050241698866516724466787852137650485341593842483836241066868008894803290007645132399696772337853581943628447274969580336781665376499085053104534922942409972605921322183880873593662765130809806783681137539836580511748019165990465067800693383374604849553568023777448220723443701156831256362647605304515211908965968454195361807170391515259586282227323923229847950495201739053500331897698435886989893493029081104564924491626564980237399423351925891692496277586724518573524303814713537968663817832674213599835311195064976607747358229038776733878162574690461059001565097713053661210818657264436541651093491763678306802872461603757750282454422089242261811281164418169037933836006380770365145354482448641450375518031163625789542730238092308860136015572236999924291841199264787815765240981043774068592784574457481405466965203308409152876996318375743904001146607942046541740321925577861657044722203318713654609501408720303647804038463289761752671257075764558585016653481761124578171323289460910891185669873559600393081722377162914258423197219221888139551525708826244804473276052733423456446402617576637830336405529710788020605487993971182774894502578136218390199303086599981019179824675247783257464024482894442021476944050622122859086171067233481830246892263222605994584751273545735447506544543839923432573433828443019602135702814713269923246932471169810366836096940235647584541047516439025328658888165374589758139052513647135688462914438834928917116395176606294196465150898048804097123756414357010189068096752087744814467913889205217664483637937312996840050656438408331833169800353722056956278081635254466267180889869469099704454571129086196676684624939027334421068390420132260323893298908567941274431053919617946987372143459098014165254412516814444214667853362439753589105488637431223434044587811851176115582169121410571343214417590203282763851765476358002639852713925846022075391306152377150819136693865472246374869555993859270011265753153610744758645682579574940810425514505823331762211286833312981414972961119652370804477134638105427298626196136911008552209816219514672283411717155641406101840131459912006983111675819966169947193875994239141600561425844850919094609829303016500779956299024569572749383235325629242527482261194651594180510687476289391795200832489072701830921699069238604592153618369914714339049269568014205505352593380227429457105048534769713327558177909881024023034100430032695511737486934389481105173434857500716244347601648242898843175602486345871832046779448478571377751281205854200182315392269582377483827048951475021946046214623168095756569766866645484350649958299792429027454740947942009601420608641965972304047071483000139512299860827213877425938644343599054630928113834492478864799202935591943032367254491376571332411803221943304183520622765251328004139402628529678313102084788358568127559194848472318625899118862719991941869474060958746360037359362817787790847214883864952748576818347964072218920323803125326138006116479253665009099375161089058211867703199751888285140815183187636107540743038433937841151873548427743401052580314888548863649980344755313497623327443546656934072517784568469925327357755816316945533213863682028715021291173428944998931392021166298828261160867734516933904316408112232845071032679481564114955306827311052130525511763909020740266015244107025778712380823785241050803684775113355636153252179819262158668593940244648187669367457750715206704618891694411371778415051052346961846797786472502842526933968704016261486744529539296536664433346468011581604866765346484510445458078378554109079205352567122139121958431349603017668949246919779459473446181478619861033481845785234905287090185192625156093276369235126911703841003444098380683101480663851499641334120637548504770615326508643203456465263897052795848147090913233924427841797474415919874628602085161079263294106384350436420525004567141372680333336494070895148652832016499303164259836525072610449972388937298774017931398469789278940033648483567212714252654884421915420411230924106538924264088614594556303635672411324486928350876920445158840843096052337996416529762283322337438511574375760493817598278353586184467051857031256732147990788472392810810319225771570920922813565030189544761534522708527763628067604989769398497683188006489246694625732627774443892464354135913154685088973651572802761934079934459329583639366813211287894768818574116812607958980605107586843977477115787999875102720973899768212902918512498390485253584009676171662280914336292181069155888733621136611281818255239012526244257027695682028745625359545496879709889700473441215459987368487573379045882598314354257785637759180074337026723642285189005728225828279485168760141200674425888518268944953221718693365580785498737974736256143510361008030216505713059630130144874799800295072448847799410327074855123578437397766406725482972689276382573685716599283387813147542930181701938427791992151378508201214212362776765681356168391417625486406375555225296572043620917805331233403212681443845426977396734924352182370036901167853763286376521910350257133404949796236096241657314483934991159347506265914693356500760610636064747313538308271062983876784400884294863825824022706080586331007848637910960545015697372618298866000500554044199310970103198110546557268645969757723363600677812672327117466176422640396007160699984798425736043089911517392415373235123011961854943761983393937831976100749441734635806092223968261889847599633049992744401311062062449236836018259832967512440110125762694278813068321816225822461686066444113071793616027615695508892576283445316763541112110721697457302520589146814171525438249254282797364183528738997537832823218454815752337959254706820946215812248778267000584560141245842634312559623836347356027710143458456552315910369948794878966824581071549436485647883319219546017983708047496349192669011429602558334568904662799162481495561326195954950091642325457658335741789808944533757650321615332242751038117344271876385072905286135092077677563919582200148963340586475800218003275582842664337462109284984416837801986630049423955881506803445396407119041304710538425994166264963458072850907846627112620930040084784416993402365804160626443286190969452670578900510091525103674413039947174615818691698640795463503704761502256590303347249228372054904080085115897056010421010494453931381248793186770359994952359682077057894787496729957335725488990565745618200811017641129263981317170690662372552918299554086559966009298066141713118375226426849166329478652044085074670732163615516129203968404848711926316981284001543343511243814998287051425773716854040788411597746619716816048790384247582086978765344210757327723543955843750584826672625290868155459377282770438567250165292140087001646076586584890359254110027097306428901667120334522400039486145825067588652138067847894731950088110224757937780512843142678955403342666473164671180494135066503903625513472976604816933019444070504323548123435980099181127160753089731998918646765811832586521693824009511926607095665776335877247986482685708231557291537896263136998112498380578328718407613969015490798157656309483979436890158240986958639939329146291681555197491181472318513390134057755040661281061569919873904556502945913433643909792552949053865157058201297914965589332900166946830115012433314425739917838517367248907650107742790779414530085327291234787396455245569544638359656281258039555134407012990291654065981983495824896993000977210727400695505674870024826849515324973956747515543862316415053315162007425299622070323599161031249820905030219722203788729440063239318371201338004679546337476474626023748219063679516711356045331572610117071955364665376024306335950937571822769747665052570961812583909496974430838875228954318362569833104715957420393148431660507238471118547660734401456701024030144493548601765584691882930568097342372897725876101867800110607979263545201647489842706908637144013929754779969873454008533281298179628259846081044226299144480106666833734238062363463703370179746758162294753146160539850623586908496606510036002416730818014928765011630361769340430720527340097355482028027756309667975409614591352569188924472305079972202784920875047721759417862472589342752794582619187466202465996905778347939182353221257318033718800723655108728255339653762970172481752234606209945478613435710197653023474756310799987701885274796543366821792776314542261000272221920940021381266266846062050659440326363329069494889271204351665987925700258312732766643448077968872152598739819627695977933667837521169090214604101802857059968147822818014408490649088164219414966788151547009224800747694443754820408384626820913192740873661164597108244294223291169764486997060981334964247700428531958829410611111886052220751791787394661789276853398606152382731716816538041867541042762857375986644730865239844189767357437930250122708598282434880733146346130264064911634382979267886274671027942197481422348439257047194275571663615819888804828535974503914366148861819768563850240774686989255732527180633631629946877938993885744800428527749695102224224795754456609632269999963764600886657325490451422377615640211385177169573443156475659141400090944292814884825119892796072929076553023115704926258658037831598726622045179102691965551457924847158605786964303903742135987645778124639595902952996281982453994349563018076225825218081430397043209117565923299730284810320126616757977995076661986295648805022771342172329641954908183421709263783852612388467148247076207361991689282835281141501378247873198275505484003385307667333342092355395094325342929958045142110036389967622447210373050811157228567289622698111394396697367230835771055214967711755377914109135314998574736910570599704902605166477256963775224664577595291120504079156005507353725496121720067846692227903535256487078935758897229652932321320443986547398632379285744328915124194740406971307063439849543134006989282157190514761506706847404043790526770953125975385973125308886675539598333698347040891685678369635250715517895846938994266902230333296846044270306121217450084306647962544951590098793534659885587476132494416262205882425357237967253811312825919114942613866664765446634611281262018661782701047601157442775374834331614480401430879253957964050583317477603273382887561774167203837157299615728290630107798671668806346619437259334121284614317110785613366229574310202897448884319532620186520590354337485401808407985341116840306474835507059384826616595125714255166823642329478689433070172250409065369683767245820194227752962567549768601477438264828539335473394154983001114618725734251647323464349047266239620467651994755378636125925625409231367775541803081517656631919972454494991236203964395618593009440843922548196950068459123325861243764219411765349821268187297935919536410585537880551034036106489305561373000787275343928156768002142757212023223150482971064193121851229673219607305946343712719046047177197956672168703879837422775876585356152842957423329932366532432534261508790814436583938251051002948946806139968394899018697366176741735041744912766734803454892583268922625475758810788569068665780949813461163342535698737569986783890547179309028399019982362905695990471733102591481709733928237006363577597747745489054843974552323755954633842542938259998928257278449675201498351698375739855927421447362925580941797325565126297547935428878484773782625538864426167677017081905609219203097807951872244307550562782151983325986822255856291534445208319324122058283686117651184885632009152365929882716414017880786537084270648039396235682973844952358324442666025453699769405684537174801599779872455885396580131155809418832794225287857676580060071636656582004936408632774213083784254024613437257387068825697326332608928617403581269210765654499496412872115494591223176970973324680002821585999798414569388667340313811519119284855329568251763030131942257208164329122961311074837028950798166939886030166307515139381272163657651614328696693063178781542733359355198865465092640458857910998475174292137127707502530702189656842220818912347143847739276741771539329191846737817928124167449307055351410661142089274732561683771170874014355331828795804470734953298689270048777642729660430721132451930712652670388318682119383456522406964366677521697996424442573783196436716008236793390916981675159615111041138174467283441488084047865071496971630721791061186297731766101173081901002475686768670038191698269874327022242434090325132952887816996315421914157968323398238360425056680201739362988464833187971500990625498586813565407016531113452941696922985712412784065963586543813378058930711431958493493317115685831000752033613310295506059500233835718826240200362561318107170621702671381949488890025944942784687186202528052274270287082559487602656086563683661570379509834229436982219058438074038099127422774552498960475219410630122631211954009144848714834609953839374636627120477203694814756755227446884526637467663602775974832055351672935500626920655349085925513220310433520884372543028752401274082304125985681687886655348168284315730765503342422497352748133915971115943541911806851782505510458778948098456180412935589698344104669625756669337883998185101547134866581557462676689067556130190228197289251779353952657788708329689618699028340939698104820355700557844331627762764041840082205653407975317995433781649033735913557408925294250596242840894456534073276291355125462021949494699550023098734080108695939048418073759363979715353188214872392795432933234952518113134111345294390946056594397799441807019486431119353563756519709419278528091728959096200378181255976937960201663101557361053839283175682935208758427218607943591211185199685544303120747349093755660680027145259432930565780829295784695705541589392842449226480312122463592461084041581937883423626936543914262408574645438630024206409493116289753961687704853906859590069301877772661905601837592322074417876924082025003641677763218005555080090015223705792198986787737374708663018091224244634107341841188635874032018358118363980010308820591835945018667039808333158364208359534369795566669462080589950588604130472780511908527628143422847721770769067827999184524462136577297004196025807719982157345951444115667495158579111049761508735728876513407357449301526246574853129661579046650672262808823714370868395212972297343003476459138810069277626048654725696653768837996896061016114986757118423008022300346121511453330517783250289906463576958039425836828092887212162007702809241588948795752094770373922607398208023821078558527788456498844873840430777595844660883831380915962311098408468508939476465508299466060677389318203644936595426486377900720216068270244263448273024144963956242613005871889262718795653385592563403701597258114337208646210221329887882908538907610100173147977194252951433924865563381745454938088028544486586189885588842181936582450587882457218536953669268307796767584836553777897717213473738230102592919141759945713442941054161587567554709877233475099648220317075392608708954661709373490247607574640373826143484532401788171782728162116476932370850214195940318310683634282728744486856560972821234310946092253368026849200721297340844974139140069546322819554204462408454133915919514277596760310415818018645883039668869545319303652985563253934997233107734453676682277594569879013092964048392181850658132277138255082247214141627962736877443695807352247471786336152364669440447117290923195498208393122491349382720291119025839791731874876954084037258418094493304353149042378569021406233047928948933581970502118147028478989145356573642617150234745138054591140229921382863892812150443679397202921472364223128835566597282561056273440129285647310547352547134246470622001650547219953129371102886621873773163660150393736542680773303980323734367278695541177387887860619507415331040249443174981352041791249642535620463977449667066701503170248951889077109465212553712974599169966186048468038878812477833465449370317480358772420863662352949312965389889576477775208640146011545337617116115634020188319199316303883230757752871329252476269150539316964549841685989230002840187653446053332835125524097426911000067693012827275045358619475178540662482187596867492856471927621794052728659558305881478452490252549303826505748841089562096964130176225505689014013502049008006491032134862572829101617914076625283672893808295586118517659517607732335457013264625338879663608383812258015136727445567758034166270437965958140618802935526408286876157143946013630875831911704909645609902599699193501714961514727931123670110198824274409231865906122323732299336234746993973985148287721735767679967119479524896988727096695830746779411489013721172197372465320557629762176215355746575834291441705985701841947086533814927595885034247473226572202027383786484015995336256176629935984678270393983727837266595586621006587431379745365588025384636456260662399637339720881868428652844331509404665985470352319739051443610244724195265685485972732614486442128061763717947804014844365924405928644305765962091530129905964809942164904949673817289748562080755153855273272089390117872996479647960248956417590639940499031797264281057884472027740567848042719868621223242655383366792613991500391494126597880097328757528477303861672142152280365235957615398275487711719065165186831158752657562216333744544030695423316531759387481040739785973580051158812577480079287388540945389632248975882366113454335154046261360368793309597769847403095870652080653715135371686402306755836249939222176967302701967638543790877537707907279711978915007659380728434743452024847431381676267811606289302480688854834294673301110792606583640818340135375138668492922504375976281963635568248709075361237408278010585332521566579944948693436815178145350924160175884548161839659104760648930549329326523878361716882781118150215061832195561666498336925285199726711930080514717328982614046322754004573999246462319745292911632797078154837198007451008040412595445419419740869716812217590603924135593131382159720604002142001529187215786339742886489854519865855402037427279840893597295279897893215664635230382961845405361384838788743456831992385661362827713189981609576552865182211726179980079495318060822818613447282973692647788961060662042778854481740120173529623948630129212850475644957819848287785101146458997436710233340243157670760859219530857237637110741341299519560922799881739193146469724067988865087286991131422158579985979331045535331255719378676247918452839461243986685741835014168869080284296937963428047942035287484121636169068367604297108004300781951777096651684276713020916076698150824369583362482595090576035742618086746447074716837486432122844622942384760526304035175109403811162555857303699291785372838389220868197888216813485330544767107451407084175500113606081354547445500825015087049970800856721264356516761748877666060281027128298582607353192709149424923599111988821831331885708494045730649601697191979187068794013016901013442554638640394797096635498789121886507820963837227768480464076886791338093032515118430817842681134660651697755656541915577134083924747645749794702209999115526069704533814299467013786552637817332217218017871014480364481031096638997964144047694333852747094833453268368440045823164005748028335259042563298760951822704186498230517998342672029827233737084696320791324252145027397862841905515705152836546330959173398853484931698239750122970991315432552814838075276572510250736385413990116373971436530352222417644625809706069714133541155759924507536633217317746676393760349448301009991856324324192003292795763033099704397126972745449225856162284550647628601737450283029498591500887847186262605634007778583135278347451987270555439083119796190563287121887836691986621142478236259341028556209054248263385088090321697811748788503898462709772641479375167602142771080790703159514966425272020645297081094560454861957311478465984995310976046402097499162203026056398886890933422572996157278922618331442602361207543950559309681357972977999101883627244749434362661172929526152227849777503684266556035012210320417400433709693470957249047542001664073581058143480151185880770661268253357556849332701724805223157772216755457870725619930979584818307428716844727217493586864899385132401639505239171591112302622286566605933801869663854811628755817656771137888970940818396800010989249290266049341854959125847151943634001239298715477652946653270645219435960675474528731721133554683065798279601807056787836696467179240924671785243068720881892712195675340860583087449507352720529435629523932821743692412330170835718473697496727489760411381297783126104107925176329142601184529359877769523818051642194669610111122293170012541271832316343632341494979467260323004190132941219344813111293574874333873456319045306515051122313001801731902787589622141057597380517022099383787373724772776661248665433343665168392327084575734751421577037972209316984689812908090079101352369782663217575282082439540689518801748697639878006993584176444938413516247896053368016732038052117094555922353406519242074114455710763625605224700717360301366884081716830720789884370699603791036737799220278734607548748331614259141877989230332871623475411182624866178448642215229196491355935378333555669896206348116251986668400588866899360765784966661230170756699753001792679432605057445031220186572692356284204583421095245594077991839620288494877509281791393879914319986755808015838738155479130297035096706603386987348282033267527078809568534142248130190080569354992372246668006594783042460949510915381537899970456133125145031698115022311587652204854140851091127507560131304499218369860090874841409093820063724812105153107779994807429223627380137523298989172697841904876609157746582594831706419750486390628991799253564114539040515482486248038915499809850165205338869934032945218354058452386960948057269493105773790825300800204828924361919058472501415111872266019445008899139598556284805102335817556375160803855172075850656859316507783055742149457167042661484747876227059886260160289037041942911019458359536629200088976541522426597732531336114538623365466734717080147189421589332160107959322239787570892809579267725122593866096043921569973251890182556451249387980703421817321312846332350699087095186802975603717416387547217240587962840902163414635574466536436849461471984564806347424209761455239935286204578412928190248113302769585398325096563961579820150145896763644754833083401596602101017333358401440276933409527507114010020555185834908457119906259447291046163355891780295198094972349854595357796432417979860997937988655427836135203703264706155070408234426066744429720921569362802922735047723498351127957802989236803547898008278834511401561191887216944661679176978106699562121296445295855166427343736339442120623019681438467126903900005363259558831740670470776068327692656018415762085714707989182874046740437730836604376865834053686436260711254748223767166407038413488345272776737867697635953227543956479891643080020083769468937589106871271040300410808327404562010652124781201318015266543787017740255689843793002019786334478469022451914009326172876627025483969095908023868245543997492228408097604957703373510118935492669037010101098704574735042078311436640527744874320979105722544755753857617760542418552612746599964138107239778946001310842140685600372112714481667528499381387130707757399057345004284327023513347397713814225736825727848069146483264892353877736904034760214779794736908143622993996866742301306769446712872200332214620944288090362287415849711077174464493865958837465341128285112560654261063135137176412481764782686993657685691415051519701119212570961665898350034570727278732890019598013291189039553898483766878076302115693794576252452564669249515817072460240885214827280997230300541511546541312729551874731085016601996142957215684747619306937197342712260727870388069221212362496500987900813930173054791407177004655185305063819772665057462029926774682086575695224963030502940877646079697111593253299659588639039076771881823134282467094997679425199775315013555257510781608926707942417462309722784272466879874255479621175056791809381347691251511773777184110645534727192686221830493950818663775313747102144323254274000885090767861129915236616628335950063905851068223591833431080005510412322423064555194624932187427360695687383358445119006743714073151561975046544125323263032192155978089064426703370391466734616658746212306171512969574733098443274619960709751609324006490974814726682887894824705995967831149911182628441868352784429859861106034710909823033868696689502392723076176108145163757262959495471196606629513628596356946194435260307665988049808234653151974463419698746552203130388432857855838705501083492686247218448635796304958457254859597825692821992510280140501435733137847128893151080110142396480589131293015136742585560669030892615410870032880879383061021145419205455020692115065058023182678060979241661162694663422006001385234776864742305951581748509579572791853720354772856129430941318967716164375227407360731264784096413119800860799150588917613019468710126569042252668600362794245529684087230806169166799015493629422607855433505002008192280561502116730998653993662145723649004385980810067492687730675105793242133435986847067562305781434241765351254203235166018186549550551013284474277038959291487300905761168643718458449476365223847054803408613442386535191070989076041479419790626405128763825257832326349294403529123932888735243354858955800029206412086837553985338141324555820579432504544463105769612952847531601139542417532385071496700763574698093135903020628515772145549225394562084097721461826636077797691043321213898219492189656893132643516669893291288843329671181147339907643414142887534146896844587582861649980290407309788377935072984877402604915738009437854723733904076984658095317237511210773810906548018651012807391799355976009811539362911380631450115423888344328810596180802937756520135658772560411081545708139206495765438417844718511476528911914286551599444496064364660333967782131542699733378014077219520954545351625122687337944615230866628567855808365024804993084082145643283397140227107112541201982362820253838636256649873978886475159076533699449522450823800234844016145371257663652796857299294286016199170106689432068393655955262664693050701318915803902539381941959136176331210778910889275524008750769144231864046387599448405428651762340532908146306187285500606162377016801700255136002921680532238157038414853943752810674144320219294135149951057745221939574658544026761809260826115125943715245211362460672466449586977405491805008484152382638822429684498255092815630478941560940446859754741794405390369764951062398661003256591966259031768849646216009037460442590842831080929662275542555961153022458461180036421027177036602678325139325627745032144523214995768001357407960927463911610769748719904506983947826926210964951794587625234493170161439739607756312151210139969498875570626065291789055996568948424613000571823252095663777832608725890703865859658517179865423621815685641121017489950579241186306822015678391998372203429933652614907088106700092169453771233801158594571924274180068646443923095312401768020586874652226259584435315281704962865213819079343591873847798404259256905399051663292588343109742638391677299400534507389347182660162062026490202746376788782762499021294932239355029174505851671724014688057974046502148117677069731842869420032563180140671419185307432179888044665314298728931648009966736844236063833514406326230507897331194448586785343526267910402346425045377525674147260613956489455887618822128147632568243946701677164597400824003099199532649573746036558718919959754703906751043747695483773989719387773102212640725824066476483779541567736377870639322318495721761808896071049781359687165696000242418743256087641709321620096939809350168986689716881478009862738959166156345584118304942435778931061020115018331149345055432086081645903760906808100111461679199597843779155017153200455981624716946972831503834400440215604285043822137786699119367239084809594561226098886284968456474187604833300000527687409756311223403345506599131548344741820334629422434702852775283553364329928318254375844840887870474506898420747923095478090955444957537729977717949570642514181770946335918812745084253910356172501011347144657977050705703387727365473382714618524313520799369175139514045066971961095151943662741404530553273531831259508586471039047386582961463038693639362332389480824602405363185234182688921476671735793104222395956313729307538670369377228983040896421804918378838525972870067902004194802917943748597322284182243526467026099904378600679240119798545952684369035129221856004880637855120246628564598817224787232227686693859349734911334326902177615059519099903611939659927688238763789821217152582334617710165050307577005266959450035271154820314596989231313825305604848119894321448551084340729865239345754969382271807500163830987435921177731109480104042643922396356879910030802314642442498883310139641215101676413404614392479306504968326691118147399230971129171991813197183571165462654750108224583393333889700253677978514910370979979705526705811828042007332963885183997140069952610182454016229902294585607622196492951390734584356709159984387956226265092347234379596868507067292172361334867038483501669293359881039355096223966450564088670505720415651267666938039043156716111526744293867618062439755198594911143991010585582002387364283950442450514932180648500258943836441167070776673391152881054703838370665822797809963867047618372922617933882190071698440045633514150660150771056613707673830492321405165938946805542461962439464015555022254705219184043789686904073309230071497331430707565000668452107408828956522963273807845991124202034711150489732364353089308085110333373316984400713726343193081927114464551849637380558251376030038058090368417724906954259898526827301806471050447422585942373817451361694051276420619739241316742381793038113627750842132401835770404101478073981104976882085908589475601478813259880088099533658097615839616262296388195206384092612264081191354001884396342191876306572738324498249122748939728765864458174050772354995975513265417074641616236502297324649576282345410144413443591429744766530379983671519640960425915488539494745247742705994143253816182195708443908054874210736306049033121158551235064423197170098958347404878613889109734622857165194451357956162377859393785846762490008007894005563377517152992081510327093196092355464633344169808273267487290470758958355121387351644762569043963213806650431692941725811791445372685525748288884508722403757463400214323697809798588195780824618253177211487087529823354116182636711251529946016039122924950657475433805295310844064513690970531751779816347732180667591479940471312973723730065608905117265660058014104807108277277984293301184196879867069568104824501979184423537124632920060978170267185852806917021031049212203874526129390483566755207007157261453206289184005534907219211276254455199044648886636099407495629005061081659514534064256774212930968792865331489290463632781382857873068935457332414982602052036876311511964929265044916583065885720781381110604809053670776420561850032548804373114966751532258958135371239057318384588406778756918309485984094453544041066338598021412417908118373124685975146334925733711471500330002418908313929296359988431603053220885169890845499039590987109504857621614247798695123426707845951766617310987789010355981618478064220626295553985122165339900928212009776803761192283848099302574197783812300067880383340713126685146203842935763120163752511085940700816912128596968626149089170059414735306237034332664215896114170464222150784561026178922559189953008963446360206410093668728300471470783823098850204196600434658991312341871364044211553645600015494794346534581157655868940266400221190553160834010582326478447446597966870511643761808976061125417874344977847618350373164086667157456176253122883451004901845132895136508933135644077664434534715264400119571142036575134447495225157933106142310990794181045257943604310763989922257170270266791651107306917776462524562541992507144714026406409378440928058015031576747433855416158533853672815489114734997156133923638853780591867442646903819102101056786359715233908974393918912961117718134272779617066154218534882917351750242397764775099570186803401091955271934465121360615492394402059599776266755910052558759071044369946468728755915076170761653822785583522428363394177375017231600243763179269291330225185512103716281150487934258613277486165526354512372529132278236319427801268818856374247077593748999342409270955572253594474788890835932604118821995155667424700059025502922245793959915779481587094607484347820097591071151767037997854777502165253973300982304378043997634866528143440657809042971715679225966626493886641978131756545625762336449450567778210030419297447609075582748127855461059183462686564943981097939245938107111695021692756683498575216228717265434725762701723156401812001690691694338766665965044830191398036655449247112679911887534908001768832935404622380324839636866197963359904934273485011193751445990096611937460808248803010237690843958044557934624842757731667565197868410444475977728418234628918757452874689333268627084914683496296719413205187664302482422818759243490779301411242467414371257562576532544219664242852218084340040768642087523009303214848997083602467344268260999064279534633162686257180190785877223466101587522384868104478957239016246063386107174201774906978921175783230909111524549379155989859689332122299481906351626460944295295975010667227634983714201586844509521961050057238418991370286986596878821121224046841778985068105117002910166265821040310515122055260966156788796339726930613585268990071790224204503935973667635313501516214285245138059667814580241697365246054915901574361246252324387830402687910619509923935294703779937541090530044268894232932125701799160799530469915569636512482359128595708220141633625981636847282373536277406269407558586705348720235661325189586584622901162929208079315138646559496076803360617685785148331935552496175373505408777710639016947164692081364346231353362163553551613386781160609975787684159257944173146349402474835366681612615152540223012128293677416717727395105474386328257591735241692853726368334267380158073438393352429510093250282250663599655877950750821799592303718281370553037283052746865510457119485862274570978750597846305223421511001306092074177193789521524885705047815711548401596323633878420854076586588882848203475658056195477010129692804180803480759435400024510744315357770622266059016299077660995049777377320501632417982321394698041397226591617441647197286572288826446320439134097883716651246712998455165081975551901652462572611349977049524923827921343646844675687866842988150843409000073738510032720837008342082818385451075471044020398943882405487054238522068350966659336501564794943631373031221121371423823850096156299674178498672673726233160806126540784514099828170737518544348919239841609345412725320531990572289608074325089192255081766755004664022318047708109235319996813629336566405771556172149795123520537792178410649556909073579482094020675719893752026470359278485110015896443437276185896189226625191102735692773569476718852406402943919105901991570125056156550384307954034159672625703418205971846004408291088908619930654944035557977569720752181233787913751901894539385858630115389024064240380885453316167607172776014366414387086252716729893390151413934839449743471685291105625078898640667181956687511229999221528652677223397908234589163792473300197738176471981392938925813661118468863424859124490434386461659160783984999233832137880159650311634436952130884636541758937342355023997913837534443003146551501296206132596314390665223007467312713608716505658538339667137979715331980781734343174949131258347938322002406414590261988527487888557860495673155361589021099974304588545966678970046185927025966751050411926977636378600748278256215799829484973331184083440361631930646417836687862366520013571329802193163088919988135633543993351562207250242853021985484873829270692623861121510431458295618689950394305605785826854596700357057299378113266816635581928605938089790012683759925942718573411298747236556679684242728718891915590722706369569931694159896729217116658033191288618700742413557365267260166299837124243060789345020078104410992680186973900891637665350020114496849579952230792183337414025843732931995071170090322464805843307678891376780116985034965618774075068992083368766243098244474479458014244236874446094023155188781953356985216288035796838888320712514206347119168137367819239044326259083868000631110603265973987199659316648967152689256314822095703717915109759281667865619010424946376437931263436105794567828031690804182077229453257006293177285966160712645385816549422030447570178847749762529605302764600524253633100371339506404771406496141260530277842093839078965773535558746861864540647218085765268919878927760759444032313894838105789623349071367347091080720369564519893245094245888265584303710671977473690262543400411471851028350644802508330868810307643690277609456354701341000452651198545926031975613245691989526675901957456575015988730505500015413029847718838415696292624729140414526503294495555703681840262504824729988326968376326236809929636977015692416864281617260857567697173113288764137374195354427954352718878629049308570740179036319196045717408511092524038540968128113135115282380153904066615182187804802678548063700118713196734608826262844867977640526415287878374515150650624613071765786178400650403708006923457985817128211072397844749669212824044735437346408484383233433490934228846788023208131055269922717209840503627003707794459711051258489954187070650608560683927180076082000358574578855729931923420927055168710088787640141024899868000336849326673253935724463975827304968675001741631961728185129318938605572044729747104756182255691830444065110467523235611890918354979799831345031066766528830391611289111774078199362750738763363378248306387941942353560009802286016729834742361432454738416218300015015613151236962390638904956297003852473135313146722005444180065842542355935749467684815292724924840990463934718435070558276844505607717616303002901174802293737710919100120093926165484946556294425747193245282723000970384744230894738668217312542954294376109529753649006267640449515776716547643830944407774772623683661436198074637140574533990345519907160680218828676209680864985956409412680361597595874528996485956970013182205278277823533398266678239530063850782012475606809467290779665598694845139499474471505846060796374161220668511589033976000019007744763441734428682501674631560199403701546378849091410546559335457696137891081615173703461175158952961478661101132176604076970057189978880565626961849304559897142310424940100041744433009054375738546271358074103152623071517647737448741987608941663944628992584018785607616388806822514768969342926241483249898975841159792702611296129157896580767618477303575654381246459994872586954963171444452843071780488794604834508591193157835756001093174642330699509564992557824517551700235036238533980111486619783370151127624727835631358946255993370122745013419966288046028975032286590701728690652508110754896789921855429890959921414946484506337249407970198536417218705922336525343775827770217426428834837877168703484962623612841294597289204635945181024285454656639787772781127532137792163841328453158834551175517260942184425827693790099564758067187011195734192147818362556188894246820515492931798965507780680185193071529185830940246018434925258842030819558674472915229790013628088932749086527775277318393945263380292269722989415998724963001637688375994784348195967341176174179535906380808452017784345284259757243331853943353165900876139845923049104878918965377398704926788469274413951219161949786995929007875371134977693863408306765299253884684363751607141148264951723553231667449232149021166486744356749475078574856461335365540994019236458731319108463575566412171709355697413658092825482827790096708748507781663690663483032912497854329874707584740483806249933874696999894365084488268522188748391248542624017682939178954225282149936016472003846104673051921824471584882927366864854054515529141674937567170813224737932984350348851339022887708731291684071192188849961035131769779267368404762233993361508666299571058906997023510593778924534509092009674529113555828027631583759233095964053677168593071818883076054945044789122484937962938606217343932614887277983833229885943307674850746449853365392211575896489260180714630952969858107191769568365812216126900215642027779056207165559692580946200920115664613689665222465681734205063152532072567638266033442588788288330792664024262346337658093800554295880468536386994988004546089639460897317344917035424171544401743039042291584016307717556446332848964588233958695986076240770966019510371702476249449273587852664643577655151375066739680662428113797178869682592372494681898437404230228467738732959030838181120476421544633788698389480788019461454550118438695781378762045177902994558371416426195378800820356298587347076196574182138020499777590937838945691129241860332265380169132428858222000213392980137470590322329061775633687492078549040552598059586439789332853917732047519016409444493056369753866580969873257421782844350392765673221926302819381644593264093114441021130561804573856239142991625113525196392645371840470309767448830162132928356740550842775208043750119482371596784469028949431197656238673485189538504508144081763829153902715057152297897545227745170464065482424321023412877392856600343533036489290855597125751413334692011287858128327143222269061648792488461273178123804503890158118721887150173690483213347005885561409206711568431557604317879704319148679672500697212664428162909280694411783992800662757545929599363127713912408817946687552279712744232648817630644103318955418181572213537019014532263436993491439247786377188963008543835326824102897067820742799383754807632305097651255136455137900569584920449659553081759178309198076930525455900186799807679940081943955884617246854738920200727367986429649325744379945395962949215065684723058012549584513194847377793118470974032748078455191159110960864044120548687085231200258647514489308807300245500070343855610346731030497575991224410889155737159515499249124731402225603096866995117933973827532040744925707810859922693644011432049617478078334317239479289408369959499556306153414538743469245960121487822490284200773489384237452739658350403190184462453727909346836136513639192660006929858837968458257128266838949265418092052232935121977435676565665390653177404116434451657736792063341992687541599820308309776008647125381126697981138462977705661523392163572397897469895702102639396771060118561865902569292316777244906743087545433892886377537322882331967160152796516116044792460091057816770601175646413172049463075769500725676950246203059523718284536911260203073761177501297113780586316570080048099718225559526823899369239486495549331836411213747864219149576362543509693939263541884093312501160219279365240058064878096101705333211032538802214897927517482565650795771500271874836564823915969267101454400609313031577842719774473894861277043117670467893040051796187143320980121616875860634617114309104438247684964565217121291888887131333058744080878802921852890287661438884712122341654733429863116436590410549361862510895749967608231774336229808473352260636899839701569482469381141981618006061167197069748818653676375816293968181609834971052495637615830948687594325219251840656144034260753560240303911792169076669322744019119431163436676029660439999448989382467982665117192576064229908097872544240582438148718332480980181247657982619163906499194798408406064463908400767425696377182447589143819282701348342448948550987109826329343522602377876983497580063228419295366294103589188334108095153891197096569936922469818106148507873090804618049115776914161368360131800387934785572934590580867723999930891603087960806193487145753918887641868818015372765001495241784436363010255431202672686699082255464968957729042417203760718966285041798777776186539213083431750734895055149658015062476613643471838682642694905273141156373672942139381852581093374347640133750087022294950053119342592265021485051973587078909713296304661786268622052259780278798742801837203151123955956303955159020941033907921080894636370924082270847691362544798880911806285070875290194641191538914937893605633047998420076215052848608654220935535159008274334978685170512762676373815688627267028578806061339041327832281046360736541150964909204811881303958352485358293413666212504118176823125589181996340921355336455647643667262579657186883492987390299489759639635731585857912770201845182265634730384239618853588948384558814520479888971412442837325588986633612838317420351040328963187501470210507437905389764316555980777614519257978874028364844219228214809264632800340301393135440664340687327303363679264197782928462490473030272427280467736160753429166146242900334266009393759603277225069336362647688947408078682706194698734569823778702822406628313452388593876997289587264162772727914144591736702948986675405953201122527564852836554168716679103536673773577930102666185621663633604570726032409271401037932731550128211521611637437955051573820404739722915074387424100551477547087474373828444218869915258862486754450492744963627140155483088455201347769679808749806618531501256815658543426577792549220333520645491155560684582345946864833830180301596302723872791764445049241070919758439811207277603547813200105904850801630067089445033673928442347096479270260171439400552637507833685860913911059008993093514326684980822247723554994322408350369209680913977873590109746651064037394914201564660764103501764427625047694347153604408357034960379408875328961649561337216365595600251974884433005613585160880113578775212655811912811534157550565014490370285069476742563650427730546055186738799858843520906272189182134100248157436320383145827828382143208634437312577794919586298451213222209796200289689530402050552625081622387704716731481221431864455718298150282742776474552195581177134269294858624078529653731624537935537286348409812492690342950311166036769115076134225323830334069787323176522579378683813866864067177734519935271907498773793902020707546078492717939052582839042444654155978777705841451688166308609794441374904539374807809402629240071620131860568942155712251236865808750470219348678960135564969901801513383561793298778361903634663681152066507284271974511900265325187353726471255143245046711779405164023575055466684231400678606885066064776897566340870420451025207639133278806125070641529408511893878957586675385401836540889508594812823392465519594301796374670797389649931988769461388290967630775432149862902754288223348935485858160324930382797715607651206794971380855674175695725632666914531185047156130109511376925441108435014169381529175733360034379495036082570803952260984145081955374528497407696359317424761902781637113398457840582751848093374860900372268721698222577384637379604402392037266871278132900293517704450344725029760301001144398007608698195765189466623596367380873654538925658673035344645933006540097425119041154156049647667755852928746878113230299455946765494659533289151414645314479092436350144871775521302813480167546419365733186686218750564127485687077827818515359744773002947848539165945877463785807724524134705874426939265448537486244128789551510939612890542423707669472935028682343150222526738607999736848463853612141818039189843938766646765972265678097972522809550069404017555759861193221110334703695418353136721528933339339301402088344020124555936747104125918939642184514797633716615695871378700669564457241541331653580194538942855662789707901801450832248666122826348929771513259646032276888175913873167098346552840370481426687813698669824800162867117125589432962420071608624805556240804261626197238432721333254516187849161504325952901418499159288804905320070557441250801479985976698626468610486365196033817675557691076831931197631802886944800923555792155244686489864271344249693537592106273692155750436256068676037759996666286172972706622712199380226740490338675931857318078174464476284029203710157325674503396022160277662824094810452901750742525579758620981407631429043240354694006613316259774108828939327278189817078221175897500623766322428992268021461388397600581183454633134294384826032465706275830723267583575401745695670534563847313709578052269277470928599990853531765965068392569025559628710176819240031009188528061302800733901861336722677767095019182403229614220345835099412475621786576784316153395156918400336991846156879736388022774515547761179829781880054325220449809944458366154593431204205925260793834095001375165637074379162508734738199283456587100876039685698608081482810680209155700264852162362677904593945391321545543145495056935768667230094453408568970232450033759250014982504871400834839865881492218727869330369715961422337446031206883865086728638888302965915604989581036698290011767523872368843338623399052063464778644422391980830493197156747969296943322556480767988766880582056047069357124309563981911039879831658968973930049589597138766190866466691871742327825489384372087533146824827446005211430907670597910641697574721875605228183374930406634774356767047751245577003489597200942182203341143495488564032068545691295586946202237080069507572318603515134084233543240406655436757055900166976293763269162852330826930518662286509575944525338845958957712645989480216216388194387947589094000960497773470820057396139702379260734363324712900455468991770931451454333470834971468370872558757893038757933742344964330335892144057478985003419267642396305833073115801364393483619730482211751249056415936908370058595633265131137327562527203503257776841467407458850734661916311375949918921601728041376834620221875480722237556486429625025415315722387701959746433838466640497405777789989234361441737534618666883400463523772782936345961779462100446223808179316615164124719097834930990000821006048949784977248518514494549889624439820162849413014258535278133030290373696685749460259630438852130114951397184601759428743637145107511573525819893149612842535582362682767894614781128626855372567544466337097776059849675431293166034527594069220815554643560162190310655035636995909840890931477636358571643470684890668986573205872640463254993930412861878572398097898017599072701962455948430588510558405553880731475621908593189034526536082737347161721336739747777916823353649946831171626170846673321027476504251895988313206551502608146911245902013658643951924075186298468266663956535822805282422846717867602916059914389544787583107745325545549654702393202548873779545382950098084673617823579699173853924615328870836923852310456331020728022258277266621390143649624141666426801069789462635219280726629956246591970429187428112667551208446265122688817778140801995715268464741940033015372501892768728992649233800691016675926569759890275470360672528615712152392332791417107665537261249790339055017630914041581032003941898938950363582102522263545545138225263826861185924786070810762174074861254605970973472175587121222264143871226979998016550536623420516539010579340367049375099981500560022566919163953421102743197725283822687847149233795490374048281468456590473456156015914304108377793040305433156853213710710037544567091941350296032417961385310086077253069501222550451433002441216434961389217180833579016699061605728457313798846548862712939517824181218542951053713028389345405859213654685515574510465194427035256726136186219985113805645778651538598676736690939207465214957531327421743039909244943258980878505202718592013766027159693816484040193367876493650832611452968181952257248421626407159222583737080323612361821877570607119441468427576508275137873567677091646224581964503819998619070816098790186152119310473580453131427114667101287681528179912650610503834122176681821150396013780987574934051109924986004843184163318604227527387844218606427470994943000680160415493205170207753402707777303121500136143553501559956186725304528338580231566386068043491200979807926646753157144143794420657764534495987304176329353016436063254545990135677718226219720712324191659130312797157401524932422528816047068171029689681415031746331502629548248998671066506315223113413379204679008060781566849472822517522719951547343898254179338676083407736636756681300656099001890454785861450455259983282555803408441034831981949371073018335545595404074127078416913877465184748977187996041257123471197828794812301657425657714002738658503860480340490712101186503872066980798263952294348510738498049225741833773140439136174026441389138449309517133215430275677890937930758548693106344871921657985691880080255197483046676788692733868139971384537338033741967998819096048537386159781062347014236196044690439642116639375377780982854946769366458022853982536577805379561260020417897970229596492385974947527452918719797558798578277802998782834850925533409562321380709675848781165691751018395145753504602671264646325129030054010311682420347343305546656497019075318578587490049925622616290641761449877571879111558949789772457817191154316180610105116909156685151966910150961201142044299206084077716919550208914569364999748421985941614559541338381495391637434197311464352741687585204763314678315066934327330033346314272934228070291152153895176957400242636750027392321261995587225775270161440720007657514465554881967658223225675484359698684742461857744767436827463573573372086275272295381606425297115924831036766347052626144366408781257950308342541099980642751356656229075809903010511654978384528987339971160999776863878678473198862152435680028300654679132915799152272838017101081570477866500433706550669536412542791192400191798895408472573745668851036040137347600675119261334603645631902583433716359256804129296437183844531693362969209928778962282552244676245649844072791671141710226866122398859625814888152995289553297807376399024579345562551210466462449498704826204148730790718661508306643950705804307791271315008517136022438685969161780905779118626046879263428354140628874687071205930090013990223325025007020201522404141054928095033490587245319735393033020363173519846245245004559248105420068877296740484215936935147247627125433764248508419989605620811666713806427595643601578935342102048458319670364569224802673578768068916201873726218960432744857073646625490919366588351797207021484948432326827320754727745996349410250989206518000309517054004427113533766843559020679141997127817530553176627802505686052611353916019528314190460941033650743694766728599319868644402989877116060382724599370406774280339782331188538616167637519110858344900101704469877393921876611116737808841404413887298631810069341158959488037010324233859334195799136291084277864378854732659101792789465287507119570008541016064608219364842677163100117049062860178746291909833609110403215807048413800741418915765450358040510554674383460759856089556070040740380395002834003907365366018916375189511726459221090993512712823106190966504468079774360191108410824222634233946522408446621790696140354177730783020809225444646700355300205451787883832405445576424225352572422339331455209522862914543037137319317206764974408740473717468001124697432790250400971617513888105893131669644376237645763618932939316631096190513217727192524453918612895426702517143265662077257768691474879350442370251458079013704221612828160751601844558804683553432117309743403392945636333493427751684380034757214392222848971294636063650572225626485185691810833185017426402398232797122650120231368384523852313080978842049841375663584930222140172817929003157938451402314444199649965461197367718859491682164600363880484082202045102460941977272327285666740379007070747621990752445522404346902719556061423345140707471549176875029463904627674030750132015097304010524045360323642147408089688746098380835866116082939818963772556089337150276615031775166992498962998355071736378412562807479463313446710967369051591601675714051911538007557628061952245088766256608512968365293282878092965579475424594539074005507071612897124191446017323488528131733899151081102253044098662423853749054710584890031954148746657108553937090844277607512571470285259534869145301184113515954810495598332586754483922307434147545843739705043428210602073031891932625185569832729537486869091546365569901790394975401278190787529345293627494213144752258173497454678882837798290714829603543538158768918587083937238378239173561576039336058504022484411119794854384193312167842613734835097621203873581056786883717976888510349319819147240487028460312373780107294590353817389019838920209853190779382461490972903202910017797735340344783351795986632668296913696288904046518737167035839989704068633124275789793280173016159682331990799679452601956724155863273236958332304760084263559329000446557966520886798401348346738618891175569636410132341486164821361065819518551327342894397922951226292889125891422850512717354779561594163638914457632206608201064121070881572962486400607033902835081085361739124139327874885965922945362208721746218430542970424602646786441167316961055612052860642019960946368969507660557451332891871275638708721152827452073743241107730360797790282144710889830489712463458721061321362423725180650059536815650059793868469068163001772012096440499119302098866877656324704407412231685147699337553173244563248749791103730487553291648156556605145546903459851294842572116725834963229036554219473049804572720684053452514696242451921241775062676257144896628175281803273890197444595112776700702250381847475729939280011254315808292117128896057628113762801287765304193823937659147052648846362993707927410249864097655971147969656613640097812279079426496177384139962517653764563525011797863426874198515883452419457819906975542913711755828648074185567903108725315430209323158719441382856750162775044921117680601026554866966070467386494809670066513888905440163790689274078216394644866484270840801581074220847494747044779363131879904533291653956572001412001654044788054006061110389437551640144142187472974075175298263717177778410603010613412084654183660363323366743551047074420731563376763080213301283678439051734927576147745083094300848064922674068181186105334475849817589592117741709268297495558913779914684670410916297694156308566741975755402050888214096328395040938716277318955836778812201232967407460831394601485617571906313194834137465507539649102460786483426908271525679570830569179878035736516212267360700894741919951001380003436736886671112762643758779856107182714127515214633284818514287005846341565877480318797033761021317891978017412834703285301313008837057836715487231172212736224704208146264402474309984045968216572820912096624352114878556629535777319707034145751455686637050870468370040819212726035984728993484902602375642993929873099343818601708880226638529184879324786347297850778221556779847154660919689848917372748749291844952938396518188953406171647375488044024502177752676078208686579112128021513941645758592729598360548583211965663174020942826324510105047524902434097899500245956204178494888310503920509233109235620475295392734601981853386989211888045908043874580107109280277558087016259282918403960038377179870167721793684165051587569398606083531997927175251275461268408590776940889383670734146054220486042872177587754418333811158144456533087950554087780805817772282964363277764614436941723865582358321139504102781020726520401910171885562045556000169571653753532386139810594289052418406286124349885282389317663051332115238507284383763341760349472180432952213440083721028549080928107271625452416039618853732700164779934629819460296123716497673906343774284683931190011203881229819240110356771781195763578589947618730393903634224814839308902120072302104744206261834602527146229497615177295808449122996398032421577485364780920909233683856039976214524075571101517780680624502647802755315683356391104941336995343212104982393568439655155089319563426729383921498356933477722347373556505476631269063440714966989192819821688794708165494978768618687932679537143775791571619641153769135328457212421258148296253380328981152570684305208482336329195087770365066365628667231651750900615301163787553306798465433939340988685072737915787406664040933372622231333883044231009076582502825644740481838860750039019729810834009513284122373106926712472559715204869707342916579608136861132562002754995569481190645672613702544753255972905255464667318915013461804133744988695990861615594351639695695262334964860979522335181090187371580260389699114613238678128129145675298392838630491820291738481544466498809773115931573565169913467366191575114042103265107895857555313016798294203229750320426027968244096979886378310663733157257587168523630515542481694518023967251376304738730567867580075218506261756411741468928197265772601101406048887684076065935521434665081611984066710837157484341082650915640776068896811326614216372160283563808600468577409565580927270192748794327085660282268222012365379819916481247013651161065840179122762376294604495617996825960315081620078450245806933763832717610748528180558748986220327485456364760898840519448112335652558446780585482942743202573121751068596920710304929375820928712737907315664820842103532720704750891676078104812522501357948256878580179876650076963217095017135752758840521340165155205861674961232866515380184697577259131000464332781890732601917567503220301505807767712658071195441318671507992592309750549492799669874447310009595188083627932342788471763862663413424800167349361729424485538086758285698830663135059020435012331460323847189886457304945646495388692902161693801687457495442781968489552130964132792220317665014425282070898528685083445173726875547054771001243694079921545998593802354272309344114611710440592644759911042483818924270286439415136906011178121023945930252165474087870685096999004127021135062953857328707807204027522917263762284191591865291341369493567401025522441138857063068844480738879431953196182808118037563619210189773586110715766927522165495349686548042164675047050552436067502858739224738310770844240702129544537813524562045135668454048704745725448278497084695345795793492265642728171751337599591727510169426128521283197492150697025894010150671986905782422218738234589803957614320702866649153312388742691862988708873723851674298880721827505967804349345820473432049265356812570125312046382774244012844014839905655967832043604121999004704028601699091677497247125252341914657148067519166690741224708141750529808549836456713464441518324125676234506884162707520084445290288612601028496882946445330610306267990014634495908238867744151040972801948424181843951061328780190661915219552390588117292561942366266970486174756538404491450991096068513342522094138184962444950722991538125506736082224767379083934517451190434997041843660358588653601690695668083170324982072628471196328912324294369718904902404082637649177257101501366392804650244141162789560716806393188065940683256787415460204990588244594653891226470087470462417005120467587906139557606827891970571942509401755236962267119380420074733426065741636507650907702592274602448113954604939960763654136442062574570786199396388359882298142948914991465710251415600962006505554484565508384104483908078815348348099611814297981248702885295550607298125924761514498772095855213506059608136476193932274404752743134513138203507998839135855365839971910145046113488481820514013653603118017613934205934959546043852527620920706820025570393728236676071121768408026802685638244872042263680647000939495790926184286617379971686776228651287927447889328371185633915509962613249803456413993746396682045296035945728939867583582475476612589323022394408011748539845599055187621762489685679103384479551680966042994252535250693823763490212774918538628860257231651244758693192331566906234499251536769094022414583875989047513310347493980702739046975606264002365720201933529925071249497265521858011652908740737742902257161081658728626505226623453410704164868487511083564257904184504410211105810552035616125022060377488338069444121508638181084517400370201562871333038750673883911169308764430338320073495334988134106780920959362176066359403013865437408565073425418991059936336604960356747422571604718949349339047368337529505710705010877447807478509434287910689549253643287365969019400641767304460068161735298772366352937348509886312945880952941406103649341308539709062835120000546969250724276525072512936503708892953604431665595058318741114753416479610708646041564624258434420110821852619647469717488318978945187336564101605191357216070078077727938537196773345126407030017316974516976939812082406462766035850545979147213709511820603014610160362211576914552506406512208691221545760215883490521474985097114751793654370553707223646918502162561481285042176