PREME/G/MU390001

034947844686039895282484919285721530930355449990608794738802930755823587233279027573113132975872692719117092535675198190218835713193856794736410819637451207242395001430017435852607113928576698972112536980434770454205633744313173542396012237767248603166820114711754018297065880732359316118761033738877479301789644609913133625192133075123400507510915928904114383050020481976665265095198374211510332523611718094212198544619315664411194717864829194759617198497171138097358178615790955148840143548897984433744090186030183558405986966314541610022749114769787458542237564078362920366218747469385780315155105564834109295620211825153124061521260047264905331666481003835939649223551224546795407459008152360600680195923502107011561781797344427071026524016081428314378804164597148849041226357472054828955500769596675806531841042168100393556493007913046334183445757313659547457489357487657201578191350158918407161545535785723712400730813493983093889263614316330328367032532100056552933895977005275048802672022074286936412714796864992211908415387336941731972184611063946254630309544042911153178323928616714799473997741922391616300062276819900758752597409440026463001928430859696968317449253943638268432665287640647180403736016586669684160492953914845155003805833685812327644711989930367182769218462737030622877949267566703530346600208149220780751904780851779802226934284637599384266474284044192923531290000074397014710208571160531074618205684429944326969795329748491537573034716122180107090739325240371414093312275196073185010556033456738291653727289936967907747075042259773827272432368163412739555886879556734936920603603891935294838768878267858607244377888714626603352579923171835509270800574994571986876710205789758297273314510867939756867680767236204746335767203706313733455461767531479941618358361568581051504504774334432864972805087093029075692728844301305498341404097540694364971971092009466557939020181954273000072691506628116699154010222034611583017766016754013996435565956917942057341374787314431921411822134858205262224833145781620784463587576000317236386348400296580988975879890380207637709642126330693989299971296226830695303719843386854931071965817086330962155286293754590654606415963804061128227268271613456759638322151095837895139348242711204492261126129261708987997569148046110608342407364331377780870999917993541366631663007112835260802639627721431521345696960497107901161487891216833392135999715041084426200869568006517723762832049693135334448035314337945355382253767322779286941110415171369230421080352020969243835286053827549805340089264217343885503947101304152825776966579468859506914189253598901930707891283685629718241428179333525145426033886426381227316156576685189849401175020911837833684715292800143655604441164204199539423874865822723042616819793793519116498475592088149081959648255528855941634877259621088113822365902170838963525205145054534329029457066671035701006034815489064798429234323060616815717084078055718134646218503290574271427234996367066953404379057811038644941546877215994806501150716174639955579661587101165216110741093922082047869748126152438727059994058421002585105339415215759835597615800561969677280186996984297855705417862864051219098582994071174041020629166771064253181584377871834013244264832293186797710515662936136848778860523406349845108426302120814221829341915618566312387520494593632533371761014249745695424539009502778336843890976401902549296986249893594053163120041340337336409401858331476802510712519602324193028535659351519134158720940302614337054570549479130810560622191869345326336805274634617764460536721373489971516206672421270498464341617858185600678529676310299043389082211206765202838526161166749936105648402697500247723156169504876078564625478905498184088019655371065297117016532180252194915622268860636659453760641119796386751058638496907839416833067553452037245424281197292047008635573625106450603273960467744713789855999723944832644772915845818949762056291694578055929000338034573315626853171664881252121940669308577329142939184743383553109675778518827195807545821507681300537867324455764781710734732345433312139438183997872881458671734944621929764342519173084130131609012051943562074452108535054688024649034649029129747392871388092393588612963217375895273712205030397499441917399230375511074194576392467230881657395960156911558964202208090785887171019920694687378652223647884612228284198913400942479809977840555473016130393916232429709967609977275562894091258546929305669628744572210758177611621982331289601649563798933787036533865412652930153550151351551575274763698214822230788258072629046971000552591762295062285669114229261477733406652940909902590712192448763702021368839208131448109746787778212348432255550064858216107251400246891297580402170821685485766687504370678763985403936417221457672109915448319541470387897967468873069588395710502056449409268927635554026659920851609088680473991680227902036131962408121295250921443144753891168433105791761025565992135041940696639675814690078879452532443784128697397913594073645201254637254108497268250493112257607467881694574765182509461453488353099592226595061501783514631754427811933042199886466422441746349133377816890812190767318789563844805393696505641170891308650669545040650469202839917086983174161956979706411598154165010776962534957715742565972749947638486187702179488285376461592475545515296437020138838123607182535371184400442830922618002355246816903535137011835427091705689958782166542984131198015474705085688656633311078230879006059217713764696092755950552717916122313434724812713833306606639732857103898018221766479764504821589923699696759628943005154377100733881068227831594868992585684741979500246478464289058925196539989389420261387410128399571822257653636473842538230728281897638658788111851836170226668577392822330523788153379747106312591632865467553533610905051410878167898541979631886185230229664361201874703355236635060702709871726275013794039242072740944775707298214666683477808374731568359546934373332516745326238239019008686411738784154712197306531117989294593661213440936869905808446762817815808262056730729877331756864852914329020260444579261785501900675221612884428663816900694671802430950081650147643827021733596423086553924986431795941269042344410111907171689933109835310333659646652491742104293339262713061208481046014400692117236319566226824867338342025116033633804647352839305311788172022771312321229621606315847857987144664976159218722306113795187521997027870186108415607751256134294625301820768872807724812085557972155920448552231395740600828109022224950681505412957784306933076927586796257984253232630268806940766094094255641483403174242125136162230320849014251626889046329882827457637004421373819532105771848079760317224560704250583878970372065353809714945639153356940140003002612668190807379571875381326225246658508715399488014742063662610812730006900977757655253203496954303166158348001533231677626756066115644235495789911606208598257838420155488195836449757719551047125018938168265205884048104644527284548681657341677605748142267174761801507298963303210011335491990255349990173447143416927052414204744359972659516157564243558010005856391164374560853370284140455846442889975493290700362862325971911079892866935608090455060287217342387431851392733139197931153404364365768795213574421900594414797887745542118665565590740232984701929692125785230113289151873112045959414825579586038368110388870493664286722903289779616021281922701377193336110240500402901242437457345586482576124778410948516709940655615551795464905532655119580055423774961432299999991836523076010929343079954067113427659614480081129465352488728452555928369673249876531523131820236783396596173901134776207686437047816609951084309663447296538063248428026690032893785557495733877616903285124773264296866579405871769268058692156857149991389213901341789167823378057386207652724393738189887663487640121359328281267887853699937914340951720508354234482189834482301366389476071589014610302352437396775312393220783178097268218043259992979406232396954502658097473444585397662752660040974823485230056300676633268222257329724651587720542731718669660595306945620752161892113826452023247789599724803699618896296669550976476772359235723040376653518223110917420629316717787647303809648178614251026359331407955926574075395999395101688196859776633527872757002108262411380130986560330546877676078762505094631365189704542716027762465705113468115069541059136295825994518933435956879685128699061177896428525323046636714352242905738621734438030259344608356453431154100299857480861713963541331069090189427269231362523487291261173473900070764196284691858764829900533958639876621114176005517275998719087871027675918737722526688293037675136515459104036882642421966204053978234784432666335248622623763660864524374110396825795696876315886609232991077153936570276479722498910973961402960101051365221865625016344496284621096523156210358990752619967610459405312487800634429296786104278139340038683439577362114823252728083724116462788753706239547220856151973357274186440866207947211828054001028532674927699923108222822937708355970661661713877612123403623696530639085094144396690901648740772139810301874849068952836288286035856264732672059877759186039791269428865842039510472535121026241832420024508928587376575854203094591940347706976392647282115979969453929978346412657869184519391132734784684519970339175250396216827944591173729463396064415845045837529496349919383780987497162533398316259544883622315855199901256496400429399147363209944701624861939675200944249912946310410618290418731371830201655212161531885816545186548278690614911810862627995208157028796218586712457184272501339079039408318615104153763912452136852986540935386906967192498037365772132514812788727754346485904328580157001528367737929252814013710081948708424444477005376933246982218414728580495709217108952085779202896373210819423273850349335179993407370187938569008896139535090404931331695933469801893976573431666065147787917644858668405150150481512800093867307673025244168568559497401446306256986452050740435007921754245569494739507413778440909088117126197883024262527796731830995043890041437762480502917833203925683784291840863818732447443128445210144191269725265897989030139704564996248034470510956711311770111821970747835355501012773501941274331014393094582740762340931940597845113538117104604286761193532434117294095353434675683318741556482594681000521387210203911901788121492526843295834344904336188666749615433979040798853104658154420043311083690366407558777758452362321684599761576437210783767342704364789202875194785660945058267017285135146727078466877052055217181137427522684964791567701759542935382519695615842446220369870118355788166576654928321867178703022893759081666517747528596389303987450389817270123705103836098064784666836306381849677675587052635492419120323440414129592264142519198390199742175682181974385153646723425953971953528273672823012397703904854215752178340768517114470829052656071503234232067804793025151169305132144288354676005367312172879987903821226347892357239386148391507197263187782390591978215983100574178138181172817886133829775239366439577641713570568256543890247568673530927145347938771496346865654491921529202339391301510418532369616700236698385801226500580263430267881956656056020720969368946573051656661728514765391885865887277201634839736644608473129037509019303717909780808654003527090435298371551634287477688813500460905883278786006397165571860093104838412543350319832518009239141453573689491909108881774574297688287447469118769143644308217595980899169122763585036027747644542849359253843558551257544905734535926520836933363511365973365156879960844677432260415904272113721130987321359206799866121762828219455916451660752801811159144423939598278075122599402119652567430579869692219870548183304266988330935591882242567385831108116299401507306330528348373096831500632760758592764858174888010198817069580727913372174040635148793522613230216745856188120324667256776830975799280250765254781932193109527060250382730574357298063115066329024603116119147727568510135117010457990555723184568222927585823862580002208083679607151311729687998092488576970100492205445888556454116250919744717530061266729761634711153768865225538634039270186105664919024085035461639545858360121210426255082332174040154194969341324119144347936910874383540142340549151731040439637741015104514768611725043397271814348959393462429541807470380888075017685496641670962919793250350442308504483408353831767549106679370174577149574347929978775637161852604862534394375710337486319861102270443448738813087538905297455235925746024066929963606893027782443238147128467562796794968089570070934948950529587414605178772191744114525703415216283653106304191129312131029406107351098020066546131817805956307132166164134016068020299365501206393645748615401311700006515796911126598102484625417419797724912927855079408345818548624304815546366358282659375489590386152026721121708252187234477170177830061595040813185184704375339918576608086815081385134500041254928571323896434589237578922594905015523559401059108112898716358976233397563149317920883318870340179400092580124676932113807850272732239330161927396282657345249542595297605492269244884926870229982155906242094385041074787477008061206533063403153804951010501674936909586653198559008757999997513578833134975873903454709737845454261917185029902586298366365936410862469090350522686080509282062568703117063866283127584933417757078600294333454865809824772721462636724583748781106113823620848057797648269076679870495122314059521689983715126832156503905041931962823083287844657657896181280364995472297934484364722701904698296707004945558235592012800493337295601215298653029403715570183474563598726426525783584362652804436506801738456353133333699764237702083723521104433614808398810549561913571004166535250964967528828220710064394662304439015023721762211354323919025297723283251732488109379459769533198524415001673324707953737930008467052607159263502850981872097048515127337457960448175122414338226560562102132978540539957293625473431133093468973142567717511023321199455666369966707883644287474470198625415631260410541141719682607083269944430878026269277056837508374548914925777980236034989558714285093246917954263862863291289455480753407083255016461892816811016720671094188458018227574655968821286276467856374544481173504835783537194074959741589688951732130790087404584450583263727952168534385108434394554176766486923376356385026648886481731805608047441922751321754467413779654087845468159002157909783402434451469389928049305017886811613238940976632918742202834764677157140719990925833209346588740267753804862430008015869405721490358016875089398884970070097945265948919691029137393429964873300736349010230062025694994200508117399166965827218514173402486674820839758396220155148707996599424121262729365861355418374404828764939498283871034986393879981914463854631928714543646376315744682774067672401678439475708832135131221944429448701229565963948269011425801604170043335524266916167605882251847213825360821135382758722964957598691681154122566938195209141289915122071038688570823240876725132477541409950107200029746206564733867765296718953653003763869782491931435576250685022364602204895227490266316123952884758654898026245141411062082076084636062812186029981464151178219414470707190071622627423359787217299047376753016650880832936467978501931458236961443198407862497890389847238416005101900867028521906791042603104437454775576392714270539883092630284153664543855405638366320298191530327432176546930831491923474904166092160722547831367452619074642006527275049859452289629711948089737458947122864984050279522849913560122334046767315257485288041766372331205396217272561310211768010426976092519310213327882235200950055642719186502027267553383453983234164110229654476677398178081024746851077741069783991368089008241977015748891048061259927124107760651486512758313977701699430523080627364642576800810700399649472431114048850263896538117154596880278989473037170485442059573617330105292100066732259641049299628572323834283132247540304892223871947315618652036966224005588174175466696154458168263254623621335327572144271109957203371030231489617773035642547590436656958433284157598934621727207796265286787128610179619464541314917927163535147924069885112390633058973448806849425872853329629366016020893756818198229961372570123708297579407408104434647936501965664763803211285808570463120313222258537652856735325662286962050098167125404115976334016111184988368743546401000599721788163235267228987599691100396697181553415477148155502494486112241407948322244999035344934950531549767015254609484432288017821361924352371510965691600565326584757145328823133893408857039857417413588201168320582844640440343262284286970760475691055094883939872818607276074855801845376455722159524946518102326070456262479640199046428103709718164949619690422519888349711624228443845333651355668491888766647724144789740004987858060339021670548788652304173062635399143897846303986314772431060255504509346301076538768169421409725961027960110312658505676659131074396274643134504383302194466547175815542768404149295031073409854507867381506202296653518015253020196119647117157674262103841540431608107064188580562990179918329015380218779747052635794587493416127437002059941503052970207827797990980703773953722655273951147192382395571157113408822096041385563336791795645890645083005562064698413847214797907824741384824043975753815659679025247810411106774378790694549849512275158905751291497650187505825789976300048772680132944447648748078488712762056273660002304887241507643421565851023291792890607273444150708913988368888963524063843451657507172400656710223918929256192402545933673523397321003674614419664688910896249764740554570750130459963756542105206421128449035268087454067380443514351931959478442177166981032652297176344441945275617819750193332877156889698231951597809811526883034560903592156507585587261764145112129058805926286594158943149434530035447050509296120121860206100441574011646511234399633464170518023201611725821794269743900864866309091458444310328411723521268068824816467214303104902557189931866149541270758051357994828093853800905089616867341804642485440512964361678656941613192411326783387339844145579249884304334923269650782573472171985043199376171922213287650003672511996555151553099014834022074059796336124113097290256905674929651461427089688920449740631227848492211974194055185060795888706904353771946152763851673719963627775833668642161444797795445164541161828976911982315934095367614827188739710862254753026527533389681537329857757286304518732182673291238576472515727405150321834562441285702008176014081396317263160408455299712649092475988878436465694753540071167688974988934002110387826376399150887682535611161762659506127444120079851286927807923354734634215193270367447231287589012063625269250713616614674585539572466156219088379380971241434297044109510230539473393902071560897533962011365988957801687356772608997517782255366920071037497293640182336017120713718401281388675811659129504269326081350444618079642367710831434676207875154636556641387468580060407237682189545850591434319156957565958230679508348649929351337946316538347499386136763217669204052699323440647983609060262969183557004963252031074765874095001410089625795558775280782349323235755962314820054861128147212072801211885119335738659838225016965239386794041272233058014076995575424177937283647956261614941613145011252316240640163314429545359031123631742395055884678197021184681177770986385154432616377602155627994582949263935503650084406209894658564824330980860652367927975903445245523392637204852506918751846261417114400413351734536866432465065128820368099606320007552340051050366894656214324621898386984273924095652222454218822378093879057960308469653129367673614456151067543467082226525308760223739733770868142053516540396868278250147691269806086957173563578550422084202874120772019273429897426509265780320878032184331175167573199409331386506184345876702180881107761872784830514293565322398922959052338035026331096041204453046446596272756597322398254874990263969006199928467980467723646320195453066221605263773429615822461645299832407533882881152697553257160858628852317703016597065887292725504751536754488301700773226769838948015072858038028813018464712851921131725881961917619226506161951990037107267924382438342364551475018911759782206067022496317744843095778771452471072003325831248784586163781084891764845397336320460971231636724087901314250019648574733906731869302658553658778080862732852176440645188172615235281008196907499360396593519236974536031079647175242462644942782118414021823774555643319601553201936265845903749592464142768657282306716048095388650805471859375985887941825213386481370833557820261392538716159187241786830821802334184734821246942189232872980816460286050957983703340997797765049195137111406369901196425019233751800525380364817105441381543739745335721062053053094373957353877192254853181755810811703408555744243170437732726218575504568092641126110470591859618416616755134992190498038051681982378318846576757830897300739146429260222549986742308673215697590504687295594600404008513737062287333734979220003243671166081469711581907895443498109810776130522559967928845355371275810745264282490466603365256195764384116749354693730757459352122016278972407097411963081340368758926136618789460749698239766282148582394292516407948753015556072102708736787164280326994828353131609106295043579024230225126028088394690415572962060511737025220226511571714101412830173122702686008452185712762623405774670442229836181046155555958137622538807134051975869694420903243324226659449060046835276721969812964476081260016274025669548740863051423255760465878616008918667365540554997485375519992057542182707119027481750857359069620153389734177444467543455055734748586001272077506061767777289499977134057573548504095092933070284085912354829195056621182581037245103687196635141038184100341844833164082470060121097582608842401014414413197091199868915399455931726880551949032904580895192176250543788350156200917379978721595259232374064100039673770300571494680430579660312740868052084983903378318126905699414120557906506549059476520933051327655185706001400968306617469712916531614612657409465042400229309535220978581165612309097802929578595654453765466408161530984513448848097823989286665494882493788157120451488672611685242392870536218051688988198928152426709333589715120417145596238999896094373150804222529720790680703842086718605906441979721117234300620919386464728410681679475476607130477840103301181441007907570755025917314128962411730803999776319790640648883159884739062373011760367407897905426547164188515373159139774557395786070143071563615109181555555090948309168345765944200101401128062823498857931669253544523020647080926232776311770955396664492987703491119590685934573343918785108461419107477809378524306114004701908009474626574191416094556719505384053516060393158440340156195623553830120570557077878339150710056384739179372308001414396097202805391596476758433661020717131544074769360956708845809938429111787107965220133193594204979741831175567701289159558537651324333103536196125961726276462234753432907801896294185566343518161415800730424828988379583165641867472188895454989911184772317200482946562953010601894391262000186578747309732913912363683476602511868535553839164209542696848607243859388417140428710678993024619820792523943729241972947430888449232961052052840270117969276455626999315712170263981024354004340058023944942927580276814010166067635577355583982741305885854761929310753717381947507085305028106601054033275924875719989798733194016510264471766868848228834509205556620826687964030263073972816214150849148102405789502099135756366097430545176601603328057887648796524210685082823668376995584459086811933758911527654303294049888086763575698548594618441754472578133112200508714379642501529113384832159825904987740353471231237728397360114380000055332050702003498453163421442128462955652847231249029785951199691667087377357162591905537927462880232368323250651065025055415447982045096709447609036433554319739087118245161547037754813638128190501069152711066732235252546719742191910575659727547812103921980533307774633308494299371399585768262650873773333335662270500124118874991397283562646748219641461817606915480022415416576617569057770801354223014821070703834956957188396794581696481033942695923490136953281897111190681741709951824348808842406787958868477903144554296278714484666689656893222210286689789194107243148730137338344772949290168731834097442586161327961604843491062690382026797404400107883785966195541978354647844987284097937731293323746466351947911271511099934803975949847762650028938949994205974540398730650042695901011062707007263922052223911497359973236158894815532270602991572134950285652273212317764347580061461705878272146431198461314921761762700958745002144233048395364246647856890964789377720731227517790850951669143529885133537324054026014489403013322801209961965878559194893830708984006144422349364384901546291786525102381480355238255160436649858494939757549532210639601066202691330958482706970763057020380308635705092918417628409332026086185101624325801572432356412044725282465960801277998342261378881875145532877456360589670639978211766267410928678116661867995346564070086393769515272805792452960722739075504352088915296834478296215476876185228178483729323424092971111294488050815666598369026465066493455221421242141023520435639292507424303527143194978285414572346505670754705596209281500641186780926818735696272120069141846013141296164362620190481005274940950628334835738294543160657193151507008732887770370934939018620725385371599177245939338189426958997415058680007194265262952568021594974786167665897993565152563003332474229709959584770569730927809925287244387667021815958033733991503839259763241004807975478867419000411808216909873245310236940481046670542485016414736684126018483722345480238937080784269564855962748274009100423299793829024073409087443949667202960043598975313966969521895131607600881737130183929503506226658224160763503050178271829721169816292591021496437311688994865312110831017921628363783340965864460062055124113251555694913940420569759972259796441913651762250868006657308137046040651038834818894253609126251833630350055453903455539501372074543157259561161519462977660832017835654468211884294666200159938073233050764778229012127713140125231931046784413121285456925122631101666064787226096892254778983947658816807277998136199074693906892835813667293277887219268404441227151413920154102014314818956533876573344386423794450742360282721370522954217000553414964577332220861620418435080540144344018410920962468514371012044165127193149169226684560038093469390249848178157919668554343873175194407224702162863871332434796931359995164691492235784569343943893015156738202174839399187378929088831650404033672537601519142283736262303383285045229288705879913252500471386774303978527396085203556757572601922405759782359115377972963806511591053802575660812288915504263888732742369732988088020780520763080649610387894911960532660976291128701243534716343259283255201122353421285119412726970101342122957652304420029915667005641563911988747806722967212072914689838115791922862017883904387989032249438753325743235385226568601571109453439841466982465519570819905127433489152451280408761879211328499012302184755503732903615017879082700178373036389145342932479434176366443547087834053728999677960854252660183929539131829858145147882567209768098161426621534621365469929377283252508925914890036766878392903441561761312721635789404276558755175703722572183200102395965664881276490543513135581689787037014512606072819148743745424832661650967635909741203679151021643665135294284540234971563478897452220306226183218191482365180411157856846495880190363666580717257628666031415069947587557908761652883745205023834831112956300420246072537705660669646948882339872070714417789285035006375520608075377911891788733429344277742627577497954060921574996897834840375171731971160239347460946597481750939786742365341513068151444371474383380592096464747200061613932696809914416461666587050641371356736502883478940347031676421323686829931264093284715193665451193022053490853597396099576556156997833193814885269103947469674357352311304803062100018217510013077530872285507608954322959229602656697492475961786995163075431415469213150576180874680554959724706303734279621557722404559971162724194077387695004205253101975749340012540665815111849077874100959758359435391628092882230732674323941915636713887647969784241476048273157574931551283696439854919859597648845896545316480813278798597498188143282095834355193279748350978620938326209959066373263959904535317044831085315917015531197397278124447829394124638738256904040373294360405616356696826141467715135923172342523876238126343437746942789637708858499653228196226487202603967539249499866469952290388734416775995922621935519072586810409231670954346272985790904581158083569644927423343852546646023003551701291352436055037350332777042954865290213788514382796712648116839027500297109844371742504900662244936421002221735746526968088155506200105543149574182321888506576783060872773319502463613454612079714199461567261856161221777738286090061263089966189398838295067710898329597349946910879782406274144262170920232094522595710799343638784572527023606173036974816614063601918382900633267280190031100317231407247654889527353645745445078340879203417322247498970964556273346305516611308741660442243759760710544861867672604743304128327213402299887174846733306217037696180808283410926351991424529971668497339053706748018097603659514891416689392864179170627276227879516802939587903836062404341737359336153362407065349109599770495264290922850486093489675986265836480081288538546375072368849609213374168890754609716819877418538429721310178007586161556505121035270762236865860510477305973211438729053666643578283756301090218015191688658371638918309756676856064966208824774398480997896195027734338983850243782976939386208746102678019067867101625621568471305057213896752230162412108193307326038476682932090584488762774280087795496991129726378589772530262957868073850526574538366933678697816601159107913562507535613304824792712719450374257939480076596587261018988696583961409115430614165184770532840132851272359002782992377676737689918479684695669767625720033074696480130066639688766139431425731397187332747070672105408456383776193509579317728519912592774080984301299566023962709184918527053524411870163584147509942787634951748298206166517886293892370028008014486776429380817117478429425065452587728983635195759944974528070579615580311423220321853762074609776859142181143072227257493021797501709851714426561720135187979562138196002214626629657573904093548650684231145377683789111171350749315965981640233038162613901416566794051334058742715398502392746046515083024880763618282132374342457364306721952654147958117937855321468983449029032704281007333114157159547456051621765561121822941618571196090101440723991427412883707853200883385734671790856496517747746484240950613574297279179358114406876508043050053811024507515840165053817994859415465604043461381072639031431654200257991549161150451042278312511924361111233794435272638573177984939006253557820078620664093667564241056143078283703354218313253203452151887271851851165769061424009449558986739617179424165495354452401111859671345907823657277323407410370393087240343929435778283285442470030745311345651764874917215194837698380830422116393711093603303792854532075831057557173961822756272746507367195748331818709301263948503250302504069540318306524012510759843226038962846842668945837130619776220669035704593610907901926022172019764529691447265942975906349185678543004597922016336454159800501533238137129327007920319762800665455341697065670484640711650108897119904561778066199180742020443147809583556184269877894098530577252959232966608701741541256651167893601321649373963678017193510982448090889413851132332823151282003085505255882860840921459404495747320248081023427372208448033370305852774708895877869766580489369910564186704956834085354200795091550124559724233522800578108443546061361921982573717961042109092871580334604936264985833458018175606237427981683142080392810413630430986965695003430331005720074531181367953187506663623470277443614349424308787303782870390292377838692084949859197179141272858114326776309833538976829087083944391747727885072057006578350912328641898774125412690286579091275653791545691264524261956598539552221034502041803427000819299082354422220383460458077488924244418976818516612488692124986375138283978767246513229199893630021269052188591849655178965775452724699960084340281004326970860911612983687860919124680996085654668914252593920604531245560320063623612533024707996261568298817003033376941773825729603580038394154132060167183783791046251393260421586952583102515960197481019039022524049462441845504053064890328089973494323930840643925829571637756123797211654067126291331238357196423200723230891831076144409679253567959270552707546085132588057531376653950537851590694250061041703280825680003459735877169607145356630903471530529663409979654751791952588343838850792356971642366611375634548827971856683352288203534897789162409627716061205299528337789784131511169392357809353498660042652726637413484069647634504407123679422492387468004338455866425611636683247790690375488187550887128061388150258894605947217049957181989526565360328213467296690505747558049244851984058851223337449811035432098539440564639550297753934607467416848985736925684821088012121426141678656192223999306885992401942344293975225851454849704618054852375824369326136315906079760496151890718252357488759713176126065284221762482239435747051835181430367253086832093311982266637235332164853244107971886496267633016826029763551395387371541131228458573215468968665574212391518665481908872262658938394597210147149685644354351106205007973459949854915445283759921824329285897134006931656923278480724545054729651143250070395397376842056436082733122554764618520217295444574084672205435412503801706165861041851139367807918050829703184713749390197803480543082955345327584873724941457708507002572983675967595327913926204252911089739771940008835300916048173559149314884169234016031668204725773158391178250227413045094249642487994106460344053066590794891190315119979481393304599708046972445940580231301753456866081135674619603347238050663184105347454573182619991422658121157140755004720830637007899515100009182930634611072698602307649529116168544221358347984294488086730927062517202527260042467897785007663006193144419502827082562949693881234571133031546293325803737136900274614581934654955907495330088266701895374374337985728797347423731555141496581409467001340632731672773561740736286198228456362109196751050003131416055547037937621402973261372115431741329252971749575185244490470737468223073671283325413333931285989212346154529532681294180752486952566883873935589309355440484243683925817735772281750948604411514252763582869836990649091925575943790128485131474208853001031133580302515860245708781977566192339023863875138286465840650445822098014396126650181687853489535295913221467629222325650337468419573677557970570709305190695372890530086417713650193945002896805057149281488855309417644512386560889966959970187953606904140854298811945196372640579399464488373902761554534533686757049934423505796969730784770079611278725690974999253823693603434042636785910347081121226115085965939975023428599124273219534119802402047731101393138334907414417111569221119582960012539348266216757701777542675050934628256667328919374749282106768312047692480762267975486446876324087515882941940650060763938478435054926173600223801669136655187725879368316179097872091390349740410926542906831647128536319253040839405189988776979259423979454952072241606652366999348598420320233643652440540924566974494704113770598419082699541566542945905779107790688280782309887534164401564891942887307198005961086552127031838947277082270620282412093500106958800856479650754857136641443211356132798365767364209071822905559286683873616780457122171181132060754036011219358062936388276347165184734516826439272691534320316689399854416762121625409571428259629079989190378062643436173745822807937757002555453387355561444300002640654816631806671607100348846837064975368139329217693331583579323542805903430862943271118909503997239243165870747273104091268547517281718913053180008448381564463064733362244587959006101296066582299969465057635013447075466779549610520335385519715919748067481991973846426781648610835171018864073642138632519459364207076806976483123729621789868291336298279858371682344793414451696651904702603847198307546690889872998744847627071442540366470631955877829116606359723097922398816001557013638367100553395759369113793583101341063479453425134681690052349952922076699792759060511879419464186986585799654250380499667128048348480818582709184858294972418168801444358521103629380022243161743470344649672937766772250043549160329159302738828622989028688675505896088156373224568762679388247679301953770520792044852148111760240454046774198603380434104438407549424682383907242241228428328626029974693000674120342402359986926662859605900843668018364832441400833502594039486799206440144823316535489347395951591349410368428493817373739285510771637174258586285231235827613256333525150341942812861931980872422940685999264987705266159498937425497285322349234281136416895281465089759242664051564493943891450375956011959048085702837561366582427486623570767681138510925365798307538918214211935776029175857758634857004596122896042815568272954868627661065851261102296920119488720115238488047268969233019022721813063494149935339688265274189875473485346978193001857412670280777361472395862816010370092378038645346392606606455156913989640669696125734063740407642825481905263129734904433987755905449130070907949487263798855584454568251099882585864094570553294758629891093312929604777341135781440371851890465157634130309425547808331236552889473225058712383776362934759404346787702973746830254659115839478285907425358990048856082995023592387783870583509217876976050673459447711375489976732567756976629417830109082033603560765789696358391262038435618205571537098738434309010857882181575542600477975770272211217931105389921311781461562336678942242929264205691879460224382262303696702401893159155818135830727872963883444670652107749027768804869092951956118423217609193180758283821429392469633305165564151374940040400899583619619200036796664466575484714814306481274396670060020591999312111354135394469853772141565451360760399544805071306005851650191692477742488890547550785063460273593562758322083348138672629712709823545423754029509638158148956764815342272089183089959924208795421210194484840180087644946887518652505964623076412571878364481275096439292896678042172106033385361697783467945643277458702573454066350930807367029619834303359927028929178371957503048710531872110310915130391403723285938546590512169731133460470764451939911384528098718677283376581941594418042145233107846485663590376793956478740070577595289040883583940520691931235082023297989090510046987631144010559089933181749982284377338978294211290534261764721631179613569008562911178846464579075739382005104673201146318250579229959017832745152283353395861330998149939497812827955899333038123672993877192534012929348402101772317645911873227670992981377892389016585947599198213568607185654554146467297699670005291747651049656999248094216073969107862941857006293003180575022042857465527129041790038071549179090365472541031248684380184019668736883632566074693408091775552040435823013761352720360340327894353861744201361417017519566601548535126243699871546795238935181375161909366379510730768485091174791912822052292192375117027713663743094641542125689952387693911464690130866185184648510296422785096574514178455712302619781293207503298953859937809564906923421167985711337313598825522142958889909894492126725895908152914765755035347359013244738664291599110541421702461036766957504136663960206423775916126305990040781706193880684777924863077320066521643817628686598368012252142341905633530578349749272404160668647150490607076805194468076048885790309198633876476275313972030811612219953422191976395901404314535554870238605636522381679903288915336271923927816979334424485086122939771589542035134795910493795716293552588391527319507045589372592272249749384417185048518754673284102958802592721957703319854806109456879133094566857655418515785357620462821639136731647441009640540178659294346958236893102249065063813647132993240451832075158085538600213977797199555774308000651105924584227644305728197097619570780469777773657468119132337527206482508254918312516768659306946199536666056032700521862858579374397597249836168460581638320264106189418182137165729798351404597684531869022841588472271602442160179359853154267672952726441772721332404745394277573845334061916131686718002442367406371073514971122724197257330858959078684561259241056716682351274052216101247665892107840207739927496865346522904575256047670122283620469839815589450363612728251790657002171176114897801339517630572114589736301963359090149511023806500406458690649684354134480595060402238292384352198840291446415448756482997034744727496982880087183776273001291609783678285289866451832914640205657497013643818196781767948927068677850147836729545885988172982450829674804968203792271337040162119146512537579915246904209506985646574183098727809352534854962049076584023580095404683880581848787537593727194040975888198368345987940459301668157329592103799747349749729153902845580203859242415098371674889790192755946043639324110745401909096116934414577045667760399835880036188698826269425495579996280928767967623517829342798077710265486040870970203609209148996901503132922185688530337123289236840140065171372972566585550920908378886613807758492051692803385665250760159430294485047084350719697425779407614714436971125479543597390526201558750831817780383964857505358971773126856840977534136103612411526190271766995006332633515765880566822883519232970635528698763365310599868896756192457846743886504241078190338370892562969131553998893338400536694621012147352781943432660172465805602881972586309550090447968899628101101924463920659494709228490529698129988943816413320000907723296321574124144276410165055972763816581296971532269821950560476613168986683343337171185302966057893160009823066387212515660010720572396003284244608871819751729904239025511716480608406158368200092976464001142588509626661839586535516616158676461296886877744453690281163651481683447928278736406093768049800872705199546732945011671424189341623052924919684991364717952888086161267849032825850249726650754117204694230988693903720548694777469748909266722622877868133842927005441216814085674427874318394488322456960771053454235253332521443215206465930718565479402210930272425871613435580325806911047259041282745072670923416613596055588051309110905413334348107428019283888951243977034358187908152966443427479005136845314751970033454499974709032066419827756822651752773732879417297305455064966725981497123329325177515482480565065474769565912746619070193971480117119601899597335159809507152144527176520448420641820175391194131558370112394967443408120917767345311706799383345261691260286124518816969813828074932633256846065291717152150493617387219378357938691167123287160316551337903876930314342384158859043079760271732699757117486410771565912820643311433225624232557018259839354534497129832095237282145125296993875885013351044068630312618114402034564456373440604672493580975709038964370497643290785471187515141912380825662278870073080189987827260926349586471749330917098211459463995340708568378149638382119919885872926932211233114223086421111174995758918913066223248638532659497462553905500394341282609644782457800326346531131380172769611089036249794179124112921150787602318121098908662195626408071567527424294252172456251918092260735876775005954620173110053752084785072162488915754822457411741362773856799616212182971752942727422811792129068643394210894259334554793294408440598295057158840683324668712183503308162206264308530493623028600070297697510734326706809788339131529374960288648538824379494643404217971990963882511075295238362801833758549970737155051688002880043511255837469166387106174825109040089595884638731674168139363857310381128393948473004118597291361226698117669349411746752926001992294034980417636765809004063496739230502269570191456162859139999880214494078941596604901339072822515688946014062226771995540137117679808616106055646658516447496609005131805664798668559579661042921860592367890198947799033705456458410441481567016704863094970782333471374561630990670836144216487945527257453961844694070053452203304956345250405417369723832333958318466250110939952488072345054483268705879067967888435029789021316157080228317016096249873985034926345506163160804170300516817489321472819757677135936163680267603106988568946745525998003168880817700055622785246430755801406598290545289781853342559869063606018183787395466962578131472650826091377550459453006836079664012764625764571567091443356199846742362528903938249877096383489843112467655414747228893644974913929260067776356243617297024441249996682481273093005159411134562057517104882000602964220077128080488358391728377579125282598546265129407222991477450351661325662134171225129939299590595330628712444762508399929438641018045104444790581977922526822583702552983957961362404647576213285465219741871952391915982305902265410407497172392738880812428664095555043783320861494707717552636250805810402595574559953738102181078253357722489965018646951034566424260690780610476133634820062798470217552103234077918629992645757626930334834110384947402709392605847435404880856862928730750075196829688043241121170296873656453215374456615872499590797362723609229670255021566404179463267014974763027867003983996739688901450501182693096632505842003268653815818011033407590577612910850365441511682079438033377606543583677359427700017993925918775454986905956409420446281387886610195972142509198419275648438292703666374715037460703315649527722067341682469806992933787847530697673330764229439669346878450932824496854019285791412469941820363008838733611963241860158514083708668230750778737970897320911960642963004270236574512162245330675985173408323242719760885415123022715471863587327527973254120414808955725809377316220344503248241834943452878440734289779696784181822884863015184854675407653902058217605310723131578357857231479802587844625897167263405795761916099520136131570731547956259567447389115582359364036444693766527642022086104590268072930680067864876981412343539952156438419531184697504402838191234154528094467038205580095156580202382809149689452581870375540447158883083980699894976244959972064054411849339538949860549083545011329852279442380918836449489992333422134121720253633429960441356945526697520976094886627270988407464627555628373562830544404522707150344534509278270099585978195476135644239062701627675117159250041576245615716252544043198671404777263449902285788858996504012855910833729418125805523973677632488814634226785668989327813988300529753739513974290043630833459069384116257835838602440887731065889766675420739698540137419911830850453837327080117536097600383482645157550670373399479141314865209944983593382108883646863829388705700734288785639515482803652399429912776756213497790501760651904564328827619480908887447769149358902652538809703277873152664658552498385904865736041993783887336910519765140344846397117427109836175897948996073578466154849819850505744474859346473395640589350479677436785549428963219099257220959673457252710003795150096215812627769267996501142462041027761549523283750626372421522693982200133460242294310259804075981056239567496042091519311294875003250015971116710242406036091702637773757414666033251149404564602352557430888449916582010344501106973191833105189040505328957945820573124107919916482738376546670168339846854864175860748807752692074939620668644279886565677085363575628962669762231494225176903194591747069245622397370576174039208701996853627140465836807142545423274784743812573128365605749450088425543570237530201390265389038195808459953684650594552132541300257598153479896937717518139937325035283231706368733758395116633540795071731902665819796397748876455643280169373180081735921223581965378731439177998491743992022325554957753959626413287216772666831495860724751177865682768096840841586881310327980071234771177055378811330571982620687396670077996482956121572828715448747951484174668624102681987323737076308204245146885264073142169566054822854468458080904211809627640756659857534719025593576048453091059254602230086288894963232707433399365524854792977107698329105221510330579194115813070227875839834135171164636926684313253862243085331762706431308009351617108395501570967176490302246373787396112466512261463090903503446380146247873287855394809035892819266106700650566349641366857596298794214630190205221102610031335456989911314701667765757401794849465994896716785019329969957263490382188353138452864019202941119494694490014233912989268166100275903653738636700238101604130848304097536010895954427884845135594915225525839720332655923765065473573417096815421036273301809118429480872827272841771034262782162801279979422932875066919982692095138440363400392099283419036044143058908602241096198844670926852367685810656914158552031452974403821188923355386053133429742396155003415026290529234831190626036727329173828291444082965213248470330457558016185216984504382894393162100545806659501796017948495207570874584183844096542107627927813106557612432460313418964322923921363815601338356531580085849741257666829017011089090300233180757358608786946131305779530696382277534214229723221951126789789726890821037399315440412056470045926413304379831779868620367091967705845244551797834173082136318631372195022975979291118036350833565501343746902399801203958015690862974369677408030790155022043230457785403159000427652279411013692251203207357090845906541567460914346089218290969702913997370904562510093292720172585760565411564602688571695054532023816385474074099101648002136284762532807722341553508145313308415627821433297792031590552390667947530302748189323811924392746239257519017639706087783285345440958792971494419890267849461428167375961740943006574744434838883949417107282662023058025868914427365330769520051241777938518420487930637842227797379197347913163758808960633668712653318917378691658894942732303879284089349644727759962939708757120896900902153572425536352809478940450089239963503527156165491018374841042290491170602114617435527655738295358493015440744959571539809752984489017365301703718096585118002586128623069944535082028640821514867658875334819293840363017731016710276756652315228573266571627220569819408653489170480610679032872260192806917392344861107921555786514893393603277321429670408364289120098753640564390669972256519205719225130230229764769464232559255730812201031845131702454730162409637408568837980954460874870961382628214574705789426151250710534791811625135632700497629223360187285616620750347419988406196518473698364394003787775295011039107671681699602268342128934551237155580805103298410454032205770433295498175999017625662750987993720010968482628429696511624950977111617526975479686324903734595396291694345823196585682659482041060552442954142632843976967934606526353056686392781291110587336094792914665150957378476339075948416324486838041482815224073669604061710754347439071695593899325434787137438958946440667413545963776647709595050110391843036199874111013139872962088166665456672223623920896946400342802799954932042321003250107318491805053463161892862091192871888425737941843112045703128768890697507692071608239844217809344748697008659556632451671275007511717229506561474330204273810467208897316244547878036783856798664546058202846856831548851405662349162967576181730144418962561815063801916303687929016620983868432696795836250683458306167191345016980834768846216588095912194491253631175962678478651948136341668466252179911627698119139774659582024701120352854461100489252264226780972032172470162047455494382750823488688897405647884101168641917376240777620168499334332603603594021311679102348810498063139529888440209640085443579830796053552065562319578800568604057848605748606740239345543571504038787226962181925454809541698295047832778363849812597036576275309531540175561742090746931834892451600590541807225304936586338443860051047071130967697467282381506906100201323580045294927910681947299887348841727507741401374622604456421416202930744424191311648114602379862515108097426219556621746841827544763120453329128587641912333029888741815519581035953806109680977829750555267838990888562932593702974240180660246934135916951777025035605810292222515864524953154589760254288899414559706313555890157836708284653476558484222642232496779449053575683531538999528734608826873428347455050417225219051534486095817041437713132801592907098423369960669202207602707960481771565037655368952617485770882677369174618012783598989622976287547489627733275569257197885475551261201614732991682442957597997674773979683402846490785901432111481902235010399552465086484597303342637902455227997233038910519013593688730566034672188899282144062800196194168873574118542644147128796158805401405138362059489008845324589837642801947830891893785602320962335659767397491327404086597726481179949372753137263223864790581614169306974947138672551861682399119969300721564518957289815182328346341641517652432470760170469193248116826857779629360042612741531746430634762343290844964008196406902147762524803024151964259433582539680187847804982356804217245223486020645729358794841588986629412140250029522213912693468478193242019839639942229448149009958866149851654237484594978587856373307233509742231780021327723700772702498054015061892061846639489762702978503796635516366851888745219857545140013618016378857017946687559927493249682629866736473309167776554306907107260928111543276325000429922201415039474701018284081323979119967935986931303016759790121624987921643218879706907471000827298765891778403589977589933864731688484887559355159095909197121538819381093043791701496142983790806098275690744448129605214301490599961939057376592697539016566800035989399698732377267980020319973565800998474823108073940259820976050602011829584530233423068188867012882447043917573768630795655672846588259893784330365888545482525342114887392949575606036229313715159222161328206689369782763637892913296736932183103243444881277084127345820624422248359133294714839858472007835559684976953491605600552968220607734708075878117344798140172717665733758842210932757179098957760687226447645142270018744218419936930164028720076614830504961206132156783225998060875912882162113982585660744743359771771995936434749587229629248372556382050463994457082936719999214250009989352468745785058253505065710341733179938652442889119853214053091201457676100208250477593561101416904066235704562191384993934193867392252790031773883592291273493595958359634329877105394126780613786429026521610624972146376908490486952654032827556099822304678733611018943187816892955755881716514131497661021124019399454022982434155236794146054709850710074861352139829798221053718771816081913365872166231972178680826255117408141785014483042954083268963875918703783293993895424916344630140834931276419553073345907446858414018343965630670052360820410800475048195382954753458556920897571788890455665742960548377462681034434542174864765545252199005504253669515360466388229165888816473500284424233005039925567974796193058553911406142995737865550430760592591518266460069536626731242786260361678566673683144816765343987804066047024261149508914033074789792700360037437681173353666583395278823559754447642874554614741899919860902325357331040974567534131916249655680516673955141299662348563848403802624493015379154759460770232957745725795298318707067234901840642093193464026310164764825293087685562699580806153584522569167490966103514436318165156319936519349451525487334725895677632158675004683376697619627031554109583430651035517046920913168818744550772350168095103492450174782331237008969465151690927218822042707754333089789893152199962796239895109357980700583021936729807023187165703670721204891825184458152978796208777655769669548819575307611711333001997503478820946400549704069463272543226847191701595026888301430618266246565961361213960818550930289978815067008610878200810616196484768957827778464044793621093153032054928559989440313324163638379765598060163531337836870699168703580751339981299036386802387954786859615048529475169823698947737985612998130789416440113937996374562799160108312244091295663828231678088490768446473916333960267963797270711464865202431155883173226139077028830482945320703806697772666156884865518116076289367706452741712667840434281354610545144434630903865926298058725316408666210957736380247229664167244345549651949471273165374951830672298385693318760948177163005758260204367833983421610294724507257322745217245140161329799020788139294788101702423747118568090218509301403764033160688252071241060331034108452437911245748541072569368762996026320397263128900207938586170118543267977762392065206524524703221580297282916061886559066163391996681471320079051606957581171264355043012795598248897092643793473840643808121520353152569755770308926855667120646219031290583922467099210283328699670071309362582949247280596203237634026736389943498546874483708328137747023978874210842681744335681992034085532677278303119932554294015210988326168786221282380435616347123734114294762876876260456655292321895725421450568651284586459439015639137731119748405898774842530381660546841289621584448185892538564862369616267356722834666577029399814965492310600356546802429937472084007561224538235769699678180305082348505230661857756404372669363891422738422175298711021083635294361142125526692696599418746311055595629540572234655250289357775201305575538002110808045186540249978777871844325583936349976186277944718616764030792694332121271618152049931293052487859748126747979659080930060881897043327435588494253495943592879580657853526632650700254318130551944580213870030598828577812026329025708916012796971959933164286530940466083971296985397927279394638993540519843857681464164570573348383745636445358519896992885571397441175968110173588836966262068005064521597123044277153736366771650814608451155597402924313883168466324361438842696553610023735815730238606355220687393527510682831904321048418715477874906280078258571354840644163861066883643296438339919226646501403994949227220560959791194814676705817678969154659389307369842127828346169809065342309815478096423684823456095328788775661049493440935544736038883718521774466805262294866399821397216543943831381244241870911172648077029230200906342709441477433451885941380378337462494180592257769504156341307224249172382494695350306229733561162299349527120439634106261984268941353321250361950519500605315082568058474120324735400283301558512783887397103197555451977097838273700219096268054238347647014597285801178412237444581299853845490319793633511208510052483856708698639487219656972180797498532670446528009344185590660438889783185511704027295909538412000193919003633450406030996460382631866959461194960678470510376251734581623967705835572434119160387267254539521964726596334382317526117664843683651799657429051237871617007515777360330819757057875426635446568054233807614087080777471189402697528191854226864749331840154450652015138008974327871218358108135958426678674385797380008766204460656805136023135986922140195490676130544010753389549874208226291884079993531768473070930468563869861676790666654626633499526976330410257461347441407942132696012431114121439369177056281263037410178792727600066556383061108012026885500246668909960200868284031591074934742872869005855439992091833302270358189155941932628963647268326553985437819380068304119410686742304961328412498477488498955639851680755853848558272409248374808182155277003333561085616149676094337584974906001020384540964574291662421760054595496431632429575195745727887512650518197881017021645671252504562141140473304432125209837083014683241905288456581164999293602847704478651431139426887095927164126632861432642660998417749198867318211661459727522011599634706484049181638048687370419350349375387277946088151299434624392792679702088186735629544051914150626081214965622523533482698675336703501867250103381512416612794570830779968920874292946864464668984000031942312540509826172256673996240262111897095402026745120890139202389692681635963007032365473080115201425588587210221501244556763439090959876036638892287160358865230889100507816774136182679564480735605704628094988232539818585844360130879712458615725620663224675503669789597121943257170693802664671628445656162047591992911876388794675736350559891998625047105504284595863002813564862009276364386404051330561732683178086955704876772883970368074530112572706291715732806581493755270945014145303426428802524223229381845806751251507842184581935340498372718225645117128904786452493152155243579035235934207657396654528037472779173458511884350008374593629126248503354682108271090058196614130353658790941894571855223044231832102713904879648970364907979058761453850870175328373209667168935770290535033562974385812643597444285528791477417206190199427698217842149552349049183387597178773495353858190991823106311375386722183910722149237950572691561022740622837490548336020696811856340156334646672993603443313255567503409861176431893706884734361782349366187387403309669260098541884167241634381657225055932134407290539874038363026991016550374038540005899406606228028421691606547214892595233527540050465560990679256128945348711673199598462740353276279231069873594035841803749287286188457827448699001117404185180867816450990003088951865389708115611128766499042060245019839306370163713330959169023680324367745223005889440477151028625816278152392094563268187507915575114545494497014084903833881760086081636898283818620758501465254838953239069585259256364055350686810159178748078642954079376793737423803243226841019009338130216766318276131658948788058972948451811101801700986989708688513513336908871178699870348283596314225467806792208930375306882214178817022004450853545927439910324241714868101407170768020573223930835035584783267017678387091006893260302392181197056801574546720452365629454067708009135150695753998002283192658721833131828149317355976496586171374126119807420410724572331755139858395633137830598762437513697822709345199267261050530717462725421873381896190438469093857573314300967752046897723709193615108817506219555741883514976926791612241033028517012940707938786790956596663960855192529368236155284575951968335815845061193990514500231618759068826303043500768741054841701702751762808143084456896628486940062338512601637103943536459956527035681543990394480380996086932659556135667928639964554406023191135134581660876394769106511167411973620669450291676654987783729292225250863449551158860124305506662815455936586452054803826342273437366028540650752523550883448735254111289398109754752827262345708507319994706818953345336808422739706526316445837859329695660109379144825963162024294495498979831716710904641164562438103433724764691366443587943065724588906581046868436519887188963574050840506294681524033403965891248950601254622433392615325953340618328748088450214643174908936294155124982664222218629597089668556398999518455648375483872439671432633942952768913258338836547246368676667700566066009629996307974106683983412173556068066319543131583359497544900697871616144937181157718912896694170900699055796830292828470291033050875735300080477465938387861401508033414258824728750224047052207504429484085894878734347912865499849515509696344221591022489790207746227073085025998421224432828578149054914957630588523744873583897734028704382738303564099164475727616293340263161229233321828661539050185671761623441897954363460039912192229113465545544831238696012255679230301499270437194205805701250091429871319496874369095187680319123901146002348774538947654395460420120989830164243912487214778187931891488811883171157674245968086737004372643884905122739638363356908217571207938141935051167004198456387622099813397673304782040444613911009259713317575767092777556639635116425064712339653023843737051291954924499656025604691243252941232788679129556744710697793621245292960269500493914413644705615658580184626661150613791681485312903882200017581019828342310969607593919290920654498065512338447727084536547864546543000653505615060708577826475963601503999119003493214942154343778349549528542034517113856598645901839387074186905719674433188430276767436111852227860490002251907690329993375724125340546100437108696567781332975743430099055903110467826812512752004617380869698339446967642616103206443087895150455522612346807900287444942692472261803542197127305532198554337783862995713699183365060073764357403108661312894093250626381573326089342875542606071282181333185900710187705815463616347189816667793789614922076141143734062088379833862500324340899088100285090193938793700782541806206487092286814211933731123656105616044937689198089277994832897373911999271930841885619394287307281152249846744607237781928276572875158248005680307077898164094213567883140367661631035598715231234579118766447446383182454449453841290153394480742257156625030193287364101050160595441666604426338629127125728586460168408848801399456392953179036619906031680803051691028610701910189878046116257532374501455318283960081494481284338370817775216145145532550249084579434325368940922396747051578420318767786253702827018668132097618447003780738680436648642430329968467452464754961854997463548733424341317173529644422205048515803667142976161134858605545443817542755569658436916192662709194779305397913800124104973315037791745367080262509532038239224469856183774725606926853827824861765237644145617860108507696382688621425229519884156046513290848985281451972442453100622002916065511557552172578256832310916821735112469038342269104025033374250429923582210950852518704617143678873202870871379413149497792317684421737503151205133752972479821476166850139203137636600130211784701840351524929898896689821143905477147317788235790355939578052858441872247164941966776235567736276184918261826584008573974662237012080364240758132594176103001729034713178276922276470535926868297552573085959955688444695775624815406789108220045690549997213336523346200646449084747036966032442656247693216255451816758237922677974246952708711580079960862771694027266210021470922489719509731576170229045121197044538854597078819901862525177592185655936025883779755319132109419965247670016582335091522467468519407328549221382964193077651542723804689260823683909477884016440978894136939599237693982809515266725369503953380078092423583905218945636375898833994975635741853303223028192774541791839639136610971517191446861105518134370863875402803332131072407258007614389301062532095283121398595527336342530530967866850285859104979829673301898663336211367623804027433666504485113513203947656830950309553566736103814130543357307931008262290986741089016326458496163157335777580354070202824838752198460330279311439416554611521812802565249858710670240412311850528501251959173859389760578950219303477441727119826676426791845625623845199285577754067888847648858818909854876581121069864198883615310629569971975512961982126263931980226947749318651912072751064173409974060122462054253509519087379348796555472678301592024110329137455677908705370763280288198473408758233015109359625808873980985849749600512909949150854885683716221274161690976089976160450424306501497387708226407467977457046864962703982618283328780688941096266883452311450709157974809076762260333418153314557120276344062593137589329244395283363642384859515840770731065290929982797156304996654421777549932793708730530156818315491050814657606973048761678096633420422906825578871889521089771183734961221256812126043761911816324095191071172163209497987127187042800082301777956603706593022376702379274920850203265542924667709660577898777842135002757411602457791611756322561394756795665249553478907252007290757123821089247808206177891028516297144246417471795425199322566909668192837705513172364753671283298168492516504901783148680209559716388781293968233375591229553991848485354596381556238802938501462056559883618074028007534175662748873548214337887238354786328845856556983148595035802881892292226199896734673150438829267738530643995613142374509795639273999630703974728997042930015509962116697772855788238788849011747133534401215904260481949113821364451189076969619302573537343078597015324719558905120072045713085278527153657293367159719933134467965751937482229446439470583624132839789786317027016717709828191609652599314526027180307001726812045918112706733392489764395808409966653678505222980772564573937447048097600709201378865288055012734511722496829327944267322834392570999114052021889248740320828950699139804190486288176907956042842693476889169318104472005750009453798515475855067963375518043261881610680199304084779927013516972085198905932261084557234758989655432296028193760045203731184734450231448904309309688850342834495595092925542194982129962116237862882014070513674064699921925197731207492856920872135191618503666984569231238260668912038277595094820039229119987162035902284937472355199349960125201116854544853823930759424806678182024844708281578665782667525259893322991607643928807682320708263935320809719137658272020787083866628195812717587449118519818585326165555757192531185170560569748977693364378233010709226345225548931620399465096643587674691247160516108699980119063234287666124143156126712481402117206103634891200551140736407102277272663761188209368531304107031466268389049030855557162156011897095968319351769057455433875166699069812888787990394141335806304137635514890852573217360232188916630052698810198051144385033842638675364134988877227255733738723037830002451272208246613528518479308588304476931701781837344544465435598573238944329017167146694793165654294045528987534136207041596848948741634466997366291729495314339017449624025565153096836619664837225845874851435236652484788358101321404252485441571813760728321291308137297078944063585387602264710413087814814616335225421726340606413950177296902120641384142207722218321223963734378867710457317420961952067117563905622029783532911695157012908470980104255198910580546291956673628788509388387988746506219613417388690737749148725233541033882436276861695361611168430919306865553706487055820638428336248712842984153332321563607941925049114034686794764870504341034337228419348980100290120964854229497744461795528134250905297293754408884146157411698521546968954448162837527146490010082194264765364379872373469756699230393771541049991425629723397479039616397839810969058490248012887016536191104108271451252035393767038924312922347454403131328169957026961335274715076246235601942143473475469999369443093397121972885164859185454762046373406912520418670647043890687286277950531013396745365749101608883983652925896410332715881146704756960367530409810305662986631459170525086243167237735847001015686818286403126152318068672900585736215446441072575259506059890116446020023928080744262453784620862604246142357971372733715860976369886572992563971722623718304812741760876055618017441952978156390802282158007263693832686735147745032293478377952814044179338061003605990367545705598631895591281535700064325804984676118294220475847200736978995533165511934368918562396805738283739421700904196787425413184741882893684351968033783255409149207815361105833708804127734345640661962216197698722660137877317705437094901528009738321286509585531950457364411458830677812878456377085047366411434567808462778961148565635828364248198845036541566088224170274024360118869233146012624852735182758264709336625414908827877082473032223638191159115301515837922547561821891171870222802934061903682872794840570427146747891224087036903933800542547387652513826602403497669946995615504350373317845747533182585596742479630525062843315535900314728103285867849753972431156425981196193179257968649932539774568877524040599439710141720574461372540314081402787614044582619196276943695756182708644267591204813677187435366612671637028682211933334947715128402145705950565081650437972126483658950996100758582114379837359860142706926107504357346480786030634582140276165586522740369875880404799743165841074548960271796331954531325905209710869162251602495142098053295732745193758287508319205632065775184084499237435137474657391630346429737424439488238150284296200321378744391598251575617764995480922017446229188370010835986731963190488871242344525115959251062074980249633266817426181493205066058370418176247212642040699259384133551244595204589807574304598675730189780018563306755793490790908156932775077390332851184877246181579067606950713919449098172250576687425349624388321159973550304037862650198796977618359701630167877047288530772335583861703136673246849341242913858726603033576663354051275798678702348700084298595046996832465370097363545003054685571275902722787450620057659537339562922570993770807524089622688873019488708560096007018543172105876247305881462945101863497163597006044601660417262636830428005819243909119388404619151450607435469396965536798948085361553650874189071533178621867026786589040621325537942114811911217377885129799624334919453349454452034368011311807371320680801080884782351174208850832668639275785804604765502120605797971573206504008401091307707153286450056650897635368238427595897988644099072707323717198840571250165646944350866492419415332701384285225841830157666963085207707142021748391455670391543662786681787672120358407078586647152280674063274411593199094716634637227729763967106453979875164100888808482182365071214496426960062746803399734466699619076923636822986538292285417458599271399740821178349145220574116837442649479766680238993236498995761518224600241501045783746358704374968809073510686340396713538206523493552503829897698869982296942659236624557030537041551895633522713785464587327364907427106324186653302661807349810505347406092480717992095497883591054309966189213786005615693591143145204316477271174546148726733083682987671196822316057301942216558309052065003874096327753643423980053061893009782717954065349832889808742280698343230678929583408528505694400717161308120176993526134009665032810830504131019119168101666273070498826566602770037227212549163259972228667525176806982461850262384098647088788324936557560828316546814173919720746859053197426693906831236964477845215532250019105727888563734746456058163646275868603659044028042740733338625346933701616927740032852916729773300942324231850923616580709903430489659371196684350239808432004865188052498590550151423490474146423798152098674081776620447068815566928943498998285149385086398366266869290530040955163029093261861564166516272902728278517700736580177821822785406283367249857567707294845906043332526393446109169198616456317478649895341117223135179677957506723708184162546789987741973352530397713361727784228142486229930553233871653397320410912809025214368486038309577484454384225754843284874251197845409569936772546356115526044716848767099846333813496024195666075238596084408022161151893078081432993574883877036041149480096280409076523275866996543814003914845855483652798478845401911701379655212335753783002659789237883321933156484569764911719106410167747389975901224765390918145642875333444705739482662192772914522879063655905040601908710952109058799979256416595793799550098298596303466961469531574400085886115761512192355120442999982203401572395328361313274839378731087355478762510322902777446209886065700014660913761224886527110392319937213495379881201919973046335305945719181169015900851291238352924326367520018927665684527474807623158671934358387682183318197936261062159662060614735841851516618380668906923608639772283464848310010602833897787903861272791059517090129267142806534056590753935522489268525891616788764471877602535611325363437705006388810557518886288184909207775595313006972568463406851115972930404934330096282080761710779207743216756720852955849751244406235550914730339576876489907981619125171955256775367342906389980284818520955656543291375428971176081707718442442829824888871618333487583571990711863299272779901322328379657464825934517686286918580163548396264083846400956633417368266542970254303237883043228768516015531976053696917958482036820992220161933875081942238348811483228515468670970590737471990699180064489935017484479984256492364746186371832651499117536575120322174342818019011846263789844238328134553533347069706854968936170621795465819461987346341018574412648426802469095077163939678028846999662727440658168110528370040799833770430502697445588202124330687652676064867446349822046454558555366822357675776613701988263822582547035575461072515192378210069500305648711108099275828248029058469368950013346098065308937236350951903623623958544806569389191867955246913128315556867114993020025471280187634330914658220440482471345335087893576400645846230421207800015213011134813694223780905143617307116920727774162942977580321720796237440169167764766415847824752044916085456320407534407111193850194871954608576950011636949366365912813962722538709536129509459803939947163713160475048591456655919975995411125731069662540977840077236153450531330201453468760563360963919806946394701774115809407371569187896472915541110812571332715397366500169621589990702717159723552225481138162444991628628974847489401036152197480454525314853871774965633838067316442451143149881124280901813981777705595507200445823559305902397315020704169266458640505026886298036143472778249504407322631027548588850887712086910208353829355209833505020122521416465926311206929206742129190071419888641169799240993991963613578105384183113006752295247273753687047321330786818973818506058215971710555592011161579371178480562560210022961539450482653623141502092127357906838988896105358055682336303122973469973465861563539245687601244798553256198267036116737930835581669411601287845453927746132838566377649166960649684556183593027282154013517722647288519205300945404306703824697086158849042579765212164824146854811259949637496157520782960120158487625490948973460864941106204647754728247237407541792669009870001928503922067351983849011252807657634096341221714888769938047177089948938750079214771829838635644562548341760250552521152909732710195075322722587343611861516671654938082280955126489365947931499963587856512079946205473914023486940179088314054103272320764368136046397535198964017369290491382666162007041362875477716803684444108413858293374090749218391667975008867935034633789810065026434166391136576103028749911652560465557842051857038464560622155465034128690528719553296845475250047609637609176514897576095575942848540503445718488394139774327631643656179485407316236078936753181494582106597195965473551542739600299075529455205824432214479294368248851709974067238405089466013817258315796092154284784394077393323605461776710057742017180321031450392786660353110041483479886118238351767014214404401444287839022292326701640030132813394504272884098909276056878354574310186048741296553505821274679302559361043413133555830673276840130164515449120172582814563510696916068124877694507547977273774749883430735371662682827602144431742457487504044209834405233178535649543338602885138771844047088509477724493168159751709963643614092947599370766150134866063084148776756247174747712935660382953420926900303970796060100450301431680850772794930234940018323020190858100988075645791076565840565898754777367856821398342063754816644509744944261250914603673658691234888751821207880983947279430931354231956330256100391658270736976651151182174877291461836302939461816945388350125238216343294914826422410111500201280360583897134454031955027545307390342233262645967656307858404705452535605047955868460872858555110588226071202449073743215282447190098405496407081943402374699836897364233351592897746771045694244683206724541158248541565820065812011683978322323055197218205677110529281028538424828353669485734530925999485340383757731826707360285514477139607244472335520471560393218502803866703174251433881708499437248510869528974370509999410399732148295647251118088197376652110525520446966401978223094226424405584744748454023145101697283718683706336073106436783876264675766178301734866714059347147867058418188122034671604860959782084754973192652283334647602076974821165400187524345905198625867023179845452908797143552977446219765547546671541462965195191678831712734839155668130503687820265671310216722525596519440150618923863973621178227722238624883684809493214230044757174635015443484981051826080690871432851017182716008699627104440002406450703600879150740057654084690740539804769369486679039962950201471960260842953648742124145640504703874978543157351779151774489118763068582428153326695438412736514329093706013901723780506666629524779064542362985919821935452430212673110429163551137219819131379740751311607082224369426845970929342946660007355008762003027301235122953685051028064393148155367238365144258924905440490485657546168307971240119386148164913459778087781855647539306702869209184574604885201570531127575170860720361127845127286601150834843470300299565229924403603332979751212907081825542308230209646886714327174796117187766357816747278902726921348140044486987137772657790879503482926540567089407367618905509559375393724073635592431167634731759941887323816074235585529112155834838356192229794401676158564058367331468248198292761665585133207950234208764412782242104897385463926266297343807517237331523032799950640210037985081437957872252762559765489311777571374023212306670233027088370854242805460840963955811405573632528886349461068560725966558261422049877424838545702783360237109189663518320704364867195955777866923428802268499439811213239952519657303533428776773417763945786069534202587523429058934653440612473651685416987587830641628437730170133685742541535577046822076032975649148725876508825510530935306367669881648313529780945763224360584546344034516155068616325849865218531084753708597178396493131457447378747982517643915353615518612869463638647640114402035513835608784919590986787404837782438073911425084720812036453988042029233958740198450883383414239652942150724350235646068299937337558335025786020635735349978474298162052066418632655965239820189594502639231769484940786444646539498950909759574476491206603961340300239645925027043464340998151166139835963804474911898422636614385112511120735887507547037656483187711651944063047316097720403793647185808283404930472447978403957677394388620942555428718735850651781038900720224554861119517982649917584299490802602310800846445308904186491802612071098941827087918042597704604267687842708948824113382198350973048646259917374192753022792612920369647918144268845766785747015042395250428369845443647899734487599664224102661808360222221771187530249780982601046922421223313913257934923617624583785766996396051598661090840076706719453708165867949609065140496020898746261243916075596087290515961969346430211926525151136847422370312457220196429196728482885604698510718727153528313093456247430795948690199346603581827377456160928129326296544966242320023217776817623130393376278174081979687559750027221542312442214522402339426242159678783429197300790228683286743307611610367319091166632316070846644428371284585681158790845861949513087855030169682387701298700908455050287575863517348011990280418494356453917115659004963846656096967304236959548765207198275251668419674588512844952163801856675375099701388628464712201928314937188660030094036568137490600965609883572843171614851148077231548012830837641657039520363636660837636883119511097474570874570654706013587116913793870000694118355553482263079269314773233610927111714383692249749417200906627783667388203164525982759954910654934311059175569655292940166222255516990994011171051997550096474516153193061301092413597867939129498511416565503743805969379814104300413057125983744220796416599063308396366598717993039484683334831890866020927752047316302849823645729337830854781160947696603673657243919604308241075668066059775731317134507997191545994654985844380819565946726095743307912685307577667797191053096694575229729627526673124210676647551515105751562741106831651426100988601967527034250785694557971117285728091997005697686068527832712803859642007351840976773252538233127217677793966961521789956204373016988965657918249174050096812092924668997999634729255830991368342078162280850764714327256321515536062726923813034301537430235316806110410586576855266245542059245798665111212510969115695304389935185654170560932671686473448269139703554256169786893843047146244796498460166100272702396954700223519814835105797185265813698448910562934189588332851750161045270929890453492079454000001968238733789680048007660234290621459211833773030111118451698338491460253641770180207631074056407422071375105184498179190047353643054683201602269589602115719146265353930571646388711500626898636381338137544598783234723445771161292763211131435465602840487528028780999721900338957684135067658360505834139232266939781508077179156908867966359262055464378364157009369468135252471923386460611116555920954636968880409313605746177612678060045570901983192744924740781307342567285995604853346623645431524150281970921162785005602344582101580389578362192920262403507636103575942828197607602133069688798605956176394627685726785519822806909181903292984169763065023698437768380331996053392120769521748496221907900494836329970589305185169438833954042971586450045179936502850151668313056320978655284431406971675994770258752953374726350659986676546451861422374658745063690559525765241480232303748209186739953973309230215663316800144695496401621955398614061438882674905046425755455136808769508429168943666699453252792520630935403534531775818223446133320132043267177848661074870946726028095450417874740316212630294650889848503408405937423357830671876450293517149053386602720681347481505423431555839924454682878782761903878468067983199541691465691296953225210321701411594153631450084641438292534434403209847052615811615045165232380243800957077758003740728307689456320287201587128150463382797749784557916696897305560767275311704397524572867469536409853283867691016855794106005069630781323288803856095285272178499216574657848838719379512925223784715503939677177201552019240097336553628317089742395384129577691121174533083734330252994276840912076675952661490894480961997699023280136420907514080510343962486964391137436268213850336111794757526516045119903649783809443523388882762826425677990386356520316143389371314631614905584788055890249447601389325385010310586742753875339545773704269081492584283289659032888142096234666150061434076229600444789774579904933444533477522201680942422230512791322439532377634772186644711396987986192532125231391647591653935533626710561537535509502547087759073274293467953584407535473040940366844911968084963804503855332881148081751031119177724133768928517841998776888123860962638538977245354155029038285249075715774552521451091552348458303716263428546844132728831591597743244037629979519843265904816835653651132233561601203795500339949491575140327085115208239585283708883558685106223224279136924305521961611628306981420444190484628857886954798259923932939251008173476630232842528609378371236591472631611296860786587857062602800873661265224041783135492431096829865214989317770938286181855767178673570045786787556406602369076183886090723621476968684701155944561712597433043859481606248742410813465196118496763836139830210078280961491944805847881098108128470044584486913751532788363041319912506862549866479388110222659792084099021451445835757648153724328536047912156633997194810178982496024536005454233014485655857840278020235751290185691817908829832348105303755430511185500461390358355124157456038792390593626799705586275369266646364387294647611669341041120260600645080353900054664798110447757974695045078261789627908984099753612715501833326074167665463502961189838691470851651556377876084984396182721753868743775987285670216958944396689075938404336066426049746673807599401737912474703379267265970378158440762587087086170431593729501710403246197569173202085229335490884135907303211908341153097500223042844005294594150497697187358364879432892469456560925660600112456214715114646115441677804124653512787720289788563867240998708181449836409515402433121499175475673911295661464875723704147907408651453801891783194928773457979784749909228778211966462129347859813527637191454070674545137629999661615037638322381521716855165153733443518450741191658707061219278277312438634763870652367650434285575480539718659361289547865691483838925819083384361415111938498409454772597769044742483936986800056982305676839671575619120626462533016651200072353558533159907047356052929220309140186114515464752486089886650630444692505970510093523694914126951166117772833505886500688445746709838172020384645899895220323827014878885506332343742849064021279145515915551334636750446974813233010536905693881684777406793234590565899413261637160302865189656417254767615083870829212868487500437856673085341965952929771274365169906491624561386630415689741045956186925249996092579916991331545850280900966320347456270086630919838688681866672628969527115890750469041768413010753071713967626981946839162718371897594541961575815434613036402275244698354414670524852050809689531099007804466766315273008199607863543877733811061363002056682132307209664325755086845399588428780492944366411818707914711759028577471606532611330168607311339956329052412092731369533493635213826723031449680376909139668296081556533729256861001582455463225587353164551725216737869144754326333723259618647361453761116535262216861228320338656594715445012624933531938829088231679106088365691548320405731019903937627767710242500887201764629193432787612494995600410125818775200489120288127722827354651600375195639326166126214810865033500622676864996788058657623233356048986089044590867688909255016875262260075000336996760272162459017149255370078301646249544254782194475350004855687681095865800708127499238032294786312418038482492422463433674709863957769120551810157072921747367037262571146539761514062507749651376840828964207829655671340687950075622675350050684194005256933419103750485937996814679857865018928619217743974996765339887758098064925078169416364806897964863438104516979479215148010544825090298912973455826300155975321739251051255567927433645175473124190055016273336287068746235893366517851584500873108896796906328564273684139280494805477788148738095551972972919081684757411943481763538442069648931182102128286898680124397690234590510428696859388761730885935998770197742056859397588858966715968996546142912382263359801853497015343106710503187360050624719225930166473680028759651417073165188106878706794948754591317604743312353836530830433406338808556295769156995588780656594593262453635388887885286076624086361741583771848286766269132773495797686870940296667700946271377533661703299783097476186407035302111636442642107693294886910241359280228704256551854147159350818215487030374219419443914020549956612562395975710561190483746991780150580767300445552211604354503216156163160689180012846513703179879162318990812859304053465211209712701568564953701684434195775674795898357168977032494950734896861600149418630000149155220080259388813111007785721423675406777067246729827829627247072154224773208593433796342883433680441138191866161173588536329707283193242286657135316380803237288066256258378819670576313536251649005461216629641795500108843428089845107196561183367301557573828019535631300805075292545504307851360330017054110797578936707297984905989091753466847864705954476322127120504032460902900337237516514989125118506756581163951212384547110834623141698440444104027712231991201563408281137358019373537183279993160064513199689456583535407989530474578603478210902579624338347643258368367988317335151377999857887515028607893948222027700379864992370720749497288309867638472195325886420566565961994435126544901164914882721326240694232090066952608175739919478563150849302628506469048650722075605313882657483075526560383190711990684209075050643826946284370123579399191068394363968107238815865927240011737280061399412545091996458325403018103354409754861057641411289407186674000742660665841399617253238007394307871577190166678250509561177035183106737890262434362774796624275020026045653417986915824652142631470130153718923732036895120435356046029308539306872603453693425875096466690561757361262951009782945509505690125369578039229800902518228390755082006416100961567013268788046899137968318430467749151915789535171286834558757927574175878083161750344006388759313604581688830921034336062614119325127696065245975865691592883069482531517472474990698531721947721691293530515149417537949661372686520870891876549800101230941203933712827317484381718784414752600122953353531193736623154043587867931613801605170664557698954781983632984917272300260871325659308975352625739818225270299722451621240772240253329151328427106561541754285166604229518360068799548458295187257779368545879030069515410604276346751732403316768735444527267233154632285005096001978379963907488137496858503901391698094788016895076053822784127879887791363656489108185160998766603965745280963961312420930269880544475329315449477295827890562617184545854916570827503596067246878608171725237733203722729616405613574847871769106883187002873366257881077176757833189091200176112393764286863438122119053599018461132319279271659862102884921623989419514701827966968958506570548619647851913648387708408509919718293427951589962697563073411211775021531994224044557485308644416238506674787910174777728792264603994170248767035465282270194492024878458438093377979915606449840188569184171144781460368317180049677332944638351017865415152081786401091871078718505123636719490538501608601875727428722440639207517937257629622867343150034043774566997001833022768424023057777574338431436842277386266191213170043742968683481919647306137856599473863599500967140602751108707179928604280550713588418713892351025793845427678032088661751704743750188953004687300090762558312668290748548907571538545474857246336528670335834479249841136285797092680874527672448795802602350303660767737900121153093633495773662767065594992340976806903809831101464848368051512159268093724755747820135424095527977033764175541043516825842280103741344581146134683573989870548555421977649002025950515507938397484064912741793605156457684278498918182462997102727199961494711246905103786825737919902037270007649729791961942856937991121289077380661143509723400217673247103395854529820049030639930921884518753411820727510847026714143661261036224159958719444313521936793778323780168819208617701188446924808698811306256017420819049836519075137853131607813527966441155180518296722352411604725062994227859700795939983733753706787556289028778874187441027781345350848505058401376555943198539402314437103751701002348720022604990214314703465503736828787616686230352231522293358458399791571782429366330067454993523090293058996135693790971542024920159769188504471572287926277222376963585786258204414447023910976894129989555566450028957551753847819698633682621505361659423432296991638954133074855591583643797944318430823736809937949137531996183086527178884398858902778062601668114913733833092565574682142313795144583698427836451889658609086581624722871017535214963851524224046277420249572856456252305460535556941346311873020920374119168188104252153186456939336576241839090352433712115016756043007156650272743927994404456444751818555286405987784569652741430362875077712889518317734994169060134696209994670618339132739582674357371548433558122985688354112145186108040895690554209728125285071251512140901587626649974998526890134423366619307283402896976064566842199068333488732712487265917937228345605390158109241515302172444511816363282636932998397986810798420263625497873556048269314485842106879034196154756677568406355486226364866093124012028581185849460718335536130899992886690095843852358324875563882368169868811121673068142653939170887565206656959916410843337671376065723007670638657111100304428466599978212391217526680997692625337735390495834284820250799480651229326663806957675263859278175499505418308845870566982496503199596202722559657860184811836474513710038601029938832779887667392398470911980544783144793721869265614940947771203622171506169053150710516907886611402137220944533706479577116937820826959316373776665943269278489415882180268940818410625895004434408588999022193485943797150729893161448115875731220322106055711125177698633604664644506424966071711692117999113816835236088599246006780881177291917873067031404296322405100073012278637225510713826284479594228057458780943575418927091384752684710885740985582110871180220270950720193704668721518855079595337970209689787266820688870503021194597023266473625844145029926854769548888274966286694851328102205317851153296589975179144632168131759014596788547974763208813668902385527985021538980869910746822014472077957408451283523616908414950178980314800626291593596394293321566683715808932049302561169475262120024382593963101911896808434852902691418523853339215399794163061508457876583346128703945889545173317318467924123670194190172844346713242310878561647997855511909031388440043045938160288908603305582160550240451567079077840187460610752135984266451193546826956552965183372214660621225093514368479621313232871795224027108332617782193272522862076593199265461354898019323745082865609934323306605759983074757984761547055908511720871219257787869870770871658789267707041123341586675403717825221132911046601370112149749441066860389788096767450912819097492413470417398811317220636507235072093904410520249385747025793721777372268829766395965068158257307896373176733355567435448690850221139147739465542230080000849577711188311901764944889482363151908642357837732041798914560069540068751882814420354839241117662133857307782865119231237415129239892599022880391170947715361891686398417989402133805304370030606257017394580361338058591694766750258646391267809857493514018554707546693546114910430713137345749741643788516748708972495554283490345530613197153815779052411112415656280348680400194441406135888493847713391598372755152569662681130742921677582281292817063607224544209311515475835290820225329222038528135730625561959321993824433310556248444895149069988167730613366795231561366444328270677655382045223780283163579369561350943336718448769923791894240828186939076993675833110961840799133847308952228845618925921244147003651515309035173217394979646961400426437653413929140108458665205772507554409780599134440732653914617561829570043700209630867203228822539070166116574717512695984262739026498541360851357688455534674172370928435941909493147402510722715693217332615869316976107522871900443801081405584045212300317350064962239388993525080480620157160781779079383295098223359658683944807477892584811569506453078217302841969694985616332748952913209460520356492661091553449340580948870530608776230963871947969842464028279351594158961637651905416661559261767526845639972235378127197570668880007585681275383177765676619320931765178505573285578222443109923128313679769720040983573214919598725517157124310770788612236644640333831912076371852320087396169986362512576552814154899422552705755357696261968178873198864940774950963276357020873181972153186015177493239173278296741676709053157876613182468592509693119508330287165358871212087078390940417613640618571657284579930447158426748633263449066555134971442471585624525686004089089608770571477773531110642446932495661263087772395895043703594029533854325179525849623454806137400675585843562527198966816563258686190602612814177434292823052438939780837242624283519814318794123011724220750056181356980698597239562072252597552044020958842059688276661906418913790965966020569305710229417562690385946768757213477566073265688850492422605022355127565038371555247223473289416544497326394025821261407698684606653860185049275688549361085052792554366300135943884478459136625359516977821700802155508519437995503503300099450394361723593476738261944642929392435094803510417045269822271859091004402594949889790292039964156085155861463401354373797535030821732650697486243097752539109516963690683002450548998371308311781405912622711212491490843067971214391272562073907901884194510790587759806381719185976106071429673467260838961693005202345683411498087026255619542604128563498065195519689981078412794415547817250340207302618513696659334911137837082869063438717404357709730707019858924593509264416088173883217791628349625008419417322667242085280253493340696468483602971819598010116047208294854780527415030563170452672179122303590395258246684870856145735127531478089477675373804683254862139947103177743988157926353895376141634309825346864655534348424563419032989541411581307569078649047466355689557818142981531403443020119546873857811755784236179726220743523051777077694735067475108165437025413729981407317815239652763399476122458855670348077403407590876777138189821313724513266840627375697767988052489789351120004598357952137124684642778693498930504752441125760824242638208332653761552584550789165517804947840521966583084566990501562143845413861387302174020269311574856158578534030630957428954155514325618572976205838910450350177180517383421011578625699172045074709142338656736733636695768192592582046218237177384294363407948434935435160239221752328868184630252440884684042134423686265268512716308697320470263114402016531450436977363182090294001493575096766507171268945993940395582026651267190139457368757133323478737538875632545684603693918591964928346517005894077228932419007715217277652214444958043090777762017568776107086571554086982818737578121988413605662120719693991227156271510956617387472151869022985867465195428146817419184821653356644209344039437908252797700661038403220471474156554372304809240871212023181679438986255495171923818934240594983729021996826304718919108766334042084098950320288404803385184717305685692890274307952003154600155466471500631930488606259164168424431428726192989212539823862816071481217055139609887376561313520117769393862114235090359644339021439715697460660304160093521924942658099091898790222933129003362946263454677686325380105276878605762629160113928915289306455320252604082970754932749429240689611497429213767997295559642119080691392997741758612518886924016423476263863481590924428254983329472889541566817428298306110435325839580246208591714601452798930009046996429422100782472797046345916201113940128369679200451475817587483420298115780984816691759389765006782867425324338914262699130950299554774339082861419019008362040016507223483751129406522425276089076450981399508053035271863854082049763537440095689430250826910160779351992717421389741881566073505342000547628805763182158007334630369550197362794193404011325859534986794217432742177960301276554826362805753006219154984695613705675607998332421989590914733309064419314190625950048600640448244020058513196587354390610674519501723565477264174625314366621867758694327880852386931126906775229954634749354233303377872238988455022586850718003757182706410251265246551148751535248439182469979711688904536336346281745106686746235448538403214622144447249206520651109473362122056490717923911598826939286828845777506526667227070430656363427717972309064733109239822104036222461628184619974410747960371624178458770254377791499327369638595341905971161105044692119659960793350721481417366232361169485957350721476395864391573387676241202233313731326058655019313863083256622019448764087269811417995984541832937765636801617327995093517261949878176412469618024261951629358665836503160062095051075648986924859432288905529215865304835459036482957504519403812988361465391494666779473853196355977126548916649487830340877006950215397471632814190624076624276404616389597898579414218719877343550723973164175510046932529046643061206532124766080648553944260541231873523896423964218381797746439604086371529141912449424427696763090553032290538202038319313057960988267557760532528339306251988484381732293224965865433519529843670060082182063344312497123134618165698364740709112641295309490935926529426328825884348219877286051671958392760768016422874932526125194860396700833970688157486048715356307822024668336148113706372437174512057765397595372839789259948410072543448595965763863718107944249063020941098713520357966838862535667874622875453432439355514193867547330803228461601839814766809719226480985513167933973502368576645233412746219418121321260472866365971506610064335463040030663329426767271420266007980748549666668540020485044801077702875437516635160342265289268168966633527727859525568771920894744230712765270997912618620799303153362386375584982066606580083625394281219998367259979538121807587530479697162469603683439952605817686940175761231805139806446179662989762113866144031925265186423851647208389340316789690268331941006909783469350798702001384234841346581265878683562693936872515063343615835417833374157220896429007025911193700086969125212540331860895644598941621013366841854955289164917041402702598220310992263841747398668187229147196371852880654330785380720882848359673571786520782416550867668928613715957370510177340399016216804716065299401201962102491320462544636902711051599925019043317124841952641369961173880037316336885490596141573390193982008143693753753245001150534756165791046982128072887028249311167044992844559504891125858962756769030368175944932784331605053317814865363521690638767810669396519420787099227086177359836328676779028435249196423977753954746702301010463489823661889327688082902365013354235272956916138860833461453676816496212047769139213554440683431910541785166009522185146847443338552466140454513375771458830599672767477459720569005941072987296134754283221392994902048205841587894011251440051282687803879951206135820111310645581702898287326153311336517303774087133974212862125946499301222321556201518127540586983544513075288762032621509650865258182370064901003662439575875456696858747383050998767120184444737894368370322231872418589358924148868553177481582760133236393918316423430425885319656675652759577294719208884983610253999018489330391552901478586301535577998561701493251709588098891378022362454224300292506759908400213598288980820267796922404577813498328615452646433209180505342376140773969494729262362613116442856382159200272556393179445861813717825998778558750673818435203486841152762010371499330978655959289892401083521972919560793817373061136072937441537218754148946573803876913656402328053396497375467517378222717571055948590774215845958265844923442280657339700260304638208768964338434209972961414580577041376651533728822544209350996460461599976364669332016752186341478684024578346251178510006133250997595127726605708079637139692009769400797303470100309858613457869971762714796422750818215708221612794741985169047911143642747138078462046922319568655634337615566087691007826176475225924695411382299145128405980621337568653471479893925237479523924913734744673197076843233681930748793213935418192985320630681387401283618594670315078990371380414495135309049493451354038539422817934491372915947547066488764191128358585586434758168291442928851525246435401817017474683690885592671139928231182690105959611012328835897971067939154713416910416700191734493261957051496569119824887700376169897418515076432151677210462281028128151438249615594017178870169107109226596889666273258839431702997371218915968496977581099784126345395620447619778269321897014098345450916533362204599581959140642444043159800180114699681083919004881477754417018918178028275259121581706400622307036895665859279939994428748466460682412350935325065882050122488582313063188230237109416661304457271066270708712316876139908873955239150384076788900497296830088233228858067930852622777955632561366595531045667309751610302716874604307086807054407387007567567835999151785897484386803672671253712250506665161045825109713407303187300569503524273681898915841377237788866537736039081961772009466456692692093653812756425620036217210959652572991054862142610824059895555297491155446242327707893177833852360283230852618695179796335130046710267966342941706962612604079784214933286658509550188132764535954709540219220997492284346867255699214639647537655705039621694270209344780383212521624546412269204998847569032477804828661164784837842419278139311167042136624356544623382619788960365884387091201008542338876527402829736508495841907197491727434491640922163193304940626090091604107916355232450756293862150450563523341397751135650943806168657491024513452744685780676287025950918931910389350062510391841587039557885753681211969930434741167130104482794068787524286648398208776832612056229001022433871087205865375571610446502925536219591484087144198847598846018628601161925208548140841550711842260897866853341860796749432033462064312282921604423001184978860506262987411983863759197995326325527613947987293098484879264920960641579671892440565576343696740230418284500569898394580272689811704275749936495822716926793689550933775769247342463289375001648190142273322201188732937449577677109063734269616747891458487242632838801028055575811033367973270937506311749443901115466788490259639932899932932744367948200351557952082479137080197193637589925517267816687682575569631669320759405988685421403539358366776684892624757427301102954001415976602594808493110683604866973223907472296534236501375337271015548344282110344353700870988712119514585357569532173601408184834690914740951052026577388003149816226024867286972690927471382100381593242252872254400884221886010816614873288961379216622898095743214304605090795018458566205419983507910397157787863203099681287234211983156817519539925988652087514542647101154269755043994721663602049766622044832246964849053155815083282299975782832773499066399027556674483213442811068323058982330771474162000446251592741459689146674993814140917209854051095344585926462992218044310179928065079406476224642338196917589846531556228359148528571869942174710138738064763732300026483507273844664989673434706808106127497209911954613559346298362741145968317301733995154543925383594321837856948719376984527363745184792293591563379197476516131679612451874664223833222607388870482990677877142309426608498436881347219325041522128341300006533058794269934766652031424107284409213989814226468190182194471409526154299231323036074218102200584878949073989261890016196174316546525364042535016428363934421511280899443904941086460933288822265626301565633705765039280426369900859740295718925922109773365754088215155709732511687320970016539634214595107861180444096477767616637484636736533842620471881989283018840684790857879002753431698957927254725014906247000612997816315522351433393630363735767497410205247622299525988336643393909731350656866288722822796891433252142799418347041713133461219203839820691585288747998135992037946063983877892216131741954919007619297666560582006718308621965765373822352341946274951921947815998407392970985898725972895848340636262695405778553166481660899803120408944093430841327154624973304147485842972646282509520660870775299583605416256104475606197376420035797045072513687669482205046355768545012637508333618992199750842649659608459451600654320499228370142608783974844260284050632958734564936424366226531047551872693587880226377625429595362195498158050826789712272736412367003039377528812741723559917030627622066624895065198251706285808827838976989062244479544331954700655206309204096242206818111660257912730360474082514263809786508104110853310434923732690702812489840371375089297817187093473799717771778079184430398461418627432472952818111115295486140744128510118322802386174713025374217244146088113804860068728310367167179162311467531200887298920494985030915530001643674407963818944719273005678224714278767584730135364692742185255305581058040953445752394693515781711793109969689252255385259558072675612114574144074013111958621175222867554529525976769726223582933056100317431916626673436736712279797600351799740795570542164838832628614492963593800249668536960184173252610567488348444198989378846947818351825407976853876262572503879880914001725238788860089800148805361305822115256131474571521216374920521726036698454553062772611766472001707455190973856249928582246825972002785917902850778463581325540517148428266871959389303924267198856661730718589611267377615049003469841699662619223275263991312622937511173254145602132731623019351622072308150842137408964994493592782311198747059023585428379462871896998294706040522147816485468557539390569236133966403088114978733518401741145648903512128069866573069536678250887970458722491124796272653152222297929406665416323926583362707354650753084934755058681756354823828567032808181749552387181200020444796880253106835745635986669394328580373296578621030096258945975180741533873234795504718414584715086764449975263963704512112700772277520660714544856088042198477445278707550455888306857078631037056450320121898536659206459572936483353458721672484063672035824322519224263019863494581697135424434097302320443849557509563050661993308080113113000046337168977303209139244726096321880785954701006846873982188834599839604741587090998855191888144622054135405386793854952181153068619694957266405439038806177617691610926007600652243604599102312441964858773259253429119640273059129029420546145894842587695643428696622909917860500955237445935164131657265496320845832847652388642514941530441372573295159743413277998672375943825917522749162387771339980083890888006423916485107110771084587030838425830432282253185053809086038984342345330679429652649727224270602056700076295416781982593304007191417581204416937601059557648411955902505407508286771064414082362943331334369525026568683810535257714817855614487087963139640449117633846911645243249629851397496116346806853839201345318505092446905187908408259000511864874665602847706061637037691773354847440940925268876734480934062508013227075919114585350789780145667278685493782895462852503002721746620840235600120044169138569817647524815616137969347439133427011696060741368748459660148368627980732682465226867065247931381033273668741276572650605089369622088345965829886550720261730259745692604008532887673293023224621110777344342719347934804291152330965257001440721659830840453140225494911636857469454625072752468990832763457517839543380957363288558454527267925544704408869465368517702601247499169921400975398845823482315695047688218139111389156608915085041564528342782607697076493436590739640580841820492700512459422571892570371230887959699899444485803487869280426631456015690915783770616029181537722017574034821241054437994049145192706448803728732073511634516592372540700198395548793252644391946767490248377878067281978492105293605601961212819396395651537098694320266999495875637774342563777073291498103881873100424666618584851381271315484245105535090639218717637915089413318843025423344590557057180021124842250056946276134890286320620935665437651815912354430764835081809757867001545626231688211487047052749356268803947803928240157648378297359251220341161088726922123640816654959647949154323829164603693953377689197410763765696587218547718961405329226567680699772495749078708143096655079952930692060943902714664043038653150890242972851230412481200196137461264747227435184613725338616658426905678836059299122605701154193967235018647437874202434674245818024834877726589763801102326730168421136837838551603248402203316425093444055399378250649115020739676260895497078092634002879120652654119430711961737346428992340067950472324345275250843268439500492454397945524980920501723207610172579352833022028299486893836756592385770155412446829887294039889185321796486875175926128966248766643511648554980528047028481449102385536020270161000118378300566298537956604899559347635703594500863586230319122508562362239116145719165811521569997566878185833195049073788674160077857493415497990796071534823252765604106207501843262070380945907245183185677326988947556978715435801120801871169499819956292779388837503650036544177290289505856906372232089083429915041925102823283852538651978111828589084748952868824230257457710405958815323147167488255167558736328431715440516828975076905873480682420652903526222987655029446259428638273082189736082185362014433327537346481816493234348551695540611692510276161627145235058851717230895073942638153347565609606917454314863823504405489018747664428617337673369726985862822036617965687838489428281499590558939831280587130280979341768349805693021693044082508374740819528425888883990552939203960262340265558688640110190145341105543846281510703076172688176145750667841951138163514915156721296685338331144256650087864429720002384125410106263058848041220349011397409375215987553880058610419818255186944426139974812935681140470359077994587560162820020591193145992800374465790728295414083380809672458151114775132288281253163630326734840449850531662050254146849604408731109362777867948473388113425478941260162987499631486285266402055981289499716194914329276990159630353682869719244677389124666218908474094357901472310343445747276620468607796254013257306941602556372204839078236511962920810098724927476720113615581027297791642214182997887281158561364304008834983183244599486060537897725396711795068257872125209601835075559859559901073574793507384098823402568546474000762869678517390117076602453166719360990340651186861253157932923113090467170886540262448108007937011529361580868314670177232440625314683029795672942785772638039344328527481668100415555806511181320837763787572936559355112579761524985720099231960335748646754945485556294214210949218905854771220474690892556926720656047454546826229446220236395911246970538446808558295859791601136341990987658787899630110845083282739980990974433065695569594356809451650251767316696009847728013450977404326819098437653237558379891644974927070677237413317044406667984215394618198950708159246021165559451430607507207880501498757350591978945703282061638450314137360923873972640826605404526014765984661124765794610345747175058380561463165915710290962684073439243773181666455382239843156656337393474728470267359194714183135739333509273017047865517573900640080544889425536521547708545432053566476121064787974175819115144949023511640391346812925293012839437639006382168020172421844569062666752354516540792647656497868649149547272425065677594428436446586107795198614961975248645438883845962582110921287735790445251365569879632563302026945893472103864962907656689976128388069498946286009977731863150671681139290926763791369316328829154373144908431956027037901855455592783213519461979397641171927286675664912442023740687925252131260025972407100235635783272198455837120692559989593864386707349553920400951907369147870791599954964369108792298511226125825116050340495716673729193583694140797846912099325177265162425367230121596578247620894106333777761885769256185314556108584196177075732720589167165795387848561740262387857074627883980125098532838708025099373066767094597146652529319430933500052250517938760858424497322177881863947810539434382989430355655836767103257200637306481539938415772646258135932887391406187719547050113516028516070848130150788624745667237360167467117727558943392662017590857395855458085419382314971702056303978209268865061344180236284262681737758397103966449816036884430115573656377409232459949189868527363502328176700084402747721545353876020187936280149467158243777894099169036570324741325670846456635510963466641543900806594666280849380670159140804040306693512577781467510517946494515114565684200285137635382095533862513694565933353112630783795714253196665685640564698931783202107434909612046125754534695936577738691910069051494286408049476456302558980463027707602310709355154970552847665767798369261388995087688650728146234450716251754836299270406452309908071835077189289514410949767645963556192519801379683258732020082084420127395338910915954100776016356216593103873400484285485091745764028544741208560313133405992220032903490312343073672767133428852054277250079610562182218770233545617540406241065751981783444729297927609062771346077071131179408503375574662397451879005316382321261426630625889278467281106704108028325991063931856628726803536897769645665700663128150972349755043284505057866804258106097854585000730747851313154520316721609095422736547970873611936807960053367909957688139365289493471714029516047169519792409747251531063558245135137638410000567678183546939095555685662098742502758830818439412807222750890268095282609872516969863878967949113363431693126496479969130793883894776635770912377363060487930491183094705576762338083506494632708282304344745990454235792391065578620393619577743833629103537356760713333924470864847217264638695553230210725040075495505991274059117855431721434180826933208530334145890529122657443660298321396577289689539258155589324288773785484314168218276140598334295130377452098736352488361731197634736653331905284205452439838394757527022349321512183881465381762680060785401694181897654985964236408270663393698421795692515143980602673545204656008755035559934326956564848188424859234958044827304874440341279565243051819484469881390768224216994910569957116033394456871046963605358033475049295392226069909871378359716593422139594596099923296948595151614572907637702735497905425565575939904299422266411571881462985614581477658804733115570611420871101763477872030132188051705709771331255414832720171785969993186274419957740112506923888719806787548929638772480879808179302880577474942662333134938384072868873876772326650522388034546429630738023178395422897033571882280912280058648529225957492682910696321929693202048500298053049249591221738922583438110713579321127228461110469984114793657274682225259039638240163704695210274447399126857331492199700274459709525454348171239932910128691353390883748758924204112660050782370355203336338788801899718351539848965976729085381290835631593098181646624695125589554387334103755373201832711603262383748522313231741136328202681046772277204806942894000454801051935735721875348757894591713644256345538479544784473644827302283673192663314963755064991620260440207142963469885555809691159296932111111700085719596527287575967719156899734318968270598122251426895666024634120832746701045013549850990205144383887173923103977930112912312997556990615291526162534905688065878575734716112928891456025820634677792632446538538909749222350332187986309528383785180904901773514789097243143989528755024911111691034217319869483315091226136801916752934681617223650590636910726382718168510106247987877960470608092160139156384604395763179089524323067349075140744853612146007593134341529775765796671211273939143112699731906677956883884144491396197522102217586071875479311689612610987252555911962190253392951934026999452774800139018034161116241347190434915851881142021280124639487070272957564772799318700033791735479883763195558119272631686267363390153382515642661505191377226031974114780903962633330106409307071082638136470854828102098885003867863570858496975631996373209690084232316756582671439482460374582876013963694338928807585744525663990853018416014333068820152661699816775066309672993417391932559955893551154936421101275614922394995656201918918720379951057322063415520605687153376729580451636075237592406420928612667776975430577385388754403836184377684902570773916377239707663572721747888351934825207150083813903694019899958698580769527523074322641903942130891385722235489639439940545957082647078788270878788607654135641698504941569583977723471299172765950641914352641347133907963468046293033174028724923689056353173254330394942145942260895797532978157050936826699269999908256443811730962681605078166387816498859715234966682879553650915616020554656420483339813499174067305363155026691996049965607798104541287646786318784510812197001323656120650906948254586135888145860108205468520834102253781907516136628536998627676537199239077869433753443437567171430304670599814288898048419726262289280206935024158625993001504696260597358996541992468195242994277312971311006346815132325747968903953159778364261696298524738108351353422173645458511441945300296046918597719118137182540607853975218102970849494405847934523949195305193364457514386881334275007612161563771970890211520171105972744171354275631575571172163918758325389669330245593921604674050557572889875395992383246437834312758617853809176477962113128300502059614166168330889558181645083588252424135230125205066984481619531756319975234235314328258714299906007894874608741939018306987969732075275495404551296012622518447062333268171799277636420236671917238150694395762243780116716218052306970447877449641675326704679557958757109142316273536576788156880100773649612410078968273634154582693360013607654384498613004013499860983665318924193374846164524056500546573545968864634836289574404612264939126211518664125764537101493962220915079233492324219501910043181124111928409837652304993466285686856056628995770348396612445698368347065743326565657172264535970260912314576239976302804605116287438262268179480045671732548929169736080067169162576632481994882111024597379530831164171677088962429973168689919481754549843964665943099519520590417381642323252757768672415479731892914412234893544052665704801374130677852429098226420076478857502477412847298271834863046283669854176613005852286330163465173593037794413621152931550251895425620730714780698924246557606982479636596233901428529362275556484011835648208809249402392427744826646315341212581774939147845133766510781680310367036642756093284807172974063851051548801250755822499522513933155473406976051060246511070842651194393807619301341852062093288281641665538857588767177120914781435551467190803808874409802329891479921949690232445781576084780237660316893970508342946267688672115758164741376741853997765212163874661954449282654471512528011860654268202495117088436446745965047562105189943011195928316235299227887530181489440234899565819669494318124965438564251358547232808223677603188360634520830381261239063837846065585495584798687215430773975246917381358776972811186856536295677901282248760075786213093497699069307910787890091668849421116263864499274934995133167329126643892987439768632955572721698728557055759967718404328157439662243409890614464884976398425794018974581655029736172824750385328088598311334387467913971167143255720425325943603554207350689180487909205609923826165763206000087645128239487420079819158910283204502833448139614584278206376548692672926443247504105613816859183324714396433405734710178583566946266176296313123955565598824451417647174396410221057717134256914029623100101038520079064833426917920486535582135404825468596533593089914285546640323345602590961969500930243125329201817998894923004471239243961255812851037543147817704166124439593663008262472211563711310614796763476851091294253553711079286904330987387465882606508750479694277680386600935551309380384057711698782399241356031356663233624955140497444973077529350496388379994503995409145397772077285795494837124464948956014303886379401125080620364891029050501127968700656386242803597792092979078701158523183258199132191052957524678138311474259838133502548906062214982261154511050031247285134753390012594278845283242343748229750857383506397878240719545976924754340588233578345410575463885854507190197039586236434017450636924139206786957300063370501528138786183298760885723482360127496190152453969736332041033656130572684237761791555247661024643946788462560193598191813902475286385482402344545638052112881509492599722662892901720365105256869232639439526959910022070257008727932317239004039913271151719944760861391554769238255997663424743111255740054529116444753176617252483455587103187872307006454146122278094167681903583287499335810103240527542505186154754187458832895719265573023216958554842655923909717016110146341806450175950625597317141318382473632286291201428724832064393371844567709401619559785345133775161231184430982050326911221702632350351881839329977382618047275926863244313944869632732141631352813504666484134838858664519674608199157779857829810489987539189432981393448101762315989000307358873842752615269175003802392235762873243703359016734504218749158662136686671283166285536198546622322926756858325634148436381997871629733329450773205118084911289891178188410704430134395007407851580637434405487335200173463742622047813550825723176827166331986599112124708856022669901607291510294718736673977555630849943322907066301713262276630359056430475457247085810691537908007857915433003426296593904411205954476701768511497902651392736717365710826108316106817452830193484770460774008209841271677380236180446439566949763205871822263608997884393710283797947967318519344387984898792942799721399643428309772387485790966347590664047941691880305141282806643052872521787601130348116271695519715099107987989670714023536627217201853042175728867944718754850555029324403334223723214830309235324431770520331017015751064057533573033230758885156256939907224934871367451489613378859864570207965355442962905215146675109067707016521103003637030883354596710815694803883707499682778860629917504093312932185482786227060738398207432501884052660970384349952215260476843154672669579709258617719905535560359534832801998700425205496713315433527576299450962701450977867821512239662531660980580735540542018314532930197713034223597726310812856732697634253797687385198604660218775150760389315213285774287522393577185804369975391347604074026215410276228350924760047098662045201527296483877275577273666796153588740845774093594752964463790732877465400249771036266011584163716465097568149445123168052047834865673034039046685125341680909157197213150928917920550111954186530614608745716022750271135447154464314192079652516282312308132792565157101379580328093894531502050436490598906495593318794087809408605065386373701964493007626512570922620697862526733366887979475906202280740357045238964731436387067437413970004837563847022696803430995026620735484564781852623086629768278955302750472449440968066318976122332693871472190033946763370007409695890448363539142815042411996169523070167901907671284958750704743355898237295278734737213211958298172207258082326719841329644283825501873944803780378231439854937741393192003283089392418630250201243778614382372204040413709207618458343922487243142299916198768166298757791387514739243341651380082678422165418902906358185984666428138121052045666992481788877152807778358258993201252810445878787384016656943913761058740391796874976076073830623272783778998960880160917038068118993903020156428432196343537248060221507964756462438347994273977894609087057018068328525778477705987738709289658848056876048487515317582140786297565346461802750057649223221122751221948331637268114739576628234297287763284792054739299890362456206495463075423436327758473160886017981744304331144509304543818209370945678771724959400285737947506508994396173143796958050629660634805895820321995985958868316732941838897915948452582191296073392056856321044329774621510354898892084097918326369064835149235490641831877794595338789461102743948259539952000156067755980001777327993975472444669662323752812294781622131961189997055888060566673201993214536107413070893215226040659154380913657692967947264454766312001721970736195570860357980035120321412254880495815785246707222380825486804987484431352915257575243823759082003598575379594980958157364275555488207240879325223751235612672387223298595296656417230075721322224067731369124017352249053344822868281100970889330390780356275128274171234045226543280780882022398139407749895470219701162689307503042222003010028972290541992709666670747341342652519156919176890181610619663158003815878412758336225264526892261117559168843709580078722016471118888515295586333287310956241037854364628601891419088247526672165263699495741802597270871575623922098037243261024091921963255194457450078751348757462927310287324277545690021719957920983449014314803468807578233777151731239082750961959385179017055601366096241010484912491005173099379053057672441634078998922736908672472192177096332643373516487794789690671308748780652242114590637595342881031751451151966155339044478186340719428300658196442571321532262181842920537473992954320104655919047766060737442562730294334758991964428081972372641690243253966524960329300766220715664975666294251176348576945183978040271782416255658002065709425847522150179688624689019281916629032336352812918386955589977663410636548433048568327343208250241876860473899353094524894106484675877722271314422874811564429706008157496070887328198995945221088076264331878277964355999138356148472053138914007699674518092219989825922266998420070962468775580608486864605042618566711988737715059851434849764968842103825376209194947709020258741706365624877730305922417197415876000307110552686363627050669547499290369681584198641695559348456915430582141632000519502517955516459052793891199678590873613749204045741463543269804156892446527216514419955660761692117129754374507068264009213289723874228267048816853509743650435311839984330901038149350546303621428050007888706364068403355238853381996750866333586799328935468842363130824248167205554833238988419493740983986551198848688528890284557494689694173524305647798561720872326628216879426475818346987253629349462172922379062483872966533203505036090828578695527950613127797790882097429568149762253632506092126444282408321351370120267821211834573641167289055251044826804349766887109144345596000371532682484709110371100793474661615662232389844286405213635156898700093963200204335060637127309540557654468628495930743306684897321256455131333648570120642335673843703565169565357067604351845442064648541599691184826329168721389976045154586463260999802627907415404073950711608183801871384474288315349112355450426667407738178386220619958886443996313546846108482736289178738197148941322572967208121198573496909373021653559277386677038425711922890661565981009052441993696570793529625899840857001727503670456821576052417746459680098782392316214695115039618690696730599714723786284012196043354038319435836519840738850448840713584410130401087530184761647248245505624278998138039453658673046133472199829587157943668018895021853937101753683503379473127020215080961048388578574611128423808929429577985502250682569800297322651489193190643428235320079269525970717192250127988159698829285631482359138940585157992175500743281947991251876490906162144200182431393592247162580271520390253090270821392036890085048718375450516877601835979423420200104754732700779937968289223006615218036541172159262621766770616904878768706195310514003971845229410351809052532843035693255592008706139649084314767763937277707811945876472371734849626729611257843057282531271675205454748795377591371183662514320068203843025562526883854538015506872006629962946596313754579249228444369793612128907615558397200181135867486143934863794853615839246522610994670485768544142632634490472450688704676005377602219256775285812418941986189819710008908850229050090116842218877415019875653139460130778585686721269658061774776987009023141706786350111174745867494548585377227358934262867641723066804058598967389121708840774650831279129698457094922873603481461894888870110383230083657513632581688314087552350675256665910204269525669346931480858210826893017598946007961507316157687916538796025457998260334887616050167430981377134013700059299236274562046033625150447348217932918011334362476153006540002782480567928111084946428480338349805455865500765998279376665272039748292002446095690845867541176184446294655699232521558837169450868267988940812538421491524808280829489840362513203903002648925182538199450898499144569610524852408423573135762927345223281395891431935229838051495430705490814082995195009260232355779923046371882196040208012836599573378743916408322738467017025109226069181991420393910798046160192935109965373260364363868552836072506276770391871448368041947938257761278358512304930873618364221076856631496864425608061703025886903139471315780507369153459620464277423069683198885206320563379532333466525437021069395506194570069054304714919597779710606715217311447343651564991088387603579570273954828304052543643644386222361400377652420211319930595235490950798240349013259476992577028695992659921989426677555527607662073330926724805871130724743861369869925632945950863504831388053516237308840757971525591484676862380407568603350372979786855757030072211998265422426211357119920464254958331218180911196510589514725441630867815210830487217032127617919650901597597196630589975052973208878800793890040412569467598119095190525052858417614195129729857139140061698951419937844723571675417446329205198052781496486162050615001938283985803486855101149709937474946384447906095487201536344793953649217405141811683165048220276834312948430520264512227922350894258987219304810875419798909506465830357434469211134986480243280304296340511020236985125710441538442448757514736241135562899113807350223432264332675391366487605582405808809326477946981389909600850456342880321972817980551424708935319398175943887765051400295185034997412935471730071679422105913937212089226540215975689087517676202481816997759454071435864163392019877715673636498397668779824550704224421807256350417326972327970140382938596842403713680548968154180366868398755654100377572473285923567623320463301903772608600493938164860686886383747068590027621387132336366276277821806844967912029738523047856024259043540140854973235313493450533994279746581561736236530405436710944275401467739312988925723725265163285642317484504083957647427486109399101292818187702338933641783233828641411333987160838027202419921763880750236161581977511961689305530747403628244198488749820458731350881656233054700451040813603154964662810649544277063422763919081995579068192744700780473652334062296876908417584405124792602169658002353104772287370823271557143251638544761569324260136781737143215085905146767712280317975896945976015681013447781770914890077949920961378433414715117863754744478513954066730829764536569168491720207832717142845462508602509523498522966817646626031516741071772280416053366775000837340294804438608971888752804402158061292863961989323851359634235720949463297448333030149349368842083684289832554238034085226504015207012644501792813979805103083390692715977619243994008588978978119091116112981893207272745329458967173988251151337285263078140074680467924948859954563755083100314616077916689956349765420348679664108566222544871547523888596256346037555472212527898603022206280796473921427119766099482455545885860911614402948388101424985726885207744864518234687499027676275468342863320685651392529138259509006188481472616343645120737952146417562716109636211352358157393849444572416643168777879733273878318537702147492052225158336320363769103363728363048126888062801184699834154385822425255356040367762295709612630454506838393860214620555905012810877852071741362734082000770647730279421416169267836232435277363475286437966255815461375193856945407098532617443846889697766625062515839586411648586899324630186730222629744250234981004724364210536628963185286639203547024503205940299420923705874754924245033759726445457992253840198188203735311340805517793113848917975928084797394010888521814649849505292450015095115859752642948522327679800043534284778858161056593719435354052587025313146855790613877364467183261716660396366265816656598591538812936381031927694396990306055406962422566859602849846590451766125095919259632306748169822517361758129137286503813046074715728367732538986485899727541447581385450808814601010944784278787622663833114403140354864542144554354499878993117156095888744787669260069929923086817888304013364713075044557204885582857588737177878069578573401423441373886858011033083338849027877390690168627154901687253451860942289755516022962275555181930507389742893688486560306254622647313451636097529932932536005406620777765478848441428163850114416340304488204279635317227961930595739837806337972143866194662399967150683055906722506931775981328176144055427981989239328230634149548070682987131441473480902544941504024748726516991460283017069426777060039529924866464465369555916195912417400536626251614501328945814491563777085401069279498489149325617456969663738576181668351779650084291696630063474933948157835465560752129441028083364833645758517335126510730290473426151934004412375096795128561125102711639331879085794015535738211891042340481677274310638248047059270741500576231385633247778248768896178949719900219872260289170839386985773432272342839019293375502952173797218551795648571770034344228372695349935349882508007465585878683785045661166498397940690823493046668558604903887663335432258386709656419914495144412614409835505672721791465198892053405142724615444140040247392351926405598192887116803149237248398282662812259542330030637556824237157789252450416471776246435306732803869728251314759005256656641338253397728257034317542520514771939529386255749426615321329396340193306837663191362798425154878154590415377816516839073962414587775621853671461587940624637341574954713504258933973296207164400013464424146374676554566905544445064421381202414247023293798282940088367605808569157914354622962388986813848116022398301523000766399067269780594214410613955463698694273524408346961391957670903162057033960161015333324666009273260396042550048527477300890246325145924325430128366081727306883010582753198706118189222549552605489870643091497836320708261892091791670998775816781182206737126633045081094074605608062650924214534172265161148075093649191036290960429602682272692011199230004055791497687458368156237874692741661943792075670028861617191286586076761955996413987634959744669010076516947834679766432581890596972084078012656884565638704358600184573568597189404299922095940916641483774281259644996645507983723834164310382790415495519628009291499717816148741814610060029504950478371645656826841028232429050486137819961807732575129170621837728377605066791742489186628596292569172214477338375068441831472189734208979291338764656701056833066237551195068830846497347996789435795735060325923271212710833912699196294831212912305142938133146357795009452500510325490266297235514701128964886987050715977644415002518383852391898686594037223464363854769160890297193350597137291081416101861239518729907892340921847316407221986461490668589463497415360686627436027025453372855039072500829364935778334400759879642170636050649604036707658014514475131166827155377933588527979500306573720048514887911957796116976557571155673260777776542718295777741437711328977226961972240793198138002306174768955438221249313688907395736807455899972413332017933193133577955110157686918335518100365005653621160800522093528504038072217006730725159649647683463166295788257306647194033133740834474061020830730090630207254709171323761126630342235215744915440020177386172670910345489432542072503899335554700669486824395274401850915590721331776212293655171038444429109672379055362398274901386123595798308374905699124659115958501267291428062397808666594610053918987474675724720048189855388698482466262663439892259865673491614057510368598691066651802518756067382298031069457156753796274114958844850719732082257615664125694137685995156544621156030349691561559988449605762809042618375069007791006071281737938507884150250715883916887787530147088362262264103244892435667621347792207304281396885204510574090636976382973467169441761873907272619132749364196670694557551790753584531467316841829353015732226032762773701926874666561617320078638648918174392703289900315665772089315765058257780032711933040153873066002070640190072460211568227502972005734230100981058942991935640323270822570997886094465431932171818121572949530398788054938647885652255443780421347167976093403279365202924726313961738149073264405511583767458476869143531960094541506140279700084672664907041570404829403290359502644231214458134590674298583641652668291512655658924373673870413584098270248898678039397233375763480234040918078973268589326294023108595171996127708004273575290175914673836754259466887237702553953953902300451603622081512113845619403243703622467069963635101233625365005010934274177100298909190390119864958221592786847016901887647276979380522271338742395608441042283613793674127718569197011805315024751202433579642055679273692730254794844295520631398308318640263800479673437209312363970501192225932844485889412591879658370053684364590763139362549143576963233562354725271893342481634417061847325338091763302867437820215525425395280044825760766821587568869123992592421649104316373146462803330492699048269746986124602169803673866564273692588841793072716074382048214132843915638283467627787823099446426733161715239333281622933045031306895224106920012864562509888742794510822626685825528809858275597505993336734777456500205201441400020005092589016858237465484282718409040952122246611837430565692821114877657698381431171623360502448906078661187206111594210666822460234418054840626986559524753026297159425065126604420629967857927975760200082840184199783923205185378249440730270825645337544824132893507216045741987112488043633930735557283631599097071337343071242662945037508485789995969257966430030859546255545481784010847195498973354677393497282425702492018235705258004026768432014654480937679326537401455695755126871986979241760080207527122496315801414003958986041110190545442281212457352734915622869965598517225697147354175273724928138555961734393692678562219557021519624217296782123732147185622448667436839648511219340521316202657612608700180303856906873006848125118569525518388130320589784412409859959582560558857404329974085443985973802649334828697174890957589892673122077327579839586758258640133127044549602463345142454654991606732962961055676813831360676065832522458004984276038647976312456638093632225730320929198424656173904994704038125402124412715060132231503268249060058303632997257835589188752734200212348865627360241988934896881382487984382453249981293817091555580205028620172704948268610944915862341035079257360091473953750080968525592076976117791771714950004172619657397374575071820355187441942681999063802269075788820952156016313194692932147862716917887539651029651366197033453282538154860759849616082212151385903434988499067004559052676468925895090241380014654233289046274263826101660147407255458936716624072224001282772732865584373079756135281651680121978375080403349286338389658975385359319165293059485975976820695133332520008292299048485380626772759521963460558300943418000221102343964679294625033271907452112338443898373992918670180520260073194610811864941786643964862875779679885030101480470238520855035763157615410905284106379031449638413268622128645388606404218860352743473812138007790315907245953538296180912748888077202172290966957341774112157010898506757234547672370816566746054655599239963670668152573216912757678130336752988288598106446186235527934531424949159635149346878834149871854292477572674682926196102914023248057038639388506163778357814763055702711688476355788934506737155167209984588501748190228281683369900731331095925249452964026612305493335914053057959299528170584297794445714892066052472486997234649407083389646229469643116130667919861904894829535430568254526146843493738423373770588548211386134362739514933216110693582092000224945330887156200064914256681534646533363864969032784780377234407527224866022357149766637179175898651752940033755971228076884423449058686912866895930850308416667541542950015822347166195804803405435134955966839636710273194946805433220024816645009662194095856681786779867370957068072674048535720002721136980328242673708489121175937019498493899015706469080458250694231178796772506275524750147442548450367669116215149354353951404654031315801138640280131187376364345343146788000099911021012009572755641827467972309778369743348869799221588113330797362386928860067108423281539518967073942223281041585033114078572671626895284811815590530308787082835277400005328031247653475731638726342289363539530888482125476178335626468880807060341774633026820067458860046225621867010534156300976465743997088869323378194185437539353573217790054689894996235533069237145205804905333609130381838162402203611896771145802486195611379140150803423059529862916247374859679352485323651178869537488204696757314285719595664335304863186302014159284999906117128215451008547353632667700646844400640977615461408539763075537991609795300989172598922620448439329700888918411832821851383141647710415997128972801089120276211414346284432392974372180118914976488036238766992168572943845726800047153220155671081316658013474172717900099640278200146894913972464869821515619558628338376747179311029696076578309207645878796318641243536630619695582212591523659937343283889118962942737385422734683428073912367513689635098079307136946378546761626692893241496799005674572877652282348957139969027016856518650508347607759377061052819078460805416227971053040322850872619001812049416957002583930164477907484044917159910958285665426676901806969305177218024529870599553387967890417820638577374880805232480616306134128821744190516055659504761970650714768300011872930644419268961592891000682831058782189507414002605358715611666554371906005678753228499376113798272962470546203375600327583216576066538971211231627149248962718656966398326620765065681480773093799211257126394996189993849808032369638718134527880354998852914307030946733719848277164660150953148348164806003304885888124173688528883861534152906275935368196469752884687392701496000044240044110443652846249307001597016673171955177846686216386401302643615354463730316754468120342656605016003502601376178420732550663301457818683019605132742260111747405835940375811968346605747189156144235611533168814572850936196813227577648440552571739383037330589921794805368245687842285926396087567338941080162973664208435105811591031994920978005134690090252686629718198763076116698287245924246879409188264667560691146584564511852199282439615514777483204266359400905723292669101704645090223439219161902344475057480803063130474460057010734580794482428177802455054083659228968469538508592488180549319967748162193821495750442235429146741110578098852140129400407150999123671746288903418015475713612789449497447952880449870211596337323487470672291707998963266244771080811703770740046901943786147333292922217328492664363705614521232994363589651119579010212989692488397232489179780846936585920984620140599152069034225333563700091410579807480133287777913686925185057326896176853934248728837174154728164564199259315170159293100322313082615881211299124584721026882206840770499422080459186849109840321799201022484111839629812743691587105445456059047637904710970370548374621919929454788161651696556216121095035375813206373042923106160878613518513508192449071179682708330497360302203830989650080759318414198737392182160685510306646062189353949750555528295797549076294546610370222902043037023188842199914704069931616657447971920695891911452344593364357615754917221854453460777682765427230233023887598192387313962229992478791783550133612170874304308012573037058893546080999302297812006312631511405675508048373935791477119378723499755920352587731556778612055303827115821162142765548123059035536475238702843869182261653160759880498566011785972093054589088496322900231294260831091163500899919455107375076518524165362210544919538511223267396183470225956213765513361910395143330863996416675670867075383801103733406387575216764834913080583318141756276660634972846908407568213472871740327618940595473816436623199567534765662536096729966478012149005647443280576598417637833929219554012871524678538808857760803612499379747584577379665759662439769753261737614080673827896046290491695819292242319983448785521723926739416154974273455527775985616908283616895036846446363744747163430408767075382957875962012965685082088323586230831956527957615864745105234949519623378999822605976534434321011443219983700388016678099024225541867186693833635222092494769520200089376511971408704700904767998027530129575622127122967501318105691781958023289661546571318837615589197968284179303991774773646308496633105258158256766809731465499402039469251158488232465165906268116267061055566300622059944454501690482382997301619777619998578418166545140366725003076043106018648664074727760946264290246049929730319960540360578855537025107456220188522974735115011077390500075387136298204644810660918751237605926314666454805324013602694845936906639715983137586989859084522040385184831037302621676284682674830891815581835839797150829825241792505069741381731317157371325621939030615260083883005293920039628842941942416927462740132466308698762185102837481305245461402049349212518853620089712684415831162570907952696886938165903190284228286948613150044549985711195090018247073868075662605595542525502992349162195064420790208256308269004073568317642264191942246338569044988459242215533891836245931749097255804777929116210805201401184722605249699166193128135537868625510472309500693487512958139994180714186651460941476875590845713505989727054567022548210133169808313661538684764986115780386804192643766937825683512632991420537519794448937014995294301208115225400079480255183779109576560751512187210733174224725078681862569662974780332085813845212132230687420494610520465790655847420666849362725726689197214313552754598492262151844604182225337334799144756292378072945589000144997925588999050253803890635509733160026166466547473405266077194644281229029571968675890203127638560026504750220072153209568498427610315994778115790220622454873275034965591082816463636354599677450412744243457228184587812730358463912213532321749021251240390755581014816238900079101101687384802666350629829682177069681504888542048760392524371872221084623735926894699189483970178302597292543067184155627992204876300549425824898292837192053719768061566271976734250017389463588874498290252608125844647121377238843377849639935227209264838672706123461396718266227453023675001698592317568547696812969209569821110568205935532893170324000590535098666625724299623699693593314451883721317075255854946486206720641066722864867209939147875592864545461048140002078003291396944814531827647200277062880472322526031743308054616999745056555176848643411183154069941359246035843179176312137848473406249099975981644275104779731516477966821584635244088824005607243903123861725908936881620223600057524606976674992126653951002660327599008630278674740515357004422710641776918270413191795422804673026136035156776286243048718233467427175440978161158842992399032485497424769628127192610388272060994590701036610671400462839988714513952831982812150433984144534345440664035070893387874017693495714663075506676419656997881152054804142466206748239198219922781028052273040821786307583695357963579394745557311264574975381989913353602967372692606897391369683378889140540230657262603095666023891461199514391314436763555272283312149505808178490839415758994796087416970917972344983629955833200476141484191234980628809691463923398766308998319879975112560447292513110274524901483484263284435377526848080435667870480387216810486423809492690240559296225186237680848150762557595465453292215447578016550467406993944072397181789234170957288428530051921064900182945654016251685509793080890899090897674262746147324435778217061775285096515194352618677317140810598433843740520908069674174806857386155314267647216588976107863881371591033114929351510013960085202352882062237098383594113013411895475220075699146334460217787409743321797406883545641339572472028468520675304667627179643313619647778558364129085150488259528591911585873710640432772239379955933067587887703335043251650486899310465818384285852461263681147151537373106040797311045014211741549491544838253677418280741542908345762821162031825290516339166405497709040873854829209054823524936072778658698554099807511802388437859490755634869557613184249703049997076432235888174826448305132474508760771648179085097245011648918857769226327332129405295410162177248164384663724635913028697557612853099023293891820055533653892534504612184687251342075449043876483117291930751107122630908715944357306490300307271311076405039462095618651405479688133298691257149696972339690508983395250748458947011941982937695301655812185341712509874599036966048058056137969308618298679940024156241754173565657268223196635316047385310116831337699846405753712213651639134309409807370490273481415232215000877087109928472809145931007924883017611040604691906259507489188442670124164133699419998494185303964510584736657943756892290311403960522455265157314284215591380131775340556891793389933532812353448452234534923657156501141242878302923887172958152051675547315515468340800115072295135087825771295395006494800684650399023385413614600606590979597531566385205486834916872817231957044773014763309491670980749091574738656510951453522998429991781772455458842633139057773458515362544098536882363452302895982883902529774522558607909642433075306135589098637493852242923301973789148937143847103035077015109187548504791745672461605859054265130060681281696368093852384718691688587863607607463152022246077021388472636460140955461115265691467505552240215624335915401140705741530867538406119271408087140518691222345314292964210506842968725646660028075180945489700332577937239765580480236710279305282015519122061864264720326525974183052789990198082927977158953044246249851287630782577153526040098996721512728886385403351956608662657871556498812141607885714400142575173023965522018049021108469722382483004349756550814158516865722175041851651126723309148383309093711453963349747563950862180424056515615401181433861566592799255379532114803313216804156681496193967965157416499622066941788858848231576259061343652521279354843400129556624767321159017722417064607610662295134859609624452389943892636925473550123909990761725890263811439494610210287328323420069444864884889626999545496658710287856501020673498165176713700177542708699905570751685846897188236798814501511725506998840831452663014615192165004964906623520555105670920675763801577406063107016498858187581540335536904415662534172617460248179389566635920483264365280423276921905207358529534257040128575178662627993477637875641291762320079015521287006837932200169750217429647942194781954649259054372847149319386187088353844487927674565658733150271947587119791583258393650291451032908712111808054963727690632807587327724831893701322068685133612209431603320732985172643527958107847564681979326289633248890664130188582910033718028039319812973338391403401364213437104723729923858474429186602595712099116874523493292363518264805724120483659109543409712072401975763516097427257607997572107063985043353230906125427181387500766648550954290084711730666326465115847237977899700283680813723544907416131997251837530986598954295779980894716510555404041644542170830211093028970698475023727798533161264589560248071019781275648038009070695445689572307574046358859932685280756361483377266082760799064164979187192496251264976970123110655849571215231172444230554200929850178376733684083038796230749750642523540841747339327894702883126501029572284279666033232426835871997854043665363949692339281207960577102870876732671457322170777026582920578574324628684845817292940148784557304007147776284169312174613094419545828881363502844141357937855086098172980611226394970374937358442384798709428090697328319513999768948285735013817452013165670416103814298314178553975583851018060431233567181837199894795117949171821978260941363273141307270425042379380631735439838657173537584363136536823358085461965972273777757773155023562915122191006123497848717589477016352643026101856084725138223726868908111372888469860697988479756952034297727751737517371440888514190200057379818565478536923672178628144727504375102503605416071846359822120840998254735522649854316557813121888690158430346915822303276359386676681338049896935067502536818299840588334993135286524915746876006524816692737180206121284491450743251393317210953633689288620616972981427318932822865530547547998471738348371512216106406972684859847524250950455466068482964807185149277679279482521952377062584927479382411584491535602052190628469932918239694683521970193808684055491572911622081107306576126915642029754273040820850492408971264135350395680509073988201793419974030954496639539420670663869863493997320179127088635792801132513466382947354691542535807634609261547859130463574511486487295005494666697278445089445926878228488265247499451975041378090518304798727418887830300446936445785234755155940939579084643401435360783386347133548595415280192743608467830705487341535772781321822126197869146189489205015120293188017412747277942081017805260594378953698225890946220569749246994981070355712424536825005996484504724968675701332419427003666548759186155393779346722920232600269225418621339039892468468990211463283682583280977107327543092871161924343105241745626354330820326976283427319539301998391142691135232990047730121029592865078884882782676689762667869581949069637019278890412602944214568726786202545557408898127394703193375098333622276857835319928640891236219704896580447803149342219024633072793562549062141951955894226061220764713396976395837083966535852981417229454050573039586233477777821744090393381285483190023007053504839968873136901325845662112813349037144568729258775207444233647586497208885262159094877136977248186561220339087127567742030430125438683774972194922484166371168053211827026705843440805802619361019809649943793624295913230804572462408229439178279327905421136897040039775919159813553196838353982253603768928694577407946011468948985310628261290119482347742512420131169041225628495454060735180010446784241539229162483503653375017451151524627645034735281296281069154814198809677370936370548120308754475820447559798860661103423902927511406889785431238260994082893277424501977994409371611233107283711411515346610419789790529443844371619023360727618946513544291774394833224894188609713845614975994053999609587362319547232148674572151467940753416215683192317434891665675556900041425358684601285951658746906092850341437868571915975126286308806636316965155918929292871349283637661260895982644349370321824741426990034615302362308304103484511879726204139584474749408449124561472676158856285486264429850875448432346038413277052145249784901177317017987336701034036434516947551843926175040886808260303489286799362388032836175346058775960566673321852316662582403691259005056009671588811319168825435600320889654448671790824797306974533385768727230630739700699143993301480954513213782302774568740298053091588910846519873882815425270518861665890197728477995445420479462068259984952985441013051245119180348848881679460860200947519754138201771436257778792454913531516599432015051401936612924853372661187508470910931543118004438591313714685258992426520826322074239671013093536910908177970401946889269796172507190490055853035863175890319361365313918085632043423292283356631055971873834481318231974820069252788460470386774388303608789217187766971431436893839756774588160924137196826980476154376720660123622003814211273654685182462520681383747950206049102999220924181663352920015623437492503306822771000285318210296867240489901559854163920986567093287016129827587633430208709195582206129542740590755828887657896120378454178641310987728830088984909634669950188698418103176873485250225671640822300408078140290091072585518941438055795665042024972679888958801844010718017844647220222866011421987712863128426454535832790550653867428850338771243935184508332667309168386835463268578437403252845007114014382497123808082229237332379000560969214424171055800161475475592967248509268729653828383010507234711143494100676855575963299816395898755093248285641936404757831131438972335964565864668270279548543104291184224017437663164789729060255360508303005051492131269588617856078549561130908851358230803149511003812056196079866444605770050719968729622304681747568084288066870260638461909418243122232121291736756660164675664702444202477445868237609298461252620508362107744272833640736816924878647592458531582851589408779220529105374506450825280961788918244181231922514252577514128215100883382528912804002831429046501921263640580445053761431920844215781849161598005579746376356311898062396874253993984570798588723710169127921875589523634701334968004686302871410548860229115283693075938347095818196649806399026343139995433134880966962406555591293186946920802866777268459101421290286294799626510305205661380381298054060590364349098572700195945654003799828003934628318260789963649457684457984546374122553795346142169647293908690387427755684739102018899785043672148366596210077373992040310319846586010793745221676296147021471930997168394745734228403149793183024843714153523941235778967650948167196934685639635401435340309122030474042574642054407825790445471787755052727359499798113091444395246277069758835472889002363018171593090731401872839419581044544744904601443109419695371162747593022842685362273248887283621003755879063192838016643673248619458767918792688655154951916402989524748593520231588584648562209926425354617592135405080271416996106408981813650929420055220545752025130024681685893011896200190548634168429363975866807496598817514145702012580201916113104168356541719599398231203136843641127432027700629373826926765460492797940150195226830957157925513993840759410289017467377379260955900370057843212456904464866394400538012392265444641061022907799411287409035350551853519591752150439706968929647699559852929107198600080060743827163438466215358336441791973837886463900414130138602280832174274363865235028308397114106329283507244802692166025226359361997694871982048214533435501555472903326285961373155614553174025039225467882170456006436923103330058906450323465519081285920579429062179465076674670533532072265749149074734423773652511006963724175025645010743372751599949409222777909794326336104452272785089209062598257848955117165388082053277803544582913327209931026175007101359988652519873775422407045102372784598012763397568071602523713580687007359395581712282931400336195694320377182227957365307824918179310256072068795307806534138228284212257548876595887644643534646770023385036603154196618172207740813422652211475803451616427936262897413251161970715470302827056415807822160283188703917519017900532198218890813543917087116367399742263301538637410295909911247769764684764746965606637505862121003450773958161598589977185361839532542514387068016963379950963165303478251335338179644096374026212304641452338288227574062990894550178025310108873333848792419132925401133052915992765209586108445149981308730934295703191376427654444405860338162519359412143999030355785849512801574533163420494941030250511036457580961861514908254790045289608764409132840929872179099366517574105142672050197149363083990963173667016367585781737799718328726063584438251278509371433297787797226535635162216980188671015675724900521959053215917644384211393673967626261891349774637168647244191009685350677061263342615244258430660773399332599367726805659934157130299896863959235511377379292611928625188292209255545620546527089322113664595440337756041685628216625020366127897103452276870097912515704307877310621659766197016977819493910202866459524708479354005919369270697921880196056743597570666032934388619198902728720594872290962774583185027281767137153048299275148926326314194708412234608662227238105698599279658916223265564847764884276988365124711688198715016504890145597177887909107315364650773984376938735314534307882120703402268881794928716086983727559957248383025642423691452919447762244920883832795558587071351499251903968829253857568081857699636905788007293635863966501430821554743591662329433689240238353486782185643659849307414313118981565733408301228926397619986341653466326142683341860973519884998181021437172740331893285294429250025500550099251811424697872466901468004607565228634594910242670168965304290730826677681733522075161079772801507773893973448458074845326544561639177910266468154184515153798123258395259572444290923861285933511816260379556348089887790111782142735373015552943769702524479074917397996939764242130502967251703299228577399377728098338327083923769616878830773414264429969205539407454687738480678657682786612083766700905832812920817507166324164047047945857914998227439652219075534048405562415169082049839330149717080310124176224633001835013372315667765153613105317941983737432610216347163848950312497726412825558745549608363530808780382621155092312106402859509707687414924841363841378356586416313090823814916217082558409223730030035953418293394808519612341402644153145780884569566680690122869512719206194536054779372859062063487709730971660202355310294595052154793585848455245125487708574756016003392141669977397141182093977709146469781591520997584175834705442607083236245113931311854475445288950210452876416045267900083166287581153231939699537537212818995744785839100679239839349670968164824046855895017219588202208091966745790779234959096781852413185954523901095135366824438881568173143346478438236456937745194365030330192249519946086957317182594862941960909052704960878777712016876013745390565367506084722309720661033577411828590647409599151772804900115849034929449336977299746256124736409112865816435814405081887473446150967769404397932714412466657265204191970218774634911676508393012421130757375296013104809910486286315324063361883222421680733102556725796879667620728914905165967236468787966094401948278703861277405534410192621620941762606057390111940641336892459054755864525844934835465979396981079768534976446083866525040996441987442843431744246943416853117983363061062496898542444513549350350057394938714990452371402770724092058923710224649978912404620449209598985911868298123914622956398499111862973273721110010799757305301308516969182787358317704345599219790977864509844051265031259852788216435324667563862143418856185502757536714759677144068212297554180225364286490080175202901696102705820283789931223501634615842901039840033057098793642305216387648694569261952452721259929987955643194482086688668628607650868926373870362808825596397708493865779247856063739635832139038147204471266352821439487447075411973781281852328183566896899406299089947342381669983398431711975369530832383479417445778543920225419717903843529734283552293253780751945484202160393290294100108061775495098035342646258093746727588553649927874077019628396045668113003782295354097454560314848303969220540191570249425024038085151180902208165547955779864886441655576020860615155481928797047124576629280289944794704308706303985480172720109970486971703547244428488613675616848518865616180636603334451667796518089309157460311480508676910787633418360291328455863447176508964889784164540999798418363301115725792823629983435901536624109300109680587976547860781379754478900072347008172899472995235254117826257137221254345212468363891879559497861437247779132129195263860757455043650244841365069161309571674205333437914802781375011252192061857167622136467905904020408784145799908514250126283746663514478656125292938782732486927041578545896740816134015570487911472112174296314172158974609732342379392325667292006911685308522621728303024245194685287350032518928449867219601540510503200085578335709376758481020621982618280529365711899369125117493707994835403573325821116426027961271944446525340127651300408571946211713003007381833277748376825037353459067338164871043450329933587369008241745670963899985944925840728424472090347128826207912659789320619822794779994649001815713621298247849360495225697746760597702360659335253766500846411349726134611068040088546332817664475450920948843051489064922320958705546110363626929936636537125478131824895012226069376589609537122936594447732628159777488018382673182055246786826975411316791869862627764375451867251932181059661188633281640546636205757245967453410467531070933664124915781889494595123550266265082661365701668205350527571193535044412175331152008589928451765299112383263983560632590923445163053248911816132822090669335627807011886462713643137054591912113916382970284557968297646667238156237717534680881806930603141905006038441230152056588989320441019890241742216128837280161966708643187082062754012345538030006891646861801426345409043221645451204500398767314975048284868243112473067554312012389480286534859949197481229569026511326189471089754821238118917379388594636094786367722681418945777516035374865316571095172946221121498600360535799108534491557769620302571624821128377493817287081003602430826454784305804484658670428448736552071782438521248337136248468991638017570712674644184920155654857656150681027273043114765076027640145739237083807903556061682205920399397821131475406904378014389025750673375760190601382989184569710665347555199708483519862181393470825346202304412254314593820630595317506231116222293146264992810713762329621041097881763618397663132546907315214618163937937084006698007443695726763738793327059652804716118906613730437733156343474791373843724387889858220341705489997257274602244061461963610198867961790194753624599879326463242982322947623956728046881003321185167975952565582473276421281375978068291734730710590875900547126928577991017317738678146924212915547718972307891563073437482985717099099665384825671303157858315516482772581135157943758643418386295692869855303785610890456966762594100921433416116712945913934667257695877446053449062897469146902800094799311772050045447541752442545379391795248119419618015753487805418159813938515524483405005432356205028183808347859439210777623787508395837001157332819148573660828151190896991353266992131588006715437677162506670893081783260818492745662450172615490500839485357160692279737128612837660404763693656471691771537478069339059076243288581860450373039131145094057695535301534610793400269672203606697123782943642985190497631535082051264625123387912059878838131553934936875988688708354904130011863702368263609700323956473730799512975898164947132222321285127435037827947573460146787096992195521120663452013350775027086072986604491084146138672608918654091787244456314776184570180056300350653571213666421665821924099410969912659105080491493138969713209631733226795126925215489539539436248438016121456868486130998511331328541239164859411176134118535649946892783902965703625664733039292276687702547031649366138515320437621599821688996216467348125960723968083881920210030541954581252333498977456133560823110205356285182996136907273737373155123351820139581235722240117395803503123464609739572732272704888781541689378001130598472070365445632203230366562235814016642936558424888844041044897053730675311872544782677200871477702560003928464932637320854307946958890134397884311009296169583107395293801485397766342791231560941057319079133595982642459918716182817054994576815748496170123728004666600185965824310764300011145521960363433489847992146490919645115834740896586093912141629465538250670499360279431672743191132292154062205537862766925524984405573589012866098440824625991757358681803863746531597459493640618571842650890306393123992417253968149857922816827419994872997605623815326012650589138928271727356310166662921397141901978345279413472057440897940784945251593428067639286499999016717591252042120996032689698487891925740657767311586437756303991683217020183173143701111680020990719420707297369709075789249984058222600959390757358309855305217686912952419031333566121300105069427048983323954147657781880290202326523865467684706420154013111795635368391118680958968473338097763835921856187583525120921098551644490636854499579069785864001328314047971332618574893601235398210424136766186216876967747275152455336171770984381073163705319632956674850247480591965664967494199757826246136047539526898056238289465185602411976421481279457573856324694907425469098015181155659490293718081375244500460296442209791056850644470543717862458213360084864361056314916444688998647391484109509844530544258996706225514288031275314305453010174123968140171280489188266082728390926478596102634265429144512507633681268081794208425444427960209781933191327616792415367834211360175806022343948405146416883882314504685544100542316221640587088763412241285648098918751212652341108283091676452004393999789139337204745453585903900641894606109318011521397833093100751128933249059464616198548292505722909460566582632067290867691674836832721610210444067524071231935921221104036716507028918936687467297633143140872963324512788015619476974661595598387753803963987477998901138277934572962917864065387246387327727733213638874844342976277100456724017758877076074458512531767856602738447937889384467374815038202113484216561740616578284921574450009086569060499637858793996067297243744461608275715506536255631938642634439057961691184743320634575469553984167783803604812526615457781465644247437023968153935095589551922404820040215594167602690370987078316715023535243647670846206106990439963854836191129421224416915817761565881808989244179833964302318849224671843016256242509480344804883156000558771866668295086277981269172735328348581498349614889391524275691249038918718211407213533948760624526096566052672670085904207858134640725737921620443580880628591916552861510607998147750857343590215906433940806699797853459889972687729520911428745464670579233485960925941509091378813280671553874808448353034205340943685822118030515538707083588562323955190175378551482934464437299580627944747391466102277996779562205331517655932938049801749436863621973887058961781339574728091257258111256399362757943730753706767432032162308901364210072105071697017539327285332214885569942732666902083566044003649261330124195371123213648702566417667388259782476221921345750619306132819557502177532172877931654660904163963735707394166596267162369601032849161742281967921841349337810500990800443051862730479698903534783028425866242604118902401722825538897852247552100386072987594403098476868200128712312403522204979328083236619031303697508641135629419100861949325016382244516931158047237362642964159802104859963623415301795806160303479696701709042867498829946690680261137206053607477993468809361111640662884508366346353393382536552743858315545334712771265304704757572324296872707858189441965142911167675167448081818704180656355126449536276693753761270755807829772337122134455765340463680328029533842433436285242671536127383344815651338822787747368397914140076390069530042324949609405594791562862207669999769968530259315551969234106100235187045382277450720945539226995269584966641089475973380792499762135106282737582801663882815841960417659698497338953033521079958518262673693329357807214820896724696432824508903519562066419394254037475495635853784772823572716794584330688743760074669484741457799551159679182293862702388368919695793994079096316153792895049812647236121907671436038894135653967535039024890413928265310146554571510393485190191939014872423900045906781424346135946067577924802525378547006705364527725280890108254329746715043526740700914832559853091577762927343383359143380704587907827058911945469496826800119376334007812081054138314324191208601883794353018138136238080897515089474903213807597431989709059579652855176522494178003662581467576511952535835424109090629567490013430111405754133989731478571278348701539461487900200993938720404507790623837163051790353633880631348890841467127957688711070664868193722052134655244349454138036816099348928680727380728605560931655334198243265334798821374439219577724224335489289869325817132643163670489872809645613209511089742564452229653765361846604709417349487768070939324274673128421879381867260743563173651955734363614181095800800644026920929983549131680419294881986686216207972857595595074532770300432848925149919003770746231984939674532183545806416468544504896712093323491288657162006371368823351243857684299683802664551988011741414872202835087876299310559176214387676669113209785949623896395776761902181135731794839581194642854436596489594831499645818264292699891427029920501078519006233612194904607860680924281239153490237951237216127061577957084063440692424867821798896867631746941510669559798494585074265520071885915453714327905225444621262300906777380276779645587445623162129023046849299211419932576144495300737995757523028061609458692258919577781977951854647111044225978760321321060796425985022743584779009997564791862458836234069440397029067121642737928008161677728556156087179462519625943656214498616788810032906268091363099624823174666073865518550363099689009897109273563391472610685689542787837421554446450902387872027137526759874271227924540005119132739721809721740446281427488483207092007276941804355270412962016774903174980266106606985609219591083014567050005443020541681703600832742080083674157518676390757488768829067533881166345481074837968456050181623252868997165324752914472511084729129045510121551948074856106623490824304726779118852488904221839432828324975692672721607237242693086300689046926524871257099281355576981491272223056145354149862455391513100307247992957079725254355166714349429281912334129077122480016651603065422625644826429555459247325622239860135965997527163448660874692410564551149345308618617790815723924942747641303144794266170225379675762850940325254655327127444560120582083445905692643275098418263788203265112821678361885069325789986794236781414526073440024266395886060757027287148808371048448949112718606200643875036178931420553065106951332335394659473459471520933020917859895936568973873092388009015476519484093293322922249738737832291859420559484676468085433369438941544316640225381818565033540740718631551626123565603041579296431124759339657894605939205688252495095479677344123783777378927069912783944288230890634258932530578223863513102006435076094687870453700543599526630017251737655782915492703084511712742885164315164186343865542388219525824909763658965724306339892021231199822317654463724296286613210461735529581968923027604529621762131972914687250712988139046857864881606001308560277801112653799680650134277433450329414013848549155374361713288547174747378061747391599813282132008211364256757995349616935775767463935607696204286991385286748223282268130759190692908229670298516424817239913599852606040137125429857999617731258830679835268240214723290118010359238515126848436412686700833880056198296450300370562148568238537366680062591208185754823480122527453685908333154100775963311465167324705118420946752134318035919178777278221874150721027824220347057105159240069161842257994418148343136688850962359317935076147591839036332710945672470445748570695462706521770399452408699448801002605137722064871732126965732045674325144479037281458261041131767197644863521978304107741112983829900726338556751719246313070948101291653652561855959875617361281877149356024448900505530508229623899886144320090443714330026655250740407683769221307687691197787651338308025996464900428579209852251162594807559348147876153388093071007705602956164225561069247226841965466598891988811595754896690339687619646013146982604826329452732471637687612991780145009558399660142599611600894066393568106858889826868918420723223931122196219831923138845312115128326649260812390311858795548233275024860704365435502048317954006194458442161071648062730812831599422310443644240562223479327294307132060211260205355460154760583971814877414028551317180974018585451856448463614948497135955202070386016924391183581157045988198177780175300017690030532721152303609613680322285647122939759197813655817015426084825955037289485899929062526977461907870802893306444537607769820570567315161595764469475804482771352204438766126865677098864868509088105083813559014101925665635195593257797506046002362774856737333465533946975837921334442548004053583182800423776532130735632875331885189479724095104498818945279983378450330998916880997089747716421091550811912364189498569382907079486029871451585632577590600841669571992867857516050673475093849676710091423776369252349284440054987238950039749014606246061700775971722399944629766740245125710432989677800937177487673645955488231480449443694781120059493663442024575005143477182017781337251207678051328235748935866768354635787281945175577476445962827271411211120773257550268288987224742081220462136593092873627573987446479368637602707991358584088975467507557881110703176562483662658709294439804361649675250909239067385859445766662395129543239645548625099923214992195316625495233744044056631010653956561582192417434655391425971093680040613088344997377939757716924044512550451797304271978073043444642764549944796668570243287481779629898498186504042379344063291003528407830591351386737262211554284647329881086682581119539295312788793936562545487041692322009894799877136761031020926130201571320363569648766026600902997814207845401662552110610421921296466252548809477940805758952340726608673047924664752825548806771536855766078735812249760226328942090173439664949272038167558863103349100814960859436095612612776359536969082379294202965606564462013852464677763768866915041998007714785218971015842832457067312708900362426643481417401600794889249055702336172591678589886214657272622455015481665802350696926136223132474747809087762570823746868209643320804563635534221033357178701605040571687805860100270299934424078393983653214861489352120597161554239217477625796973563322017627210061879281977263613860415618346761329780720300680784824966080396343941074180887651398805008985001988647412559111279506021481105823900547712696358282335211064686536726987999811825956594194996706698506615924798405839594358418083409189300367339119777334700100384905845233347698617429221267065533438841568679294988996579780126047744279093329582775578701004544064290920559736764559277406020234150222820313648151301489769428332964664974167104098019925777031891643749589563230510271745866348371181022035506825089056292921311444855239592884293557549568663638701668259303836303890343979578179998911460147210405241593192306245624624617335317442757038303592894423027190859144316650971274155178611751885707981885628436017446206560365412153841271458241125103196449839497261077928097674842848999670394941543343072381304048767269559164142483855799858691018103221423297649078198910624941101090305960306633042560118687770620263002865617021125017140535177309150341431291217243031659644147646926858130092802628694658956023416336908917190354403963394542217327285623245887965301004059234745105285835199416042642447910168198884344103537061949202334562842513841486709481302321261699006794052795109235081102681775453012894339686965550981535710896332158500135964335340428944527656141853743147093790492622948166166464487533851039377993653018976984213513660224743086527108423102441383704660421652478050868992781654913558458198682557703021169707883878780274381826733357028816606182783259422271201870666681843884632372435003994484240753469004647271305001969172373933966065260110001062382022943284069770470350545487611457004950177858318451058012733578234922595358336847028776160538408422822188114320705756281407061458649747717154496582586532936539809063260365063882598282452801099005421828634791164297460318348475510117492365885950574851218294641244234924664235953681929425251263371138996117237439563580501128394425034980869866554300531587083003915281852437543590511438101783522441778078561697121177325066781455572120928213260879705710311034801096411679251038719716745301088280189153425467121875459914198407440092253233541667095650997754624992053559393302300526573038372186618490370788591546632887483078970770236425545531514078934472988582161447393125760290373264781687699631948175730141473488847324792351833839080622216230703243158210183029948736333423047331080682820450776431431355149589497637274800154584216871457637958610522872525255194691050800326033932433608195745974749487126593049339403824405195866402359366442022009146909816838739955793157281616401201388887969859741503193443064273272229409286745211992346405196084328216365566155055681992422310924752416125957113013923195459613692265089429823543460043254943260570562567342903561031714356695824449840570668532884628931355280497143562067497039869960813939726486573717130317317913533873268635809479126780338674947823560210469270183687644861775186787126812110594151310815735805445941482680011699375967633830788206218294700353469014677495257468764341504477489158245637217551419792763765825602736959056723475587017078613476523996782766757309022440987731399505859070910533140413841405538016490605441384356350067575166629572441858058723386587734304353070304551400438937045409137412370276602034753125055113828094062309106884973807289127689116334426801975351556296084026614399026219248750781328704725001882884059877668905434983001593638169597089899059685446258294616186418234558253349692931889108518673220187277336971243057249948864657735777469928862960587919938918004276565945336863966878673255147400665272469107664050176623901094382070329848679880729903621666780950712892904182266823926040397701154261318870144159591148772181659155107614547250365130668331053029945480355587569577246659716498972384846199136009066746267996501030708268729782958791870764591016069720955441190793906742280975782359440269597558803144058853346182585514985935497658490052014683165353081664033810775376200108105255386882840034185033910604265332884693013055204869669928362159707087675478062466455450725835856186210474018207871719076087358446158848391861249075948532656888861160083010663635765023938229748024048619254087931103203960981921880429808155891710454873330695212509239914688850221210306842165499795931132457282599142969153676205739547116081845380205405818011522918886514399342827272073582481091107941210991037427192155601931163470051601770421746939025415162243127698156110593179723382070153490348926314984553126643522651103676399586031945624995060990078369455678521454972453913077187128052831747020711004981584975892386681219960535127646530908296284359677057962810814216036690290504354217640580369335238336965309654404869562488742026751657921765497912819359612037260050073267594689179001276642972752482730021335745956306778441189389920334382274177241370639365668013919756802175864543670294708214584390932425428674068808995904939175020756190344770137137023390748439349379488257703093290601047255596080772304998836084876876773703767950620333669535773591263338452294483851436898426052271334986003331765529065423834346985214692625605165410109131538331273445467765189091757933987962468597187751571355892454288886238742064958663464668242837138354350595496075759869198862169545835377550049709244373354847587646457216232584677918489509695884126905482091887027065771849350298068124404044610564070277167258061997308962252935821336852496816468634881023707494887648556873540297576036039360247160077343474123500780441748016351925888967011472441484113289931727707116282240443681519150975851782827798290536096364529173733714907785499937376736996817838989171734143645734177456995639769097582737687654725896610035148943256721555594697296427390994704132637132850085838490685941952054624287091032064265596911693061946425818858602078566860313948047670383591530284734619242519907873080326030790176413766578180150587901987938640770093438098248930964766477822951475372973861282456174197868595666611946095953179374551069655708300199229434761785823400360252186396390823084764078611723711111390320576311511105429695358638331115144169439029866326286554179373242412124840093710502473584382114529370325391991081047815807442824162255174600590198631517998301645139725823512380161635288920863257793623074577990410602713094729099101869452746083462011515318194230083609647921948610284766560112421443952751837516186215520016802116761933722816787287644773209828496178206300090066558602848097695484791584507550819867388263926491715588361187519558176898841475913753517904452273460669194734618801707501288873551300761154577591586144113310012409151487328802898489508889906963664699163463346576283901948622664248673383905193152469574883286644388115043839978103577999707020977028152409255158586053039760160285100501783890907094522296605835521998895745189358690197547317283187125189955828925160268717876514356160139971894364586771015961712741746667734798229084923216845603970469096259456086078764846047624081434334390098884105674211032130535098269143801864388414360102017929170298455093225952849325076472737867993525351848354637646475037561331108875153156147767326315992850960059657793487731223767298993336903276854586433391481925697949649137407006943435523427659857837422867368974696722690990920557284403048926384498829682474162429800645742457593799856198850153063598667415598734494787575398255137902060775902207244110576285555138199691745809731602803421799065357848961034261902460132060138428790659754782972379427366503165730145866535561018518450925196753293820235019201883776383146305627171576303609177736578984399424948058511850280993622210419899762561460561431061303472583084763038541420112595155043321538424559491424165392536174916120073680791896517416025425284971721589855912987713592215777217564926860878195050719916318173856652110281383812952981077646245615129929589125062666793427799555183336535969325228391242893433564245702052028709390937960420158385683386912739920709865303994486193757062147686399684413901789365396853409951635525684762998311227963607360558096943540003937446799812707880700589395776325123447071655221401692339164231643673471683113718704287568185874436381996981266893168996632003538065268336427071007519171993547605997991174569120141067065205133758324281083745247426706285855455527639271119834037554423367238716849830360720947595765454619540619409185351177603666112520024458888349248512289683879057132226606777775243680170739391633744489546666130130853027482656557846925943466585778892717770363171125638528292687479189064924690917857214535127059342789047750859445052624294096537758068235234392444093206261531514376163898766308519315314152478253837556573539941677709060057420559671353145118651423563439298447888782098403267486938941166112352783726822698324616003545093788668947874505091549831552762471157036898841337402228238337177455670997109560944384410158540548103958749696950651964600614696884537571774689685992486189927447627126191668415319488780979658584138365792228728053604654664972880150743759860816381006000969040185556550305352490473026275029234635734563954958753499280580995603402146244070970528702830407415125252806242044252906657233493880483559353839519386967245477513603613702831948117591621970138685082166259282352571862158577764700270774010891364243652049191096482459064866166324810524495211164178452971117632056661989314228021871427436444338137715766258049863010735176992886895138632392260875980735073038637471613833672237341776740415719613836168733816632587126271624093597655639304889276473449001717965314634017648947654466553564332552986914092662801043271133491231060468333967585822454344949987012962691400855505256446157540340911564497989329787958805231586011269032338564468100658111959678245221174588229665065089131828591502250304001922917773124900004030213374111049790147153854824894813826825653258836307881814204486710485848917130356732828211265135748343924352677359475535912588779107515667921165412934471774869916793082828375312485804338348820556810913822264254961385003450331680318640240562307541486840016675834186341643119792075554792049972362455322907216214987669105313426358548919437731287914691219742013307544635425271534229125846010511366281357958861306934204049817568212427929449611149504022703834056128662560029531020223438170846649052510266594680465679434103633975419549409005239229178035648466476131623548968632320220246154902327668955094424834695967379606698971392734660908265753614932102746619753302051614200403254284534441481576445319109681122682225150258692567117343738663050463345411049785792070862074275417961847185677331601037565446680443079652069795545281791135561061756713824096233703474524484726964944682875212056119244127621177628201584444202802781402674527396874192581849817264901291313147664411830448874380537650294621007038178545723585946506873851962006924611785536328476470531436178159049790445577326782969260743704417802130823911629733055240875358045304920919883880284481752008554922573423183845027304824455512050427539843482429854822503588709529682249303621072484430535780766665334744702394371276295445600209086107969611202187778247540712154430608348116433258371302998833616280985006421545675619649549444025204562329051314538898523550063924619849768383880846973498049010288980420012302279927289724249350176969266051932238166660849013954229538447886783341874098407492659411022352686348480728839732689091008176545800185633478356613811546935678851887915942608317523777679561024984023542038964285663982562569064961446130458356440216413966233928408437046768493803299537360015349843408775841171289452117346362753791141595673775513143564694179656495324707663503871607162796011385739785125714431111794689673878457205312478499309273720495503108678488500563283316152826465897922726054710233045614565873422812046640596073929259779780635343749497422194102797955837786414108471334033449923900708959868260400799694459826381976157204250419657236754866253613024331432640504984415777038173697952725195743142273700339787567062492195160637427994835042012529500002615538086868333673452355191967277488918618195339118806387861570473206744013569573353306670764487017072298779458283482703158703265120543015262568260036485434161955204026803992772589048034744200251030885036941662167851774654767601581782077404693777440486918137138873490221617487986357085429127244064196348883149297822968080984945655813989091669777783589901177529968560794832561620196890232272286818943170616315234214641673169161372151457614745327132536906582603983781833293619744541821568605813620135176643133798763912731828112314983409123339977504530368846829660642585067085300888632802019455970260634954317131698977024775078560971493516007609240731126719479452623635710840503594690617103110908860511103330334715679358088934155524385148412890740419308805341340981315704657329745357853335725804706697718302148362469404972932970896887756231810218133038245086963350155687559444940134789959217276710596195830557774490797457821018871244989903993287031036744106680718811282315513600364199684975779809763589774489940168996093680871375414565315579491045073744009079984069204567157196519304080770203379406995174393202090294794181035803228579050669187855969563681425611872618236415285979105112086148137172549352983650805266599641466915660721571206357491827691229725934235115205109086017346171620598730180423195498452785272958681734149013825310138652616350693497860580791910331268430089958590729796016685829503909466608277785952257873896438804282863252278057873179987400212801815644784164081421388280257540919677514000472536644796637413423832703444361167210358946642012161328806323262746082631372980715747448960304589913845737374728654985703200427545884406447282107470087760071346897896250962122826447963198497981239566442763696532301412653850783357258456807694300839357403992316971676201182243678024370913263779011282651756470450447439225729188148302683314807042475972130349342391029601182132172824016903446071100044014747429068478977465598632647840524985241122891071727127606527217174161236084534054533641802069812477233125215894442977783779725435118913885341243662478884653348183365193660939669029695339777008060041843188499500268025456081127332423993534664079402435220101714305839088717858371643571189568745470691657973458029000973616022671069838041724470058456331054203310603647194109830039284680235046319316524592340495786363858585921066519893511690001385187534473776569319945248977773782561123454141562605937977319328229899617180744956470837989078535922174076608353072060485036377825472790248568601620151046581463790362581057130227708764458729426248795192641582712199779526581353172060919693470060839565369776126528264910360030854349983873720403260192555694888283698381282894675738851582989606328848686788776529808804275423550360069732931348745190816008821751240140086834891132365708322015422705454524997500174093262729187232686498537807172580467332612183660561356685860418266529267157063194105768259365512844725870026941817842787559736460868621744534765495444083379186276383579233183353124533330916320656492512238397866385891909951685823838542774962121281856717169640372167246418064328951830488948387360677785724654198893870089265024812864530928814335317667105105425913460498707702512956555763980825537061100561704201605624936944074542142885883454325393977060227991834157117159102238143254443698430436724399420945277541675206586238144768182546593544474088716358824043079595979367479210500113176149390667177984932294211568895898387283545381368889629838025958041885603914287589394477353272072609440391352678641337680470833988878753662681605788484653800661447576902338874399021855028636777330357262464700988427600942541029116900279202407808190242287157262109261437194828477881227564532569794041058240044674159962071874486129464122971232447695609757888667015746470076156749833021634054788374069245918849935701090306904123068393462448020499654483688187591011872921854293923531857268444627064635557016564655251050049145776751327499621618392798163846079450407863846809260060488826407627041654597519827070736118814823284992881752601068600414015080947083245838670675834776154043819805394810486278483236473352704822100771649222032995514035574441416386444361800050904922123091243453849255623011675264905345464095827936798872148205238500679460023476064105148514438155020946612769172625457543176502512164474503004996766776383572226161730904813882427693334551704695899935888539326522231164008409324275365223543844439545195857397752514673403022237398845307406535862446632808265195493939123361131968124695220138109808624767588173840772329418856961633381425445115696258020283821904972519191599169305613458822997766748235146212821372740113615345877919312455273486651548242894503348063033396123414103080182475222261171067333777283554999388627476351139319881972194958320258055807329599299402710278871591985979255232864295825422889986728116127974105987534051079916444820630952609937471633346703236132446790117089036022474780781201708733262796870520352968633416119717747891701877050362015268328752736367877746125711712096822558287914618851046591159213105139045973310748929455195263077811783311051770375328669539161938074972318683753260664641458334992183976971877682089564952826466492690093741423412653223090202678073237302645909686497825104013384217220545507173250731439487887907482178065106854845071557792603587578658766538830074295647585966117404800945304750358347825016270344496635052647162014212641258155332189928901892653035048735497898798637045536021660484019512555199441539850970341505173531386140492669668415680589680429547383073567851887310920099380829507993377567248195427040569416808415426771321197972523994705807403384877078441746487868563402200780017787196832171730361862401452699487014291411520114648665365665915065652665070808034021507276940912366830151343176046003041605564883350498126529427520705298840004528190919958274611420304379118079184074191918410199363146475649587226231673278504328693159014588904322837144320205253725680838939174667037038159546594008362351274870175726078793245150399309053310578739581140009222491858456709258855624325432112182484746769646325101813069597600870414819127164056044505452589633187149596466244233346853529919977218068496100272520405960140333891480260587070953336613426396386564133291289515204563879294289929669703013576617228296505076225294938176064469905768076419450053420859698106571088315930937166650997905290812589016429477345730722367983435451813706908329832179362393130257031188346203992798532084222532731363091309445517101065511403938088775331951508156844799869145115041955156295590403810590436006148012443220486219697079307778149749633862916391386974970251769096412178935728153054724564055488012179640881419601526601704758423853542149448751232817767577606024218967028435149521346889407268717491020843679388650226802245366707006254361621880411803773459762336466502866643845712142773995993451576482979657246581320200071024820178805945403166610417612908820489506202665470166492115760298139009515124068519867124829824466544325239180636143115112793094947244700008699517611941540941539700226698191338927289821669353706804415876460533062930400500585889338405188096937614575731535577145733655887050995343648183423895861731871014346586305635747048752263943745984056986169850746220755030057726224276411864138944560209599517518357031732609118821457524147348396128857390765982758631665325130332278084650361680973340739270299863901531786904165479882122268233945913105475906969141336700921247232698936281998177468972153859165124085024698419089647756922056053082995626618082320440182162687650801837242489189278851934251502329284664709880741571724193223242873034001760168293030350877367930174086315424993651883868716976828631693553891412688664071266700454348302272649673495301645006210319846111618964818230837555792009548937740286322304921355215494640683281601820241433425685185364007071364765588325303863513706537210878583872903138758656275371623891802289290503838083662224031691629407155169842466745740404397750251966018117726419932982875332436054133557899513397082673670511740672799814556542749336801306868824975509568626463104650668421584338770676567041460868472573522667617271597054722965617618816345845282164572143881872840729868086923294262472499529663211474835184622612898333712352672449598793947536168839725432041209380829936452069934186238587347340072907657894560763388767195752560567077830161187102846226042266328745627726066628965732679235233468973287822489205424725031939200222423618095232386174039028624557536452626037438402321062711344425728550079721638437815008608826466372689838553075740004935884709659288553119304323970414650428867055740810755912650517118986440868299838888462585213340215135934677934186158808780878515313025396231599661561442849618898303513293511802302879662592110309765666385692404847312867131724497940919283790094003373195236585992181817721282275617476275796444751094722725701113690062437698522062295777391086577356321830527190599162208481044675596987237355373986478698455547995646992365315804062855622213763488098961076942189224357915873789818383908117735621119931568483815357925145727703721992932677022329225893708998758043648299124521159501895786278595613076380050211558883562112103393596706448690950683372858865141216503250519145930000147253755760041277272177213601408330691468935659609163577870740988287590871318954351639387210070973906019332205630591645696323676139117743027163949728663609710066008247916416131256678621305121333139888176565245737316201714766077826490238139221691776825450736227514498654513169998827766224257812337423735853328813620782674104536423670513242278796780469200119504136860725607689657115370438460313626199620495730643767240258037307983762051343494613982573453379889140433078614631148480718899741324551084644821942538636068785343905595201813334637947445336700819253170855585687582143917151798760875046082937387513272207676198430793142844359442412417730522448527896003394604178275125391554763560404319248376605860139029904336060457446258642757856148823485073863736687235960405883331660842315493960951664865063478916850797180801109802371047199156519371785173538921760344894211973727065270036048634632669284692693819668082402378232099023102653398801335372048640984522647034544872402235435938403253629428429175091747237472199992977273499855081437609033717667538356149791739091817633287251972359294439139477440125767955999154405580984356416674811107859158985801551234999912037696170703459809308996922720033230977721680207557502799791614285744381679684885362442036325800795483681647696022524849497520271957754996334163596731120697185440023314147962718833327748495147019856691017921371114352708261003307384485481917088535474846431717417776927243419432023254521967897785667261273630458951495791576185650719852371888285522244349606432531852540172294659596863720191406791264604052111057045283399105954903925115271586815221115499397673994166572288394053264637922008526102081786311145485778390081440114286956784547171129850807983648239841446683104576253283017828318981375724126931869309591004884935673344730380083346126684481463728633764295069852444642135985625147533254087370471161151573984921603653537259605539156259592749632941067472302876458040315707799946212956756375093198310306817914758881610717537279055638921508204787986514828820714337615522351098461933474973041029081629066013101699986338054974353018515366031894548099108260601400514105935763257011396735337424346023776381348277558198213800847155664943191659411430699322240079049876507321632509251620824562283501402381143469078752700419187815197193840337890652113720650920368885651759500615656737373037010950815311919677880260380800421304238219256001150866612358660350059592094614418995511993482735325903245562235684250563549709779370788375423943515211195448525886069007396275685471466112481048508758753265784393922632476018878554650655877631866736747505888675429116448384355198744995943423803439917717028193426479292023102816235741007793483116073118645885670784977819925711299544422705630366678442669869809822596175792474175496884913077556858305709940480774219117822688127971206525857010026374413864050579276649398250603622185630014138148328918739675439291875436248563091054961035141406298653402706446205792217783907924880885931725293866893880576299105541434617072893433319359300081128024693537394468401815398608929177416800979455095863052482903698232003867220327757559591692983341036441827312177346924886841192190274808343002621522521488873626595585404313812319875978583749767447458817256525257806747003381463914811066605676151870248559712086365143906551960376387375265834397770578508536089627646069268257276446932108165206373205645731956678490960997994009303774274321295539979947947902795585832750284739338749745799782719850114977624029835557352619090933621505749639248584052226537746966381324143198555137215189329027387908489425753105405759081509966621627308373589672697836551006288774560183823471338048615446653572174040524616062118690730503379227905774978534719346907803975607563922180897934391650000910246752864513999279332945224577549204170242000266113329899548978486877640663236325769728450569502178311782828616234245330271460590261071896938388666382112191614357208633670457022655127057124008324741964738833690848968771001950119001155464943105626175471420852580624870983560088030253504018514941630999025676660613806868308423865681619926982449043858210368730957582292702654376270736442492487387306509705638134315020405799055585328605999304479375733666234693827830299309950901978428582983055297173910894141939114854530529898537964373570802177186092484799448825311388554455889480490900690387448986555007666466295740216771075202517540151492912309422976718601493184799942187516526792748369853780780546935957835140115056671289006555716701997272228438340218898103506489615494496667054663363975866587048875506233284863259251523333145763128273536244159460217634993457012020796895485789748752860112684089365638384132091830109921141854945769772395235470740870842419877930219348798604505654049898144454056731727503066162090910197648548712576646431093803667004610619204353752945113824637530027671017722324896298923514640804243834146300199379800303043013298737339952538344644148587202411019863983538908544368232488048243213930227646180847447940986610283938106466944226726447895779240282867316920503013458226898627011836719797548320127865030827478207503374024026055342775371692794700473029155806866124349065113268611715375467002541143059565963163366175889175788061745673018237137032926010723579033060657199750418522554573606207309834151907963221448524484564321619454487235034568288952561184546271118011872385196706901166674016487223280909166890020903471289175805528449518627380621700153279739890987003405495848655314398697190120979162169698722173390306275844935974667873587406098251659296471741238558798150436709102666967359012641603042700959130086240992784309906661771512788483142123337857729491010609001891760742986830352911443372400453429162027675492697274853807822677777276385935931646164097314643780718276888887402738367314479538107732056286997324819741875473078183803574782736126225749962452492942231350184662734392536402412809597125831982122758201172338329726081480094035190628860303651385954729428796375877756494780113199808692191571262062839242948238665948493474149729961634906313249129806538994667308623666341722694205618181321011256947957324600996199599434819199662002111740380789247653904828413509447730420759205675108474869275359284980404667864670247580423794772547445649639911048611069085087543831046889191120057791513357639475327548267926518951176443024731685119210379024538485591002265626535141501298128687118959805858945681569465780381007991409836646872321303991481049733348210895937736506226100128631927770709687672466989462102192617134205741676245497334584714471867726386386757256562825001289925454948287516287740319546415575763639330481814886530838618340600390277330306569692509930999363120507209978395316866872496459386191008997659522136629695335678684441602999812576409311427890504190035986194033246658769215509739406055067067563646759149553498437913504866213622594044392704469255204081347367067469453930480049173766862242277145126310580828088275710618224853153769302603710912608627163554856100876973943694605574253119437190088961703340980252047101546974554572243090086789031988815487454703444641504148433406234007174957500900091747973271506432574729205467695527026991737138320676560011373960986965547271425657969521820194084885313993860289212816680344870874480887960761899861079330562017332295708881253825171459662820376461011774423892913438677894884821741646371684211502993532522236867228822994913898125624005100235165944295961289489325725711398147239575413743766907240100025827284519152929017109569985083318549619207711847102368565027389997235843928278789183570997074207452096123328976605060822306136346471774104274793732988788861389645167886808798999819682193748937004487379573764466146613909494478103635011419673055058748787933773600580202433429968287649456469396542810702378159938035607856755057495805075324010313426245079222349930713723450640533391104973447337649220853471004230807210360777138947720597935967493427955679297990311183540275034976916510515802107447437490974223842285742242833785284090463063948262036291856131158343665518145077090343053799481269588597377205939355193906117898556816261272043114274740615280567174119327496649732023194028421974107073319279171689254946914673049250267232619510791848100109308249118815777752999856241306776756190998954630890134100688605867119818174181376239282571172138487513022353252483033575262109623109598793706013522009746880052821519855338269903768459324527788725165897599768852657514286484976450501663784364575983967062798224369596156323083878392253721748685189931550669271407087069128536791021487582348007648702811893045942126287672945345400526089294823417008786005612694430365843794547746689701910036365334337449616887108046861784308282644469690754196194169083772114149369643278449782312032182885985627186779719979023333685389697535433946121855759099492897942225847707514806836909575531666531042535216254793425795918777593238394870735669048623936109428442564757460897712954069991044722222712142783209671481630888175455176211224558903865224927859742173489879819173226364491157325727764659457359492291631143932567659578775898808183434137972159633227002033507934650871955005088720737194631792672279540474250069216056990858485322032008135035656845840671409895352960106387100657846121751263838440179952641156274688185378734975150224902491301846089441983306520790173169448929171444787373225312999611461805545664634354236692542359390225118195776384053140581936757887117103662774663633291593585667098752738998624560915609614317671287386699158416036882993932033002040028999363054713676078586120554330327139499557266413053490707100293072297724079238561446015718803564473939447858231119976516486612012309402378979959680833405225285597867608300134216229321648788930674445990566723036981663255484854164305269779934202100936340818249573723985256009478805428614211777880782858701657657553810931753960902117365299250379445354943802232329217275178368887645537466383973313991236587392603816187907078170435496246272983643016054080750272626543039901344200988879801108473823705450405703725245385592180919800866026448053272364919714879585563721301897330691520425823381053216883288721838971505962651422177935801475123482360798808984670807752344115779510175381736872895250960682823498963594664030004670882445974603343550613753459700212938653486168662613113652455214279222417806516149594964081115487017016765727071610077079107982751045866839138028597881659936518904769999122426579142001383979756216153484423812086917980324641045906193922998476261453929679138433157163557488273826573285604486796841596369766060531414216155900622742198226878154700543764832016257225169019053744421615251827126101850410659436283499973372010352590556010793318516328159391854630260120714033160649197400591938540826506387872808105559383980580264861039990602204074781416102047511017944844599409203915688189237765924404872623277335722251357763905017373309477367344829963168641868239958642870267125507825599155908520910626505412876070145864566607722879321258791929801000065655445821543588867417751765689050646057545729354860271221306163587053424617597959135111617672501528250031415579255269891169797412056373404125424171716284253735603895402008990609688081503577195485910773605152398777975738056455280597263117152037965062253398272301098878796197406856384570920675509074198199589081905796732588498236777699487233458494844668191676044289979568499316580724961988914336938149875630929032121778361648104315740850103164022639334717485686797633733878691784420517840473559636287075222083461516756644538247103210329835790849264193600711920011881760658756598628497776423832741079061053267624689849675131453329973165366340669945688813031968207380237391606979331078792318429094198940457869887551410610272542865105026364806078402284444044703322023249170099975149203620550932612976108886571999097689153909417500182085506014383310628839937023813596517511147596600073907048190253099867316216445633072663364390611531919262273796918275268043639582215914051296630059076751423068419786150071141997167634609187753081655578629863474060028031439232295378832539866929732945754726000834269008760229613557813280679659157246217245646400291279776987519242804025573735964331897655906542835037283835103622220506515626876342584818335478343386203700706438191012173051138738101793624892820478502735451653159545589743094549812038103779279080868592799440122481545975332077406469178339314888592514246513719387525938187914001532930308120493775570666095222351059154425742251078575370692029015766182101066010504001346571421125393143106460457432263344231956561394455807900018600389956085121220126451910364171907079153672080397478552442530103522509841644645891763336256356593636952504768507462769330848901760877092385004069180047158842864645242389669416412936653864806627863124087266276426430720409198222222982657600591297165992744607795529650188222391178253976370328322127061112490661743063735405304503934884172634042736392739733839424189254694386282491168864865058219403325361327869341962180848461137838790617257899751814516166923873764832817170408611978975877176779587560291131819407923060981174536679341878078469182373740760096222574098607001380416138526782976312465177689299999037413910156974543041785536897999043392923370198799627649870364894545452619553674043984299446629704222431354686770706477600428705317150772921419715489290454720727420592400311426146274495459232128652192261114340405694943545034545326082951890246342005153094526102708876211611864279798434505211972446154132197765615447497117067339352270188445488490181832146532271522866793535491889181323899177515087939267581597478933976227452465935078451740656733494722186343338099429160118183137083899964859263260733824963487844326150407329162219264031673407136436866738127939810984357447268849292857432634859515439303821045459911992759169745328215224170149164577075685481916225790317531033385796209838927401384936079817492178147298997059055609193353433674251528318697761990824711568681815760362786788085336624250922688307746106806561499159086637181080119982013536440141817678685496147969672830660073802850571139023907728657513319291537099211845987567573199889232728346162561847316160783945539640498657116309288187219328676794125297748600006142881316695575969307197045238105595638051948933658570079093196485833906288358802871241968625255620797881449819408347598307034963951787626908029236970089605354878336926236876041863571459290856380532105682575794095251782687356067604027823999893768615755874010561277957134576394921574218540585476179920229490540614264698619245810683038940268254282499617978566722841196800890410731279073079221752435417425327875079944543851246764129861361570142664374836177513535829608779184296830285392236292601247105717767320209205431930777942856998641583174311557684747966224989508769717454467610588084088755967733829958397887236026545927342299163402013475295579597801466271743934795734614697951178621721303203457192747399485511813860823076536023559738570241857796857027589481345697942027954780518478792043581283437486686284435337165758355303568590012492311993841207266486307200842945601447785135687825313857336984949334266552198942956746382759532399312514108563251891346589562800672104826657203745086826893406366227949367829065255764621047996087061965721311889597610349352105425102279011534557988843605326632349075878568577135973367219497688392978627834032294974496471183271184291228468415291489590615039558235654757160491050231158996330926628074066008683310067020973199829507681480768883161362417039856684976698107185560852785015090357697877508466692492237274270794215974794430736704049677188278450508525774360067195512850404102075953469864679870437267522017187599051077810387778580328323769482191944630904074611504389861382660523386614449898935982033648060331781787881080709982819194200673241792655352217567425094629472022733450721618332476793027062657816427532423475782377955186889155866744123945968422550623008238502205738658265118055026998068582637977631504620537651835184842815638478870676681872711430880814194255229962342730269304092941284655081247849671273966570583862138850254740131411386010314661197601270723199307532148315297790292291459249776304668105549287912494054801679841843400150133177892006636555734615829098696927713907408168153771389240875770906919430859741937059077233020145519588293289168396880472072080444857430161342808202726377022513024137648251715129962939760126916773011067188062348302110243170042067629628512457569173081506429758220909257124257278911483542362636287070221426006180772021179234688905162514560300754747418670643845505404102295460104835284969181363943481045756471131179240681738259209313406584475239180389733522567436869367125835185395051576921417970679820391820131707307694945283259850270848568476187448590141081096017378818162667792994190906611906793252091171154052556777385494843013750306671174262192984139396319177010039878775223984558644573464164479428496958848834179463178653740345439227946079180969172170908567034388529800241296197568241367106255197634106403120738104309418798950586567111368753391546297424445192242691276356183607239400552101415478864425451087779136214540757114096443045681042402667115167621106298516996634053040910710429450840579420541033555482653877250812041935354584554141165799863438020913757945113417673021508516269269793962675578421944274376298218389876238350082632815388062750956917405478464473114236656292643044946069418560375560995718836527814946749959422524208263108220450605938883832171787968039481070596977190796418581039056834670785712183979176764596879597078055409312426934584259594276944997852383435705201142982153862625868050526183296013812567175924984472207886018039307755846475001935544628449171924661309124956688312617598004368236839104672415309405042967102104727269354619132291041687521945306165493342221662975029068012335592788879606620601599013309112730707195634636371653508648856202335582237222695086930132182861841501554030496934028559533807439651288771852288421911906004628430253365669420216441768509447532010270543906322757570407072855195078509953370510404560522371794613987865843925915258823931058978214126850225676313935100895555407144584150320284422456305007752064893194743770212432127573789999777200352769344292471503707980811425720509541576359724811118174461772253002729965651534070380826128996328902624666713561013317084687403347234515289859010328714223243358931140143410658914513261661628983455686207465493882973963690844512044227508660209319978797411295865647463016282713673528401690574994972127484164660026714249954038152397569237115998269977285588295651140130376307027815464548774571305087839073519278859462728178877053596439479466308308793274644791825452378450685986974126737229785564605367740119581872856219336757539596858674666419362969804040315453022585280647790426900732458288759562290477877602800970108184016844724694856326421914524444571108301207798149213905041704636496960627978535204426128003624129113448901876193125403168368064986417106592824694373922761949079672004270146096911675907897095840917817785248984055559931573411634382205647545874690519862346422240974163747097348629198409939211843756422552439421118935814669974621664022396153744271718935852972822350170293118214157067994378573091190934785577181425184523084369286934465082158349451236065668776377974587657467102792391307156233768933572166556881809935387233492208767799224756425111368001202814254626360534643868925590959019999761069782021985709362989364449529794728182320005847510153850361239682008176561210855719882858396690692313385010536806364432061877890574747613934626435703301343007444549584390971408002226914914088579918186572290745995979029415199925071723540517509721253633320837120437933067229409151840675678808652248415188814899152801145792244359739659446646269976619145058214086496949079940144986303108593132807111189448221822753709336213174760840918382263157994548336328846433618437786115273432607028055226984703275974354487064322817992497257641150232546305330544962048030919281545028793864648135620674466221528059972736631056405895693176249170624145101033955840083451204074223508346696151943408726310860985877053312391308412679815420608984802730895168057553215130833927072875278594679844203288368381065689055510124395733977363194074963438024813133746756439304806591204731494874602047542881179014199263604779237140373982385416140538577355154623739948150263342073175213125868524514529203039254595323873896053069872330647674939489644706712859861154173573589457679601283421796441064061647851375038636333977036019410016562973526848050633582108025565075655640101849865339313600126238535241497069877701182007738752359364645051845557459936037755466024372799065844295925077293624195182039557817684360470103951578792029138075680545771207870535281744200892982790221161695637817440661340225185847872674135950217415582984695969237404408604562913512530708520194843718207594381016648939432787560904386190340738658683443422995969170199927643895838835696960934182554426760191987850534747829650851831432081202927226687396935772874407172286962229738525771352194025129213949544232239477199692368169550167662258247747666195007967669069930189376218770915725713032959392563723842317714305461584018362732442330160132483500073709534004541897778647461013061191657390487891334864248097860705713756074945888141150988241535136174433236735552397467340271867712823393420920567784316502654043208952829638190085500592425589524878409111848226173647338184663366856907821579208622718529620822008635878576463093899588694646495924475674784603970677813243170070414115154524569337717316365552342346257368054588872332671123839776110498761483849385470073082682017102575087443231902989833680504899832205697704972828342291924907507861173985664954451070686197239578662258140364259810463710496269485168252545659742731333020529071862301541571922418786280421020680530287905409892056633067167403427021056817094177098947508162742385142609255023566752540127991889440106423654186114556732981376461195880824323709857396540967754535466842827747037250203391543724771653447818808278584907729738536904216074185487769138876194673056292601635977762747942286674400351172985902805053750326832798931668127788782004687030638728160287816756943228121884017563249168722884498648617027493365537264579952035022291363490794266467391649949044195600365359325134474023577715890219914067076774707820579972846759186840679633976412020217833000242246668500772204576659674867325068066034510601295627883425559557388024094862176660991798415826845668308235476511693678126870790663541547366216671951954551871007834475036509495774401347663699355356903003302238456283375593212914401580353927497473595438025284795147243604905673475100548891706561592354077836229054260715690335421864323642020970248280718469786999136131235618391091888444110429458187997762150764598391403047801268555042530470622943787971619846353641049613212473277239546393184547665825572027001246038022688974346319552466513298089149896916111392056056406064800966171276980475544784585657113642673864921991650088637724857484357610301271704352073479430707331006566456661685190128326550246390098055446014218409713860760240803881997856594263006626567570845157100298966498741835893101743364869564763580202027349333786902725749967493436787864074364032061882236984842613521943733030143295033669142115779833485258248082064231191951981616842820483677803240186462231423073431844183213088246495475765840532307183649951000434094012104218436072435280404636585294148003214362303882378592993175405041364844607267581804263344643024657629266721718514838633539900723059417361547169589286556834977121998672460826634849687879471217214055444624466597466354851454196185446204342064359746811214169489366560436972983508453473657936374382052166810730674973083840415548485171804344321030672698351177549317319139101270929598648786141848471022047427483601470852719905525515098515364903707104790170846081322171670633110386094085122496099121661343959606318561536713599007741868577124215919498239443196571468756377685183987083875565234718517185748074529370774797268846052979424924715980738656979209961308879579414830904532343637042239758375202627980168803097636509421810682321955043130273129860866437934090332623885061711232490829658498913009443432071601777337379534077740060556454733808068329215945628910282683070270484214206436344089565952590811880522654315464803592230807448077231621814315653748414280055288025850613223395460722380758326946416337176759031113565358886374491508810380814241488375149391281791157072469763810503625909300436872602973522250685501307146710869156115487272283018012714556406981459800231841703511166240469902221446987715529149386609548192342822758751593685088516990007974842600700418365475807902934619805423358884163166663580948102298690582186524970435148391822013475808850777867335670600537579544198702359746966458481462509492774916567986777462902731890595236234380773295541274985102116342880276493993848106661943338296259693800229233332458469088690798715306378987576247472247637438582071889387909892563014164176772217620070473666425609507214990389865284653282607071918884620210822189228149021694093205252817973781694043805154155858368875305815626563403606539501492850576004018872706535872262203671732220695865125231610858725175718977695904930886435438829855565134257619372081922080082428539925380564180148967795176190235371121442803835585890501511109061678605837346726321662473489167658962287892221030458911488781461340621473839713821779809418057930468993985502579980902258130244080049865603633346748371628330335601904715960704132856150891177726019227786418407384941864996798275756108693991472991985541472307960536083735608320673771908642756730037513694559060059596264542406060098748972062415377199638167488160443789979498677599134761416581786845342013154487226541972576235250721552625783089504003067239238246300182257274832923473389789879839325447216788918546520253241024269359642696163641303600693621315030474839494125265589329280057468907297282329172102533939359640362235659050746060912993014951321355594348206122548746694653763789917803190824029946805087640285299462315785494456452500365854228641022881375972366101016116483357912877373448959956362319087415558432571579507468285184438785744884229579971732084948197199797678363219905933182067194257134181012437296376065136555050920345225037682068943549488787844284508885181362628476311437334591934726592675535675368781209153071124971998316567953382775298438941422734916227969786876930300515200307080745173258221436738841437669985647542513834039552732292785263381711368465775418609060964030484448614331661725649976068125228259249301730628956463061886398251153374930373806330912914554492993451114412768863171294559028298029494749686608492586615787442293674838105225941213639444096139759764765749843055946891340918940640137702909521543393716258491708191894485423912194155498200892411934570055457826230253397835740185113942322648260829223738335532195071042412741842604289592417183645689691489155581509003008112950898421435629429234077046544981512464435790993045253266193173236983904404543492340969943052265598770199992104354835713757757107729901778688894561959317767236044524155147063895845182393049861429959394161119105367792746774331568033150030147307218423408570639417579714541556073348576740822229241883479714562257864661524792463518375317099963166047366603884345034613675342208732260051358821192291374973803717772598299056320613466670503169142193857425900999151125545855839565564837705982880807044766204756586038365648752976437407411852378805885215112634980183440542182606924940664382167547543310428167782486211580694621291535719475575066002690793256019895393876458777711038779302419787050692456998483923005914292903955012909159475971645690844712246564488991118344478278127841105572565540864758442204800147869474309298959283687332564303552204293138977887374720533272015319182500847908515767358641207875685231585280132952898194374491689175501453006603619598875393351258600094372969580052777571129618895961021350163785141809597185658460510276405138732622065868787289746792189208888696020785303517072141571472758243780187696153318410153641110716448905108101944290142733599333037722803095892452491048995191357921410552756163083088197991572293572554989922296504675666871913590959929172461455842450838372976327629055588228644723571515969442466536029494475361623045315549360890273409067612271557184509270653575292888834499119138441412606442087033188790680815842141440190481511689580543528428912558186440421941973203286029517519265324213613025508738401976738543958108580825640917302923420912307962795256831892611219631443914645064597292827542376026364947920386170282866695533486857915091425926687296138658585989051883884410873014995032414898582407846912876769167451287590781135215941376617625284059694695222085080283741739119556862883663130728904669496823961203921381500575978756703176337035776382971801912157810941172467881491204389923993909777227196333307763143589436920334625700049092467878089109971253922831413307083631049475138412721540551428342690246481929680205619398800598514726424159773285198496437313222781005123186284168324242012613514281628914163471306163837793762781205365753211726874052325853900862967106703673397595543559936848119839656675700672537648525054348752821418736386547357847982027191755502843022873692350373093669758168818922383803332261988960601435309021880738485795893417033210656240593468022084626202467131983161090632806153183298810656675332746975919123435620917646184718268209818178986928040089203605167194270080970087174968359955977880135120729218063675563119687262034591220670446588124831226609934825713900368513213473202692741542107746682942449231104185837180605351147060636978856085997163536144062875303573644980716716687903644724313653770114806507575820222261275059440795123034217127827721826352354599763037909477105569323700520697403244197710450337744486476026885363713716145400845460613006071635865817967719023882030645554189045388235757212908370172055200399362643770943838058640358280445690062557961525704959799510092547075469476539273996361608360901449268636107626146512443162167352766629924499505739551166338768164091705063525961720482533646417453531249591213280947970489828676572253188363356720279090408009355177354462824140350644389142230583021824748037640084883269082440681084259493237517639422896878698621771842035734318853382493826818987444320525070095757344469057436363610859742614422646516028337382528988874268591273107996975724094241259297295365722681395941623698112911644106604818194325834628899535517965117972565740108358684666195664443758779962264167476805137812535296973695261191827772487916456117166642893989932605979924799910972316437167986499471993825112556238813672736405067749960486212841180619837967670240342947165218350318741053358736735154326252677510575193016974996068894892119118417179634837644985034246322370916917868765557112098088400218460657095791624620493642797231559927864675172053968436917877672039914092820269307810189973435119578463749829817091316088868009823239443419683520975870628242836102957687875473614825468052038013774116499756887693405947040895478704719697317694393935931982241161675995461386382233608818922235065067806708151117864632045332302079589469695442176424930120586168404739973359581063314696479291307628645549626551067393861076491110877858456538983648865562530716083312231844514968945585438278180870363313163169475186127575194709937374733215262581157520972135806366644891921147482183709646620272288108321977534679908380344867892002177690125380179608687255524690037815554074941750682709868879413261278543805803171332428446470544521820472163351803214939404888245633120594473856240906241350327058587541961635007300903785827272353658527718738378642256741998575619096564422653389101141704399566102441496412221441529670928135590696791567720715366586540271022016290806093761713761392621447605637074564857488243673687860456963559868911019445787293915184807999595554848980097024488808985803432721245916042994904502104082286316811239802804047651282643481114557716840648347060833143139708730051925810578452530407813160797720832788870928876472658166602033516069722025997005959337945465397511269781344173241828291746520478989473811848337137488210768075585442549077282143523039232893052170083298729668932619109624643878234523142888301253646612806776582815704878634571233923008532596079162428106577940725309388766746047114852747366860361755799883761177876462848494699204421079158369947272829606681846787251840325924609537129200146732366492573861112015276994451020806373157347511921441693262442473012075846955541344079171421363062492966744510635884975893305470390979850917510775352545342392032967507971681345120691753112240645806806126682855202712055864902861158079936565233974596972937878960908174524034047302953559421851081408931614028884508041363706971008919157816344125038599409388938235036414450312969062516505821508817429914780592164171422233219643122244106447793781921099177916402381132125053754824568574618985412334260798353319494467551749140952466822563771934382320422923565453434469533878419867660071722760036674052632024200804913293286276275781829509486471235082727388314740395183377777301609507857621466031162079567570539908190791797948496276043294022872616569027775784894627224059515021894216904676681126848379403442612561493977656929291698417670280339127759253181629277794473746987825540433700915480839118578085825038815672619914622649881640021028393686428882694813050229440585335653970018503070476947040089932103902333228980073603290709616130674499661675417064364013067639893395272635517200617534264536413444204943886604334389263752695007623144184282668529991788712107251605692413890108394731991454751343825782110401285098269367122614924350830810759222997683572650998362067989041287145707806733932906543288694479362097856455498812261486289273410498124451866707959323358124039411559226202741926756092998100050060659767388023072617749386349208588639509461666043785506026112722507104171437236965299124402424259596921804431058882104382877950186269142112001647249975104485709426849438052253900812438552599549981001485497250384612087709588216884555421344950235372254495436999601622413506299883312739106294418599096679185243220037405800854566383088910338068444945839099245289793963805511730341119267926771146562900526410609464359576159724324811713590820544398038471079998352681924424696588300740479279792765338321011587803151580023662765846388850199616741001714993390535307964370686380066046947947012217439907865911647792471867594165444623529767863284853856696046107220275955569971988397126061062313315181836416511257705106637844503789196697289470280053649972046760125873312698754207647101422976590276873358963898317445362240907928298091052833022141517167182536281224710804836968634277101015190350660228391704484824208716924271598675681801769843155315746212457832034650604426779216315636350427342190726117430415259322259960555263559552894353388013967187605240024956952610106101625031753530707952217771140584830994766593280311361584483503999031921046901926324902663817029016743943739734248377460437554723870885747454942340747559013288618930795434259691784895240172950928398099198628854720117976056686491756967532976371853502669468868348668820620170167339349697483130911428107717692250713808067283551236929919004676073961145849827221486467991632336982221172786408345739553536030698710500740371489380515086672526930674517300028108933968067039352901713379611964108973800460641327584870195763306776652098149663541718424534710884056037303700830527934931381029555773716150011752526940618040339021817181412404615740445823019224961884435350684874893248470718807146603197330614834887879603428705402295563114633005757916484201611355230248314410804450549750674849546547644389898283888129788643758667072601666028513468938785903857332412206856564598052349008539465999194563017053916664684364923751668806555787887429473144218700685937314808926234418185697571747579805413541878211727990722349470180434293566697514134152551133565074408895721304342171786666828393228023208452920854240326936530087633681176164499812962949430901276513130549554848370536960244451676963472619146477824475286003846230085993066451064999186727205107758157741163475080851155587272438068656878267295113356121172091012951874569773137701091245210530919330548179696019861762564011817440237155288264041349524175871730867179136936274328776071718401276428783815212723875538029073844553282482643852129168448787212699759736863460785375946703214526112740536589710380730540789064721641090412698804676279349657495112725573475957826384628070769920570339878707033607022417974909382963729815570215238662836061403592875647163431821907385001333585211510983696640887363191734226913291967809200981349672779496531990732511547993127232996271280231956033615297318311975532310750552972726526348021112980568651989449138340413601104071252383011060420982927716129679429473221876128417248192098182297615539052887224310816744201913605218816315027354171230896194243391209671295249046107050471592898631035960961610027505824319602517271699120541663374000704108837504975634238822563321910399299339653568414657526758646844773145158014772831729467271192403592479944943510337309506531662253937157982216208521705709618916073785713096247182422206846750618303185381415927677028379981391193368031669094848893121305490851255362346820172363751207414507980972641415449485318934259504259333628997636638813574350874451410938492623821540351054456652228216569585357970203738211992694169613623590298759162238375525604249414666582635185632812896952806642090458072878714558538927557311011688847855580093062710267813088175316553647334718925233954046171704823904464078445865804485315659387566112177925160493666110286570189557216501135431711871209676694377954682001584313206364956284529333652061030306924060717832998431182523830613223215358529604030307455117013522362694149620237034890837257214016634089421536870963010283092762336267924505397160761476952873920537973187858284364393236241792923429486190362799452120699455067140064022542761579455767264343327573426232709173458631491755448687524824666155798731118310281984792874139888107818696033891558916121668522230388934832446393885540170898091559596626921987211850930519281039472535857234754074696163356863939932535245875376777704695394136716378164026224803178880337488100083493393891075240728353980494526075142711262943998338684233906575304734703558770476906633556954316054111359569237764299773959351244603619744237386000358892321885733108088104672875061547879132283233328102274013937542335376845761689538175792704589695503339739810922629005451007979136251163569689365654594560686622242669302677716129130829204107242995247146745591249049161261731307775413185839645842313446981185013502454757591308441713765968705155552359787328842511484662410032445572857242847511627239063459818588826769206604220359120858314376823873033061823048770773129638158869422531623972338901210445319228241068892669423966912233524956813584950422873518597217368674620311665313682228573773990614872488606617385798005262614811751977223783442181208409942021113991699849780183100763936825386641338858394228787228010582673367692418357525525036065324358746102341037426130301491829145984679576047644977748381199545563192385069802104355635073258882660141060224742004792592326284390481261828636886492720582284542705750240820827865484160538025210457477617096244459194726912538795101478437547925477791593084027743763150267083501683452717196850600396178705106727527094425622748645613400799208639635469836450242271693956929937423429975952407414671955783481813200813366967484725931980525803252568472207482814628577862088056249393023335390361651637889429175928655936423636586614845626866757915205108803478339808770607491920310808838802770228158877321811056792991714025719011656692175124796875591505816927176143023531626098861425574925487139253814994477726389851002901243247922753900832953736829039379401225152326365069558788132470135849554639347852029631391469572644454602457745438037321196583383405571826677725439536725358112416261433965214493991041495153932575538388589450230001431569413121046575074731236851418925673128806680770180290883281987795279890049261399264733058021744449955429129855655112178024080643758083893772187578528502023688528050428488610165030020959869149791518157193430211639794695503624765877317728020638342058838411797373077208949888064213202861115175496798010144405366348940089904569307838274118224854790095892792351833691760692774182358336812336219596338423009706749360938718094397604018100469333249020256963084282562495146370778081589825585239911174109240733110855912826623948802102194966938319412903892946352078852355899507095186813069569904062641098645184648285847864885099751941247577857766154411816015613479779290566243513059913030440697372748233257584668031183842734480935823029714327777255186653103947118012615129353754287183636171256771231607039641729483510997274480332271995884943646723254190968906983031953461725130860762215834652032970093134995890425397707493461309470816541058292487931462351665675511834481217010956796919884076914702681204675684155927569091278001887364867660624267983322228340071592965751786427876191724081574896259273730531785782806532500836425250638581017850146689127183338879520102916100843507934471642344605653379669737653704372535927466124448452048479951839408316805377867712718737376102818743849072928566503024475653976367364082067047383398117255310541750309396374685195092713475329944163688120824783141775867368500405345725854174832904414974468892432696274565294912287896358348982173087409890881501972459898038609171889421134384331806135152353711771130553391653158030548614666182673932560964881887743338488104872713596384365710234791478556690808504889484726360301989905030115252620350184518438376830089622756017914930096986049243744662218028159944295661648979516915409718914224811445395469559015970648844377419366991718775839214197515774439812571318489500852527858887586130348103217170216348502826696560326220140832552165633174743892762231044858285463122094003569242454895042735317317506503556925350503540046097534221202040870093130941173665085951098622185464376894567606819596335280938003636142622327557097214831007750454049378808394101495198915460288258628779525205476974592274750651504042827230159099771632657594936509859585763172747401672174751164180093213341340958221709743186775617114054901106418817826921336133561046856081984826850052253294454921068862586079591509056032584286864472179508668513335686928092549681959100223758596171453054671907468065965266215770397732528654026477280650804711581243071664906121311697244131503477794823839147707515464158037886207483828819252855085775293528931087102282311888496308853448735687502338919134300554994120896620840538338830496817912824753404917935091037121333284893111605752064100389610426416508748258992613702110955710466337409382625315066266053619715525420215396109278637475655162623454698756659965587887684581726217906281836171280808772316913086501082764296020983757503257226170553678651729795808316173451073239237582358418829939552190822430331213687111819814702253980164776285834073405487982485554645396202877270689727766921330547224310566027920324644502926001094352143666178215430088463343687206668724050875690193085650454693603984373528893774200790493996753299230693255768835114322789698526285391633720371311037364638771744290044921841460607316811497605572403470603719975603156353979121772071450183396550715540139281366379330632050775454057905244490224081237141701342856357141905061438342027098389296452768790734244706238977834336794232786548317566405790198039129851918282565279635054381231824708733179770054778189908276039325156446230736663831971637292428780159189420644898505423052345705932113617841186437899446739347164324112278641813260500310758255541128826951760666794002151933657350090139603054555889792412647423643669276858613588304395818376569316387582642924073250894143029572785255859420573679082922039568592617203256179489498854339074213580049132574172759704676673471039758667570718372783774710191511556017277458100966076318038111903049044254716454103665331666826237398891139970726901468997876854336800329976995167974706239300176076786671769189220714597209367038922916151397661651920778535712296003515666471688115045822242033613611785500079794390293864344327223102502541831073951619186253950139690892587035974244316106995573858008427500646775311793025794110163722475430368502001314933661885150548670098204992295518675204261991996346864456765167569094940676212849201802524246901345543074581936647528370045863111495224748359105401691385219902622723097613534333177077153885653475279618300244081465757421649957658001148741962569928931823462494356023468379230123916695814186875641065559564901876687658335955103665051155356215406866070788286855957771582576592830929238010115805905599567532137520867004245391111034607761952548206388612943909380034300882901327950542154040684980677524055957144579993040046797566925894865849164515145704612879827206379626215280425668205518112122267754627359067853920781336413979088950927076870091008717337198845595425889706844961801649264091579288330809544920169064280362524769176174335590409031421551798643518917030580908066209573869486718416457370944636874164374339489114805194329047826218879808784010711288309654857695623625397406233914546445858565791926384143265682033079089714812549994479773865485232391113615529601004221512701949258998487738583514191141765575386891888234978270806314964627290408365933799723718382063485164028958498502348304987470360447033366521433447762326518888708770049581195034851025561987089609228560414624726793019459120061629734958840290341018733933072253145843450502766029579147443142126028834172192069990706898124389983925905445685154950422540607706113347419727389857873600063091419899225147335656148003825491641900905142052176452282245293964945041537381367224769363571464734358269141501473231114390865177852288818172704360317042073126155021249209177720903224093732893764062273818166745916525142087807291667726297722903561626274676371402572911305145877776929596944891024584629060611698261967744385974424335252534134396892639488097995241166662208632865639907266273538381781177852002199843879632613288801891560470895912181144473375766774559972773788287260251630054571566967307457628067081349473012609331034945113652798571013895692995316485777062784925426758983707972619676463665032536383608420627528089558338545619298392316354468573378021426413095849999339227288791958633652522617543174511740709066679397552856613790312273222970994449730776453971242459726677001731583001707369112975002709550237394235421194149522902669411525459775690303997159333457144338454975028829961973947845855232668941899395100534454703375782964147425063843681727532397892416078647623343098529967224085939192906163830420993730944010299093183803151321957171105356916131796036016762850033580611371231197134374575281424282511038502834665055106908496398329682986365394696862103059278973145506508779125709023816134406168398975531239386128722179818486087996874658348320764456449065111121760983213059039884047734983720200128393349410424065266737389277583845333226645515020515759086768418780071994012899437836222768015402705445724218928833324543762577445154251925045141217332133491753335843494014322998474245499832698637939125197904615839952890807433655898605741592156005005496591928448229383180125596419439537503924175627912657376596610247879299748848381504506174517588727807526591274416819024627628966359263604226140901768783566017001217625334348308139329145053801542762837846498064678421522098176276471035384276962173797204438892994115267166537174314569139782728770950125276448140265389841341358492619710557928753421184813394118798369485186052608206930890296555193038325904110042775401787021158973189402272595503222150152166232901450577729777931635093647778211672045645408559529742612683798499813794395832536064546305860479138967182435834509753489483126009211137529288593430395546038359755677128101846970031852278320705887472844175891047466816741339424978541617393407960219032953776616599907614648683671351515072344205886452486407444986171350615915432162442105847978783554502529812076266496784830031534784073626272329806170834238512410069176298113392784207773208040475520230299009654765673823491728685851921768630550802944072810746557310746603273314200141801048982693953529839379070066990357627445693612471601319381862704106130662717433330039791654548903880403326597616767944365416537637523945500428337755585186690806322335199250345209393445163290273612111268934223125963997607132058166312517915927839196687106754591771648462055918642073747509629740236926172540873712556369849982453545450779225958696159079490723503877841487169020122021990500148412018157245722035651689636442795690160691792340494838352718482063529273441061695210020053953919938687942649337587651955585520164541859465318008331571792194859223562493927136317833407464087162736602914460446194442798826202045214765108022411253045460135253890489694070452962378591168041058992808428426529810363210030311194148610961795880022376174513651785822895380244487491143707913946047315547832451323771074211462605512750642179522927729149244693702167649132331319169438394787248096815601374099797081764739349805066554291364733414812898226230054353674339478525214222767001378242655159643047983021522196433069780481650992671720966639414309223713977977758994148855748302840031913191862733787567984130714553488766302156115173907768338467718014568892014893337527614495310337675444646875809972752255493681007460910105915534631333522102087222406810886962676615472545600587191478704254527981962744800754012985042637419449260387913472085643370826177888977979907186236641087586518367558915422427510862676018701606213057046439529048677528195574290177952163033132502820238514339943301520586036013804306831503412019376800992006434088244251189382309351791274467773019811920111079781746371253962376582365991415431085250972635690882951009250501901089710739514126032419031270138790647897415887384573793125784291174684965319762835023064749087779728943860499855410557474434104922083510046232023043300235861309877926937101048687525159227762995448205963722200965353174913948343783518674850060983644719555636912039138177712219167609179071609045419490180343775585506925601876204971411389805943003123499284341434724064419556406308499886427374149854834384596665028030597786333469082030258767942188043006031010706387460060827704971038457016550005253000113525733764857433256153729309110071534864528108106050427828239368591676325215656253222770662696975607209542255158646159850228718092384813115273535294988222079257901786901241668742692920096984844289375639778045162345036247140774174019323515023847030744516374123238232392200552905415557001729035355574258169153451426371960801726516519826564563507076456100058125779705133234989107745095220700779827218518912557444722137682586465590537648084917735806187346567212264927962588993944069614825902348038115111916221314228794592382153791740523116956963124367872380429900941767426492906475551239204946849482772177036735708887816181543786536047424160132440747674902620870537415822381172793750064669936604302747926997821844791602091288506666251983127237250931680290665454423976836878450369471111779784397157212968431471254786487595858096847080485794364593618276713287293146314601778116768903563763736900944649441542518557846786487477070186532714841977836792564540566558979019044729983066041155445811303794378935565780211724166888720442872077730840931371941779899269436965232986505845994396968008444668932362673316296184452295447344971467050542714553205402791178804757604203231457258172351636048297807482040840262462427220139888430617169001665906395401061354492928627923935374867322780730919425477707122337451093522326234180172731905389267853053732627366438941327906413249365300703125116156033877397919763888766974912053315665650751148032099565293436341534828953652340753370110436580531910562486758185321083617618715853715226435612285900129523283042873431806344088907668155560729443284312339602832974576539193725648341031520055049555783783875146435524399672898456793054291424915454369697647794170642679009381410312105510796169092549221301922129555625924452018528775219350500145739655294031220211010337412162121033324504055727723524623399085670856655100324988349548654063390603777345959504394001295581060570691987203125096405040820476787307345847907007435002291309287302116721201020401072557803194669926399951873263324104209897541945212862487718432397691463708006267451905774235930867720097324126464962188696403318419687332576120345187989423752476779320632914831385256562619116647432552190357665051596135306317304015683199132222942325113562488471601553707906747155415463925593216438273962821344878259773126307398580041483552847641870859361388417517766013949851218229800622814684791112608207496899396657495927790019836547949268070245285476387971975071602812659362370462179081402912784654222633009569541593061855968301104627785613544249607601961532528480620169838797915164981448797834785451643327808223120075225530901614756167820431218086841069030436029846351691220210870305176033297012457628603715069319953529346983769199492371931926300694896237434588964960639390962846138924919461273802950499207526288425013779384986561764746464761288429252923521635371359311766931252878882655321202258314481326683207415904367995180085033508450908270471295903775450259295029807529997995562195644031446434913598167153120967002732276354912886313908622416031780349278495927725994116784893375757567175136566936353938759153530696709657816080717299865288569330018864204468949205763933346893392738744065221288726038147100765480846947643805961534880684292005993030857703219575765239712063544560254308200670992898762546425202777434918104454859744400182830691815643978309954265663901840488896044500520413601239590631151409468044889851657437552116381681868696734418559065509426382046337584417773104042235102588346837581239803705684181500510671323458525672350355782533188108121417462033279534308373932859963438304097889690122582836254949414351073929074610426174225145483923042885618802829510716712084777059203210437943035162868342444046025429009296027750102592541719494980669212125910557379759447794804076465200249906292475985175920415644945897820994254380991311847712452835177392880620706004867806605570657062859191795292788586326957621989379100079934868450142800998329319245191078547807271980887161420578774767585338170397756812897721800900504169640045706785215886855376292338094864825170688034083600085596763814827469124859179441713106320948199417502317859059658439427807201882193841477712979982237492393644224438470986914967198011640479739905754163337940443139750627029706637890902208226656819040274942916490851921753879281270668617686767308656440034227269055596800751282946689315869335124532565187526099361342334538417135975910318204072303633993085599742959997575203096910673242425603073923255246072610866898793374147359930592387091502485757289331154086412592644564238639774384589821615959107895536218698472179546914586206944773365657518994176737345603305268017564123349642472846198071918763744241933249240511306679140844965477420747934719349462735017765965285383956649534750071526085178341778904533239371517328772538083988559524193845519632774576647168274205867241724560606209283592233671602059070077354487377762304431621168163482108076183615816916022953971775395786208775191586719840144626781290796768264174420261044607732512168028722069628291120239150602579121784229045821552413968865810938727274797875376253611457328237248457784122719047881402979709137098558389217854233663402455731074287751170125656379547811223578699848908673185439169299963120170765231148114448821474494306739634079642349792360875638680046682007247193238371630249526985150450620222987450556449024077854879990310175533479412490801776518116542281493854831105498547571108775957390529560698867524827406659146652471125088854425747964183240488639823875465201453107075305127566524825486179706143918333110476855901341153244014526353566804446400961794371377803416675584853964338510147992628011249913788979499196637710320334963514344626221859455483352326262388263123735878452043452326829077170411926310610053810394498369868741722878685932944813737242024924562272772916412325605628037661177810199705324973942189310546974992703863645205675843422350435189778060261577594501989633131178834048222080551335918332027816940998629924136469935555529952398181816006525195811488924966690009129209714792021614423677631645849203680382893257832874555894402134172101860014705780430475518607899896802427050628103816340538297720233923969132495967104668615927564060359960032699318490462693620132677561300827330826365714126449278533215673759057549055692608500380874100819211153001894566750772868000827473666111644636628895336764598070904113169013490240114461899677539417794357130314683092140162960606789717508370898667101831569813214220264217754321634866491089263339232847989423020451964465271919997382922097019614843334458474276390126107989445213149594154502924413986639315449465393451030991182210853070233181894187709745932282500090335114526458684626928658352678372470759469597687439115481799733045900792240503943235666826096884103782301297497612223636170786716124537289941485353945132285979886676107069164857556771566025938249544330492539582594263529404791127086362310032618300831336546696171557977394690182825099597149803650871740638314288984660332905352782052327296659842014429480358491812128933549890457323755499847038133510058365418035626355444341923992405946117092734236433705155514270605620095603991071978652511149317373744593562572567468006290673841066690143513879132509717461698927498984452579140081633841022423617915913347969919843087196899806547325819335478509175692405821306439582501949791023039080829739255351865550435500240141921041517665463787745144346680581700491782903662001135033583613764376389571185856714571673114253406544970429795627356652862345797338102730547888718210678548689804275347962422348421389471165908354644738758557463508549890977076639484372953648422951967433295152334705770846988083247542861107833974164108728600152330042860803781572520668329618807148561978725920320498306432066341259426820768116557526246687171385856176685340360498104000824245319174140146170458515654176253742285590262112506002115337299896900137835550124703317856877175292268304554533378241186353160134870739917254870736694956350978670873938770832840722647666047412472303165168976609134233011102444785255382037262153043935925258485367839622931581664960046006030855181517605956606197082525705748332593254953148652433012914455926225872257776543627838783913315351947046104471353368449540406915978458972408381863657559835477717925354844068777199203300114964233821636756734162690361502811612460470895257291805378242968471974765042761952552623420142094817625447718014879498544337265494740688603426063635390791927185465815677553662351943964527185930765705416050769736729167586615279056063714092761274997880591490101955115948082406283389796033346455260677110501594837949774574317952182948486012869097407752469085295472779476989328751501197932547031311274371953229431006263357454201477454673504065297160375316338363823542788095484613710835989898531222002740998108439476806048688608542369863995087089099102953198351579853310189214320515886751145522593021497804250029271745258687297043940889230221301218745055503134886633869065386844273078693493583854588896357788596105667442596654747226358424512251065994200651785788372363642129834258621716517490926831640645535872708132214332440472686651228218034334158716486088447814316143668102713614063284555720589440462033488142010145058102505093592134638192978908700074764482781913348925497635469293838951884976596453731166606667649683393165444939198650912480334775687774189666067386808626734530761461596887102423692897690468145295755781224864151181290051443863151700148869512118372054951522876873833223545057899213898698810317883478339639985578560454106012100405368582604105162181191230798393890157608054741926264408881636701517105474624436504911671076909423339287485616263830988914849828039397002203596870323263840677184952644176401126912839138783390896056986174271789022266481007123653107628982184535811344167629164808940133074113771407032230479266968647970838828265772150488091320698997942229098382583059548148795867801240711787717331904165899522242512923190821290285320516258986401022072424478989966760917959083385724446492857242345630867936538272124066988823553200733801896540639546253775839983517862235983335945053105193150246932991018216275656858971829512081407047068709963299690966628738661192426650437733039128444584926697048602224198083433830667251647714017809273544352045395005873364846914636236280683806206860499324199573065955347365674932656121936964456334825646751151990637041745663761038034039605139021758422736818912516709436896296985203293467647554552480339859986365364539647950093092938702980619915742956875204666094947534720985437145265705893825181812504128624522099061366080463126632346618357584526564345445515247073208727568323840983876964997125179011069561461691245355005090639113512520562114304869098964812611600224450036933712469886084581631053260156956288775848573217891101661210751657619675539276550118515615971035645548258954259282093047141606182642436984127119130171008471414127573791067706599076146433976543695295277788912038897802997654438203243648629945972925693652803411003696598776244339106068347980827229191266542385132734849527143044767483870959135054711141904080732844541473407043807485458137217951965701543655138829621984317044321588996938763912287335820802485752263140522223210748463182352786981423809612061890080304975801697672935936181897772855414651642965758001326449485106944890370906991358164807749967482594198647770602233901809103306662959267331946721842695207171224279383808837175105959005931876754075915193958603034139504487914297020523734457470110764734346329901808240157550701311931859398318170945770695479124038037209055715780513385357340757434755297393860147907731773059661990990647170407144948051014931801763535668656993403443267664418826347591651228235717457374025498798195474625404063887764081121790369142389513320448264272858723222735048579510254685719607103199192730649836830341384719233185719933644763774594720563784411891116043057080202870074375380265705542254912169569054993938798380306893505301211650227668839758825337749127373913002961001251620447036829668838608122923322491495490790159855666093341731578806883421312911494289755339363152809605066692142995382445445994814147945203165996834324622127377361259143437837616335987596080849794128497540914371943677510161197889993370541258411608892478692195384731906403726903265965622811722495923718116937565733856760171795866615316764889035648171945958534940011085585076712616878839321431793177096383592630158360605338158059329350156134743415615731655603875925580530472770057181980962753278337696251361554407393879026493794597974266004562346448794536191902720117961435833665397208314649330788217218863732828537056854230019590122527604261851761712465907688312853526031552836860134963432053109114851318428627055454466426627380896170561520368457935094295856709713351920223239974036466701570790796925705799339145708949749853126660868861832267353382057904732632881788973696561792963482113244769123094218389732037433734897699523313441152237126465548942379610243167179809777954159236425981377582738141448862572167496094032376354749823827956495568580432619664795669878251659755892372121351684435862867119965720991129400564054369992815135181648920579250314000060365981071238176369571850778742690474590688901747417245153198806204744012656017907356321031314184891784166489182531179972344469637082339751699504226180605479587715593886679932131747326044929344842533653759395696241473672885179255992166672555619685175714402552517786842003078434067126980154128786563147850094540937769507784267036502606010686615060578786078691653324435734926978476590844459358031022598492609426512224723068713863116677922050352597322155671819404562514470190012320198342970127207128099823058493512572770242025862281413984949540603368252489075398340868338791537499711714820054710966970443169310986285430979486983653664127172588489248665241853010304704817144391563929862810146892191426950368765698000086673756304696925246623387758861570042447994503460297083002366408839928177538721583560839484828985505030234840901582735733095410088944135179630872347433901309938942278964440540616587822328140930074228252886309832912431249233912521861481581046998888852120304834108239112921454124470527706603380263936463346271294261650076908209051994867587811172181964051795652590949403189813298515393388134587723347601267551201376312512073444854439356871463748906947448351381401599630454466401744603341268595099580992470683147676724910346785235522286434942390933387558856474634199434185187042261703011289724029796794363833769704222149189362196409317155484819066543669832257072204574454794326214131116697158912066680208287012891296268760317534647605656433815807641181468533103036696686138527314025139708051987398279845202814818005901943479962258394734134300631892600056505905611220926834285240112172271929094304483529096485907425055953614835963146601501942752241987458953959171247084850896677424379677805576769922625113823596489078700171085782827837813688437371282797211730360173221605520772492526888906056748935468043921303123859434892095634928852610612662450020705134077984984300079663238568537161591416672304711119184889532660113341424656589383616704185463450199926314508535839619131235827670577992971677612998132839142182809693015439401647741982217164808374951268300766825651288695307600592056183560914458476586361544995468693391739094117875373256388245107635270700905969340074058006423820577951265840952279679404275478992950817303379069843055797904616084119334380425398807187827882480927590866837336487923096382615947005122155073918847436116319726597235475700519898190394070625725847769902900857658365052517288926585726135048791722733741961094752583733548433316341165351924622315166777599251296023203014700067519715950579175334567422766283846408340301334575260383816387834759658649367611440924381711574597950408635440602629213008338386146062795593867403293878526703648157523819130784753822583673291431388547036160943773328589124099152155765789442309760338044841956078644155378168034853022327932630079754674240564388983748549407891174594316319323860512224294374134770608912664879696069013068494876238975405546959651874239552556392335012378953660536046537442641340659007742657012030284328014303530479141437911971238577398882296861119646687541084496991570886157740369643095028145730704478066752848967626172706174098296278901768228131921930859551207202745193940491069817624470550832730333790897257512175685315309076973981942826384540421458261689618470009747529644308246472613443702353160730467945883182951926881404041014857943327244012794208392274807299862933117925153293581075882588942414769958488496155478632835822106460801014899647809213007934359292454411264562526742802412442492715966145781377480591712941618892351027624185583032230016286478597123346935240456753623330002473267974788510269464816324012490314549092581841615061052158107043905257987232457617209941190342679438854892415104974456625463675644560736867576130175226090137426912044562690479732321906465929798105674921321716066213637519102809129995300237076906184392511787399559055466732464161582397283257509011585503631788170368428255795748319632359106844518902973311784427984150566958041965321027606043666871917725669959928156585532143232864597172012726807526358385622802870344983038824490505721471751204663151714125809607275508692397976553993122808540181247361386804569275746460412384093888366411897294701857003069611182191345015046245242142573929029549877176678479280170091434752698214847849841875882332342054998052919941001435646678992722933577907640884486044641201550141514291366031926434553247889370572642397476966581742697409679964375065440055830727517447180251446049228924311301740192381913949466744723964149083919123997770778682648946409015790211789463183965007973919324563112124398803319997080158263714404653685766567371141932895628102842027101038255879810079467210958974479790018171078665571639720741261231274209944066948604670945526993502458374263132913895780873731102075247312713659606898525426794356097285169776828060730640940772411463192740480774784986927198993412453667926527303528937474375314657820434432067794072223420628069801323399343281616423570807817459262702996833561732345456401066093234871069408430782232523579786489286022743791156739775086350425188455934661671978609015724153666650468980182577462897286942167017463889145339865707627625902180237945396737146039891329205857617860294003998154383743281375527300769742648321920963151616158888358796209197861000122115665214878263536545798405773620976198733276811976526003209969720391211146339436973722640958241592935855389467250202230078132325457307802756709216174044448345945460934924199323750562673574231892438158499244830269168218398034434245223317451126518868387847656737970907361282150921885681846454201987344584889500326924021181937501899987479550681339433825844434260296682347921828341420103406384296244018650585751567128347298787323401802388149283462826585978186592104191962747306770885423231281385980287460242920896073295836858466839995090466733204819754304490505591656174349296276574243829697030525944443463555248781733667881483680794185771131069905853060169155096288477947486701017566480467281599411920139686523087739237919089724308485644193927723497741248311788978184878235416551857794918433184268484001691843691010834317689412100312753607328156131420983168530895217626987339901154332514853212538518746702905674654185544272704218508145235573363867705981641489339842318341598871248643069155732092606189201545861218311535475702196032620472937384651017491048025810127760031633666403661416634560851615065818228493974330140523742861158539765916795759506975962719010004121373132526255881634515307749399237840716722290715802413874727730627521533977479283120697630696756262782004160024932841083942541582963790747673213019516627016097725101935184103437648125821219252225059434675571213872136647045322702605405439655761691024600237058117896760085411621885251619990732046850802803570901717681889950496795753859122057465732856218750116175246577678387468960199659762786538353272335515025601696064846719620028009391296210422459999185784604451626206541734583295316128806904061468068735206920697852853420803642324897732971141399236992357972095638542410124753790082073768810237106538832503189224566550011003416087565464984152964159316797452627751407207386176752852173753420316265724841962622265062412835393674792530222164442729175397617034983102301007110527412633726412351732429253715974876724547027508413105011611184144827576070919677433838491965464289242047744442486791083952030569879949828832052533371689121056756046688668516188474125407648194566910610740311790174721361556797719796276786012592454864518965189274981276839263115126870608617001207274106663136509381387371013452071068996053761336122854631711934856626981569214554427721097499687804463338851467522026421053016886864604528412043558101509546074943492130285519603837613957234012586777981037694672024835354369924589823060611353262680008167338081443352034692204376096094277604352011029703098982470685411499740510809989814970433478800461845906531139681994380603140485207695219417817026034324402861926336913852047023785930784505355398111858531311170780840124148383294960774918542832033146112977205566279085080077235550922931616241690307491563921196383332956043899876686875050307467587467957174153527594482500749391527642793105667913944738436499727263619321768339874143209044229264255983822186406248959120280526836209714600955182885457218263084291925331586184520767475279387261539759216816399125633748692593818906133890313245742156019634728597985500218527911010218213880447648335214221815067925315264081783805257912580301497296232766204795732958194835128576339708642571223940875538341424276162708441292838938152153624725347473601099632568924715961156590913214506639788047055891514773165942660000387496562091137613887833900472888441062800461642698741195450474879978604460260969966591887023810965902489566746705738395121705803599652941806118857292810232128473287020512794045190775477069828853700941985550831214345960859210717473330001511260373640283395780809949268174945648661193639303867214438824622739189712060097497857093147681150401829714797888832107594108276836351565860153996736383967402516096696655124262735821726984569691757701673285219606947940778885803580871667305976485941333176703506930784892220048232538413414456659475933680375285200277520302147723412048456813619175161538538626166301723345986028041570986266119717262585262685006745885547644880062918457491570319693042289738312462409698006946802794273454572475811129461763765939880015967133335617363351210309943785977747267249060752396560865039880756578316023576444329712474765834488417975808561883604909080296282543866809061379855902635724144671835139696533107390771384708693954817977329297676302893616368706530175287043379491265850739389907360753040529018095260424745017470978286113224137405412868448934274157339559013805236163761807911592499179603227551014621677227663962216371930670952563769614963874353578515564176165033223809863140622238026157562712362086480238901546119975721640533979588701072292820835946146265369176955284134757682768776966257923463277294792657130956678617688189988947486830521534555755299683479723297734531014519227849524064137269072526542930514359979743898602366572470524664711498902023818496221489528369177932812824444258129707128357801956041561478674855674738649174672829504438864346551503202516846980588950569183158955732248332019771863312501433808290132751708372735210401099003638091573263481486554474648884712991319071925841635843768203170944075919642206649095006425674993523635306666275852180530998461383998562231079025036954458630187276716319542556081540449499602819883290126796830318995269122844567944389649752940607975269591578875707985005129377098344588772524705285684534534863916008732645385900550292222271899020447166722390760921839690501622679262194850903272616645082071049615475265550097865419616891883522860002516991366703905780304103645660010084994886439866110871334816907906379684501386691659648764267008131183987774300116467426236643183646686272158730146587364392925461883730715229978665545109128786095382227235692418530350971158955123127603036981419088728992363942377437501240306310782836523460232654525713649999729694504511268171030483739992581060762178434488469750794798052169718550791227447201116553581288347932306205793023678409285316846082317456875165058348202992917257372996112789730996182117510804326251614844936087761922584594135879675807782840073069373430444279986700365867677093392553960566732592018057351944416808671954332598907488964890488601926585040935341163889719047654121464653274520737724195789914125052390504053861670550157065528410149365161415704156301922960326292026540275430132326495254881062438748569916867607837713952253058830181357551933290064256151598600779458186079494370375014766654549926274000341214286221119854091114899370424062504934939403938126522541495606030258608139296325630134244729361255482468969726149209478652733896435433992702810656918243031855519331765781792171313591820549658083434024081546590425843257623703230268663938929064161379075588733523182670538580653915732326178354779821607177758413230796095120774867616071207423197830319745768364850902974050368345188056420517095965588152963957001360715779253542123323728943165740080117947108766695188144351444152392322619903571611194282989153774156465810563699425612519166373891797970112414879879503374388568283565313875989690893500086839552348876855540981303258726468560243384084603809597773818537830964303872287022478207277328377777558440497758901924081536402166190654171437985307711396179413698560117947902349833304123943671577075202097059362208759450166359875323030184904967288529079854010522410344899061745497115440110726881306466690585978604178986810720108611910138740195954066458426110624474148127212191330073250088427899510491550662357414147181558345152342979701309535494293557823600812673323378383403644434231059573323428215195919271688896805919178272766208337739526384523057094588293507474830607173446777863331653580778562587908155734659748511640127590669252960768124442120549760669101169357163012877483472223638479492383736160416307372100745453996776595646914084786853766663997797358670530656588412030408051294495220727886413905320219274896617072010765605628778723703689379712556703262530252204659428291701232872479087643884407347960657763618211984750935453490673061792759658025373685234663926177266820562383185284904640127069278490733382158025087349946139303401086468779146128600122073022288107729480988726219094460105579969828937470246795424290047900722787832069326156814478376351132017413591983513444848767900038238497928205247384541505947121297576815642049317548085117105959594151544361154946628053789910888486470665112972263796958445960367159462449325665253239621588158241376112477082999055733868554868806584027097666558509119535168889480879145794022403258018782804044480971450596486258219088764869994398104939081048263160881671992853164674245382186560248747749570061501289923324709248744808391471505788460720789369174558935234863398230490328445134323855863013144021948336393191242602537263449258322497078578366809386127922005003364689738221069795343320352681811379667832898035438849044696712005097410072068195377179086659959029873893717415661286627898601357527517227327227861354875169011882069865687396288066199579734210448218094191177253744079824861322110594966997739510766086703072600379355077740556719180134402156590476598791557594689002529867220641584351098023257780572349077268154937888169901657558329487804265863928028899744399712411627218775874352539864360740265636259662155018338476924115949818865408136787659438973694374420816267506968346281843238474390899466879282095512318727220594581685921912975985079454580867748632215089038959692987400399613515125434009083930345386937742500297615579638428270150758270484899717536944807253882244368051941537950275054065611613805492777528721100734733257343977160298091731553476944157833538581270040482625897898997842059495014895941512070867513628112653300703771903241940654543280939720214501678503222299643174618936277313479366966852284601614024468506547709061170503642152165789117989546750416013352309301773393895531048850110080197465587006621447823775161685632401484908840377594848246468522767262456502391769811985442428946148264007274597864038827274988256530798685012695755124146651762742147009077515636999255761335037871984001780245552566839902813496605806621161527803629860216866593794196549208665881746261658807987088029962941011363046365620101056220140450761271750022044571304540191967201769876807826588690405381926612927817072675129912214636289032642663391231814425276880433884168621284951589698391832896335158047117935242704417387830274213178184316047038567219968662457821194766384239022652819864456477260419028112439103186835536737764972415409909854760606073448196003051711219033444661023821565788900933875080227611665394083264973440588794882221545768555710299275341550629199483186859275569829947960215903948181499008074670430095827402335370848268847060113343496657298263871806749006081899253004754155773290319135812781002612048015219870902437091594209473053957051987254478143266940310038074655347986705731729153192605399066718936906362639334886240643331643953744609759857789367460237020421559081800170829499310202106510210920004967938852232709616027972994392118999111477531773180462291370064057722375713914118476739718078557250381040900376747115763644063656076877885341583522510857343137117122174736850183159292796152218464222007728467538948971172318717668827822480409564177129654929271494264312262724904490631674310016946042869271322938478218271008856566839032264341487094096687056833402377609364296350322174701422329014173306462218318133210372390060091036360712600218936204952029763861756344808399169750660613399274647421901047677022337491703689961199168110172424859260056111378209148266150381874756142588865036741210439373813434019693963942108634548030218992338663443071124101786187513213367642721106771297191434929103110186313204506692096271855343922767899442970561270702109286587557349260664007977737140462605299629412821090057578194143215548369243315644651269622658306933795090644475322098521473230058125584413794894987296355860385695548408325191442011046615594178865474615111209765976815982986252152628121041291781315366039293588222016335591200622200735740479465276952597201411122002910900693486544672280854559220368634857629281153926142591769157634334622717416605559508548329961742885624043517881946649993720628043419014259604664339159628352363886442828513340965722616306128801813451966994650758136990790664416510378767002620738117790861377602947236749087481803929663712721999735188425596080528268948495478537630110816536525445141347325452938847488869050382635709282741498293393276156788501007695054047238463297409728155272458540537006602423405997927642146950877203057039716491650166645469540781342629622440494383868488822282455772629751607496840288803040328611663327746862999765660759983657667606450725991290471093562470565777090447149077919483383571534466474480947460340671070082252480638145787405164898780002860983679586947473103434368556985838814063770443941430789339382841603390899443265069689191262458773395588085314504334786028373646487436778173396937659880900488648832431848225084458966324176307414087577980231033115268546325568557475350046766143934855865995864031721734953750448952535144192649028887594590332720596060679044839583713487813726270244151958861846445665439338806772868841668935677851779788711632850208156690764524202629620658959404772452026073168384510047324589512415443390037220617542929072839126822500368608614264451200215061710356762004179541862638290289619207326289729275762692646291023030171122779197048537228662299305703781219725956090176423256142514497105972333359855571692173658900329018458352418652204157247462936091215286060144925898387242774184031812471998223696671508680496830287549421720825155404358955302490853694676604733004046158520359563672588839646348256240562268555877860954188530353698896195815302667867668745725710001459008779656393693210415513086770682466617426429987211752967623950915395420988944310288916376175516458616865125415240394078893645650981679939411206925586383300964054290939604632269950091903515689193270426409861119914349203499935354675697653830151032202077587459345541654137234666575058375213663859420292377404967591253168111120989138180227972757937509952955111842602488236156216881501007639503474584039592031650108449306764211357770762862088465497006897520538986239809256780551193531726163651829028649213256076222871375794112034476192295498746949356293900594767103722241202607124564495678211318452811434382850582539075557167380727595066952469874232946922178059190660081069901122678102692375364511841529717023670722728274210978049721361419334209538777741227544677769546778705569714128485175621043762493111061546529263062173436011767179227208628446944007955070003148394781729140185395048844015427196682393543344559492573082118439771608190643334209356561101994490936045917483532466226325936632646723209195853550260764488604257606015437948154503368207175430578523892474530468787767908775689299466654376836923856840794701640064860431126312567218669103967935792383820007644114759620910245628658816862932801230997048969471712976541225619214983508480994722101577934305082770079018285887839441052264318239515173966242073763829372014901022583894972403911367061605604998193487954401511872602374418332840801904027987088410716771786305062122349533826487868590392442324553485557893601383648232368526564886924744947555277111206988487139647819101136789188306501989032294610233680840602292938059511665950314982371994878868794934963610130714295577517742984490187041812909051130108550649350947159132877641872174914002215567552963766438757544789346120005344570183702118631957229209536775851736820405167145636702631425675693482260995546397546423630134594649226585778368303751416259987390774951183269575726535663634077244162761087604356960287706522952718422408761431234158332161859141636534587405473785615675093986949319708323027738496040581102931716843191615372187930673640851029765165228596902427841967497742986419328255900333527178788789856798795215708125098600367040381935255972300222671894244121044446021736705002233666671159735463341661189965702399911068166231745403945463626779475662964314937166390429200616508549408232003348445437936135375030257899777192698072292693793311124322027842013949226298383855663841815041543746729469961290173759267700390473007605103375394256535949836609282477646710732245180434182372384393650900726541156989007180477515933523808109614680220459169535645868779003882032648345608432938019371312253759882512173010627449227253593655699882127046715408812426216841864841642207135806653355317229032466035717347405186323018417952363227530537242387976239520076924189146360476872206518676647164811924522726830260913906043114392798936862026402967525980284967587837016459936754196558903571243096339661680777332549813855647880784383058296554030794117398315867119683572014461931938230081171304177345961736362855642229405927094770622450698380339210035394803195005814065077214289700705046640804379465749797239003671127833661318815557380757099769500790292728026810589148242999798401051116066489267095477895303067286466163146154239842350402618924545267889327120220741824630473727742000168831262237676397480567291856220554012539989250909450328111760682779014024791979015820333301869066244438004478153436123192563901442791341684767235495420483298317226180578023720016735758161850986831226838408352436195748471149342613610559546990039586124805708778176530029491344126783374730148834139051085354587567587905397778067395650858331118389045701579542642451602490584627080966829487584074718012520647386998668525085315585787312879525264013560331951154531434351838636943970972995673632121810888937199577505873226846517088105798970191070624482937807981538718143604762316625763618053533120302263964796060149570117110757289995679602436327597470933761264464573016063282880340960752019062760459498977076741709340226792923034764279928757940153548075774651433824827129035573435713511819572188450799589568225313806298665040447921989631855182553714549711455952553525694282745835473150962802167198172835780115732223610569620292323789046760445473026791195278055518710329721626919868778045669276626202041409242599944342431537521061949819378185292602143160969737801030010180963310156914250731413411239521251812347417313618395905930641537776424764860765477407953404108874784406521594698036103618085329677576580657516770102256266762159698914049257265973573246063445337624106203068655457496735855922593015198173408461551391022412741503513164689403051376992900628427131849453364648866126314748577848074658762141361389883341447233492999481084619382477129301472038309924428470621777850038880024513906138282999474080384952902270997933002781638887718335691946521066750589596280979468260925622707906200107158695624982296314048975870517872678217656827287817950585525292460978162451226611377155488711326854411785321891898097293792729604093324436123585606779141847152809235396083902281848347997802642377889413173398315366651563732010656070481992269813171808049947679338676549081186644526324548944774375134160148534140422394064725604192344009261029356656963513295024842777962011900595359183174539013311392775829770195252761919574661277719883437420118607694906989800563004729855724101970983862665525441436353423747608644730352593498091078408698567923932525059480722252386006735186316135852393925461191932623957960476338129653540461723993492464045183981855059309478737204251234231545962431697931793487561957046186093436554049294020127903702494898970674790111704356789526236747333159590493878020720189316539070709851206412518424221882371286021896105091146172361598358603371869266182191540124667357781312479336794534980715701293782988269541159060755255448797141376710766523931974410190191829024170328623366388641586074121589438746193817600933321678088036798704047323600994530265682812671336948918394369439972616083806738078812421889044598553504744498503395766398642462439050171982534063259443535344107918781703750871712435613779012038150013392487051802348660962001774899157008999369314580822567255671881947778933335448504328091585976246604386243717169114026695558688277043830401222014082296849477272568382182681637305597603718588837480302172600070031291052623981848484485138438653818010560264216701057302018816852517635851684329450540363488010061657632314231967465593482391723404474162075222104613278138578029403974905180190504253467588177731221444559766883026928499503508709256287573242182648830603452485106045399211112013215227948911000564928328964320084161820252355879538320276003642737669990876408682013417617239333746478997680280160470105901604316282678106217028694814149620113471049599452749567155356694456507077546573749466663793158489155619161240341651136100933660450491925754319278917451067265892946935880034304732446799739218205711123125051351443574171569667090510708526212389727329485241581409748609259497918054384704555606038106623683819760447080585102255049278684791788314825826044238563760766338249249586972385994681435530460994059399899432846918727746151877244265750565517463076790691766725929289987241330615054104239633844924338811357976521884392778987417605957800847846054530893393572073920162423279554866753763033647490943023592024275687958926637942204645549384342623918026512944416531285996869499525145620689450894727526688169202281943225059408429687535491817166477273171377020020886707965126197981833866857165272806499491112676788607773563753118210746559522727823597625825921750338866213734687884392994729903393229261953838241206524347283783943057318399434799500863907064255555794224269764657970519381429837328334800499431423961212168405454045945488743914119319725043726348362608861634493964550866710336793608256959435380483633843824270150435437235696793719765522960297613929520401358549022553315386659819736284999906917955635520428832931431489665730087609063364430923724067703098926235434392032773468615802510683224976720553391934117324950998143528967073662769018326799199469144126936689761240296162931702610102610981081946833750253576239823404170896062073490088170746312158292350624676021456535113508211450561213077421058481937253811438480508029714943047682782872369179187504872862851097461269863567234449586806647948594859376338310690554142417975416713268416891345443092605537327114477085183065494607002771212276172509911488841355851867550412353273826406008388831555054353060836328133293533242190321760007771337393470231300689310347870370964373623864334013203274884641681512117141159816187958152228513780019504433317537200602856653690754386879931145351702532399679956519351624380113497996969967344019423662903780903665943333676645245380611008099218405816669171635543307761169711482875216038581100770502911139702085317024924489936652137578642202944094169856820048589577376182127242783495453238526315598139037648906188719613802710422740727797771073718476695698611267948216582477470319283988698530432087145432367203567526046602695725882401543415791360807434996542492001174502109547667769190349089330912422203146558212504786879992923279035371143402987630849393720237579317151861151308103951709879421684739992952304563917402962308168827371357349112045842314165977760182580213726288282785623515107768770652391379656448152472357113676053278436471335425697374347236097282238095142257414791751851610469193306876888622366036896333093963050399972300019387270855829639854661093043285877295664776552178115987537389232050006672401817605981396173045410644106022670011016968256937038878861303579477415644071040135680611208139760139148800928241766848072837841204485221850061146772357055012594028044661495235986893329443447643275236137327173802172460657110201690332828236723930067756951024016345139399489354774120423788469050956410275889594989160461204958010649785189266818520064065085642857836175858887488690422409118484711456353901479111403623038958066747290038764515643754006193419314104545427597305825891723249122288453656568652559003683492838759176439736368559349044886151602733248331061021563298259477005666936450695862870521648525402357382942073217373348917959929761034798148355236199092889455384426453524881751824929862763651574485597002193804361689872162454310648620969767821564924353942401929433801025530358425272876031527632527135223304630320701478868757028116740473590157497393967761598352501328615520095039821145902280188158903629732948037744191837952781040941033023254608368506737107903829817461934628609300128964356888646474386606921851687330840946133970264049166530621750202318562174747768467758074677088164913788124901085994450051565065326394100129386609694462834542272188692100986172969352851280478729849844835329248174325407021511454413839715034577712060346493271232003995307579838033721907440141542874124435168720073631526488564939065602037205115773221427748145419896223658085081388730040338642168916137008820356587726441393944876201653429687763315362855787417941024448637812472864833870874436888336602563519087571594648390666662089569505213831187568257698690758357315642799285198164133217839448144589821253131108355160369470888179863555761750327745341295710160128578964637559901728497444673109067428965663301410422824932536132389322441309433833578611548725277563259466067841863939605120248543044511867000002406772674625367320223625544813510338671041036236899637978854854262033070039075300253770548308884489447781779571206153411769188138858986010089186320163040775389144094141465588822129384364906385953400300915575681857027327267626228749373425508606273669241326427082326139553534882437716084800669352317866125065886264443830262659985918633131793457068372717555514606824167336530445833097118520255261690714647738633360812022728203073209897563816739519902806752986164364070787437380624499703346657379737218117841535435015986631444977759400315319805276023678959975725806872326786642008021986471524142074698257654784576221359282903088868374888964908310213053863700856267774411568085638704792461564308620280016957340601770639277229838768478200679779031955181861914748764906669496807705939585533671095655817574308717452539918933253789525710995292832395782352413661566519502104248184969962599034155008683530874819782159669345319182176752072662993743948159440953305754666524587885198730286492473139062863201524267383925543495965575777165684775204449623008481192657633966848353214837575939125631279365888301218142442598850074126059409499093870890899944866666216191400266433605890549074174926309069647266057688656774147245957310140275659671483083324909741426642967928248007403099769461106724936522837223330186458388585982010313145762773516491085095864651099879928676477257138730983360852775906083520101673722820643245784452910639480225610227312772915668631181080425463789094013391075430725285288681170489063390599294239081860065875278540826059631315137827711921465867998801616188336247302256991795865162477551748857436926280175958001015461343581935577399802258793333642539483775778213043420816063825114973441736648839957401027077564392517327127159216819427367483536678642870750569025833109560873664316012111303999084822232043434471515415394311968158452293978210986903641825768257569700632978670498525159881981567211232399306804595750095559544355607432841087600712641782565695140063880860418220894519682172103787527075608556437216384526619148952242075246199937276056766482810715301382412375744524898661724837222961573803406252513554174188436681019616816335906458070817524458698946352137193681868915822081034939343571625293782994791431343230050573129708424417308103497828857329273086644020098717546113354678148704469758850375551004998068813153102636040363451072493783469292680924115431044136319928104042969214929739437795486219661960214569263032979670928849965000182065644252478787542321644536457727599718179424792477973364902094858330263474829708151997246484367861802588815282767545465487993947261312226908585172686864188245359999861060254994442825179416806916316318849973773281190904632941469271618063997552120040106432962164509848477655266195431895784217826465074981938144091931362701008023075165109678176325626398768010270967026382101376037454663324318533663212352418030560162779914070679354587219239556788503081663912083710404105019219733161040914130612980531898275812489089685562619423971456122863505950748116317573053005519953039030870803037627051516477146401275370315756855096841727757067339071233355552305538296320344273364824334438036240644737009227548155413475794915141677322099446005471003198187566894744693342541116434805629216248447740458489620129941413326468315352819903616887462738577143791312830553124967672085328524171435327623774162343556387891578390714983875241394648566203327766954097090568400832518743170807485878369525485010127296343170293233234988410520859443369551584083367040095578964102574110324308009805390629408808456576115422271608807920258682456584179149530470796359769755587357460802544335327227525541201266376241182717937951298466188675231778400482380240464662793202558873066584914432800097652165715534453325621467744655429646786950665627008198730012401635310406201825957319098233119589811239791748731962486848992591278935475856860436841791099531598106665312099828940525128843236631699700574630290865086628073597553175932366403795775852466307841505291690039330653040961212446461259280331899863073957894207474953236996841923805039881360011117643922302609739394905780069759083101097376712803831312714752859488552526102206123357323453774797188384842583916756638899044062224245736104800585999407096725168778660993159645554390418289636808885202467765857729169877751795196452041563437626090884585674450496815807206260975717725839439965044190500735737997343049489614120150859713011454597993187959739010822856898244138297996076778398528578193555482444577550856350574714713418821346884465806257729420056988925855022527435339364643304331669705497645787443895612702520229942420990189127919092542576588156076263688920225633648477619050712639014440940398952478815949562294009501815433144064431037713440553215104605586016903661765513835397416947788979187527815992770584257169422550747757514277045187634137979385432696886464674246145378724275692967675383917023672539511055078500892472523223867813520119097421291911171454401989918440401854319741490169675124385082322686708219903184491089118703736371038945154585242273672968319578084762221775076333474571094542718204861903244365729389135967105667688203175257726773034430418912739713963662698338216530520283210873840807659572699735323652378689979495299167486169100299551622048921039272320319354606858800208728290273924372014508245738779123624962310260184214808063031612646403109026343088430780590633030083883400122052461288432067128193584248896822237081895704245703871799650781113507092556872890861377169655751628237098017793580145571657198359959700233135550825360872240488741014804051727541217298146105223138629118228232334429721621191155036002528710837252219100887936714031213450107009390225146676445729999150815116138801281485408475971068491014486741635174214657733022387604126855321944313575596056022378692526752891441552036812064468122046336228736540401910724986804950809824563022617953527861772022533606242396795750293613193063568001498571695372760542427184066764301184452444224628042522539998551715326808486623749098468917606711896951961584001853036289979249750011854724708648581508792622882170684745867867206859289715186190983534247327719115602010783618102658873250319455616704584752475182861030307552584322798330947057768625625440121349662519667513334286512435506932966128171302630956768573062195649987707404419225829437965099786975164778853919015340354956177601234399182680663919275177842710255471732197882329229653830484064997097415968764554941723152909772228682555975369365443250616839968602714660537990629702158620004791181715861279852701711669547159785445074689249098785698932768598992340949608227921250848953437404100412326210971410821870469212099249985316834366906071269443423185314599502414712972499840042046460223990036347874983428499770763647129731182252216120109121315025712345901550184854738883888446956646857325395070855838284474595406276411867196370903487013960038858495656327961032384750890254603436239720788856489206368394467822966598992128180761894037626695171168221711134733375648748492747055633701891231684225233761641029468336575988018572674322189257313073195584135539055505713259206016131449668855621039606936532168693373170474009114750362383569298685015298595511423844243143008223782756554100548599320388951811413514438656202643200492221140912362832041595808165083383254678165787941471494323705011367923346393635370049810974830555871698659330577432919703206086406054761916285059164410365641216796378425671527271416802831428709111221001132548729567386586238935850196975947086962249615101482501538517565836195343722755380747135625977553013955459941178475587638685740769675022921279089688258395880334085128577866927645241675961199049951060646269054908909339408507922469525868070791885123287230267609930595801442086669577512642405836698857829811339944380578386458558295798865425282394687405189527120553730068727028064763073780476649434676911102934746788546669316489596285820210236916977351914751272497996567754295750940183762522439408979333979298902113580122556292932928721213707011999317634816112218960370168437392083044097735412682347724113271830578965719258903829117683066501309178272126415423288399905375164985135538422581982100898775857027632090308897565566410258132409270158862628977159616751122542106678090295975524409382544641328371966625966819593057535619748631334967938522368450028254431369307099997986609288027445002216493095325176047398912068943546757946384195116190333558591494827162193707156136217913345921534018633310757952406336502530652778027663502858669564712133207492101727814977659315604526580486418848732046685167057568222627502525298539536032575484815703340072031032206816197876662207934779025100890090114650948639348681944218181687939722335774742804921954185410138260879628004884419012475714303677843002393282128003187691749140411238895355063076243759921759840817308342603771191101269008289779445188765141417802389453775545521506195848486546792678956608540818985043673109455213646008542798841934165988787217172992844895236836574396846375018771016033005127353664599551822141986825291742026759004615646791552226305885635276648074981637280833944014691560109120992377661858652526272143826095331235509909136187446214616617951251996887575716182963364558355012416458078435667443301660968159341075647714411966345291783523813155705923303080281412770355000503620132172202975199855822017418478351045776778727353781800097788652598475741339318050214612828964580597411188705527953928609637439200710849913898063422833381757814885065419606126018413376296461707379760416788655820906859279407671601694019683015371634288035832952005222267340468149437099077539812061992394941525270163468216368078545699718529540745154880218560103559306549970311003235911583349159185572632020169843300395705841067221011279030763319965541723661699680441916643386536862359458589453029054096731213805206170873022612020007495574105381072131188486460034595747748337790640225428178725682064764555464466076760203600944779630972072961460553521738904883431691765024145595847045790395995526488232929483208967400486976161559523570595235993559915427078143332799429381100961018446945664018682460012954885877446210344647521100168655956269150826538038470423633327990046602827912354925383480104611704809163636996037706743993405069308687343854723195014552017094746950255784818590827596809509265369683877698862998752149716337266741742489695653175545097236240514092724824228606958910707170061155810258854654690308731238501064596416803326429599789410917684692815185136199063459022467787609916277694768717359591577522071866614484732300240807490663796417816492331304124473288256093099574482732570489992852449596279326727914474725487129431079487835709893277974940337160652675891061271374887301427671023707281205284940548685119827971911015090160294846355033326773757783226321769821846122057517016568434430180657854028078065454507547648856245419432557373037818212109240109903640638444976803371213015522686246175759760554530245257702222575507789473126863238557412235082988413863640301442508357159243955946869277679251715886777853163785003834978232085233075594160086062027103302109043231600143909273018060686781106843214689043441274171485341070810364831254245272637144350515044387041058465230574363202601492820347148035384120615080914392980937875584036644381560494328323384904399740313455594017740839331336145191105317359972594162990419840797534433171973081111079576269046191847565519306739943418802754814787356239962074536615109485948461436464421409042293766186040478107428880675658467167781680997639021656448589078140965130966425873537478743924015575659802480428598162910573830005536183173836744478072441622101877304837384282404798967806948723631721451006218727246511213233824799236595037333700935778128475034585462991010492757233427780177173174878315557584110412680239412786861708501918802176002735897789577801838602253025895219266643710571501176750901449220514433661007415504237852071721237246732893601091884033838311627356033504150494762406328615050078111547711952693379620518421866698353538254794022720191065263533490875117835936070900415273680106198845029080818691987726447011626132496369275948027165283158256193755506297251383578883429403709070916766642346774557014091061776403208070741288892018282976788461777897702462927974474266913260543271924778572512361586988784823613719006505868143146249051935873389062190538659842667469992780117123608390699521114982964265849943198728197372773835625865585414656854575506636480148940689804446787603979893393352407982905581474736756888512468936712611256553238248554918143399635601179955260833515993235220265214304136330697597112122446041636819312886883411619672210189856663962551718392765248105864681746988498981339904998169474467964460242846869129379963888557832364230991853714723779994744892891576455430254514770606916075315130349062941151216363943797498145171796687392678614519225969865033990871868470083342907700073570468781299579895818605203258988408590592056761694842449156244805301073376686764372077264570640174454755765047881890499031962407551199024146296261824724647664925094419107883026341973465439580614401752800569041609362909964624221594141658637967443352121760236425003365971850118525216289933647725666731849798804841405470966767778674559162874554022417880234149526355691078779023436802758778212543685689407651170471915803500340990859377975570382457347295581641157248825716358293765286471226786770116576808378491824012718561469790647774904716714310009338315914763670742163812661163523847159464674439652396595511432332517268295018624014750031595107989518454461219946167977566038778248636591485930307331748202662713567265884629970704068434063867563467861878519384462136447502278049820389740309599346499795776129893851432564439734473388748222507691857069280568022820579764823204571592563597111443941407771252346677180431358359560876396725767294514895929023919942921921170978200056721773067411084927233195987635155973063467693047122828254804785839585510308912459051928448931814731915982843186105551253437311334605141371553517996895048741335496272728485512840202991068131612608340123685982613681996419660042469669926810219944279273901669567194987771136501355184247552497829330537422252741468780004136047113784573692453499757389136128782703838086180063112542797844618640274152929530719556449173543299703283698966856530500057879789005332922672590560625453133644182329099074088623143945794730584399116992906796725939670091172097134167562416777104451853532495872041139640302936933452621978565362158068409767143501076384780071554185203962042145453641375217359552629256609847272845048631593575523100016653194233691129662318434867443221444682706845876292772250270344517891184402540959711658389846845781288025025382189998112779806001657205847527667387403679599718953568656465965431605392550341650636208524474896461235690516248549274366448801122604051545472163748875149593764849668722745225217598682186617313909656032040697146746470071696570925101337557078978211548820411035822216642935682535918899959045796087050574315741978633179804601233931310292773759105188674803431760498548387447650523832787654768878646381381002880933970241903236575753925350282650694561691815715178496440376693305406277371585227715198053872697240922803988865075704307113763580524602681343244363073612303393239580410770958144545219326670210459913748611706756874487025451703424048856191042493352710299391005564987262615947312941521073650683148588042781074570885250446057386741452986520063064444717178339941801031932428883171389965497567768998493732171045236720126255806822051953608652215934609207443771665760483601562366357192482599994591351892632393582001730903295680672642512106810153194399579415667576462492638840588257349261855644976914342023024455035704769626807469045299963167820620767168290344549162251858366513182153000182185593058233090484759796200588369028246108735299229976222731359714432807827307785273701600324230572086992942201811204142607532916272833547424249476091017720431277134567313857950034734868069641554039974999451991410503401912431411834376197502063236034291347135963176227531180841614497951772956856327254136227740805243298508079217114548973467611700355275620540198268659865263920500444468395588878970157376098151843716922334313709212517930387241624390711765103934091721608555070663781873264181131496740253598869146095883120200934701779169027725338112439573645097237663337046747733975015946373308678305427307982287675033363178856962327036341785492885356908475614775588199325207359048558153261995312170458442089985917191511171916905428702100093959919508264465238783268805946153862975601000542577263774407927635587475455146084073277793753670368567466033633822795290983731001143723425735521327376012443156685930719618793119600518483577802919361802351100300424779672668646909099743343792183966675893609804160899584016055497092440542876339820063840143012727120547132063010744812121101844836025749482674510195871669809821598722045276155862710311337126914521543086960400373301406423457270596841892988443578851553811965449788870353977031112324210962358052954586496911842952181655060400436529869309342262453022610567493077221476661482193690648853821486721926497207144104578235033333799485445994377456468110151755379628787685502938943588669265071203751279795110047078795617486571240270884010658889131089379174431451065346733986953596110393320223667755340202341147077321846056906738503545869621446781725640284059316050923756987296699106178887774234632742211289885112959873643062197792281732789889243010244894669094012558864103002514586504645324824119657303841091758331820446443971716608730514709103114775959346970052325582476050299873793116432184108398434299234667787095946476431338025120201027798058369021603686749852627000999592226945112828049025292559601463143862542057298063891040184491523654363628985600168955583730968913733874390162450058598101611529325008235136516794945704841420698391490079286482791517955027095225820751678419175663114041756636021089193457137335717404641912445741291202057989032978529953772647280764697695922801448820906786885335138725820464732689620828512541946724738366528405660261132477185661289915693922304833968641010968281975553627558489710195482733286290569476385777836160288342243301125347744842832305008045289210957682265676705823854755706351625208016218395583364308658476464718060427356954886821203101930025916576097495844735691540441574649231496491852530090731758725325260654865420748195245130145383021290959415726623478495548675396695398628390549346073170625877679161389857666848768497260910719282243923605994239781326890778618959385615749662773693728687452587567202172015051091726412579679302118208496685950276835704553062904808894452802298067373754602517537860134693253695802545020475896327550746352024819961005490748288804629063512435593606491547129667374944020073726013068108050857188359984371124835616064306905745162461444544099045655263463797608296995242233969801477909451916760548892307705949020409885794605168851575962490362279223043090563966851288000892396084347565463468559424440746642541798556630037575849374291927658261921047651686193872238349723087224629097198386255391445628097335234736712485152538463481085596665226682490528452321005386196156814144637131020127627203997594036107287912369515573758611795713960420528415304203793424143366573727673081114914297270965592286838613319745798537504137336569075932664350820422815842216104192577509454192816517578508200338667361567874847716785200130772990606592951855678619849969566767265206029256853036695393360004585511363104396740550840746831648913548580682001824210057365908926290389355229641364037810057158784718258162185286012510116774849353991068440898244641661408396487995689981485523653681509928574525819879285562036007529353163213778884767238892153014307097504817078854177889475079484115181153469494276200750041171866469618514747411573433810285120880259760639758517310989841337053999181718173743931475886664202659989510272439465342640077354324794241255743727516827972310989960141678725217076985563022667830120729495581436037491144649478981695170747139829632464690399274031496534900375595261958939703514123575022593526990921922363358239090680220031385519638234467969260344083726558246914496979705422826519833771079604007173505960933064780411955399278110602161599190998205044557530076896697521811308400943339385991746697428987791487438958795851724474445146302857295142661485410151833691516121911476385472876350376697503624469050898813781923502529451349878198685964591262584031279598325023185590790033982135027223620295154946594977985389969244831129232076938503852085581984974398264108075928109966528569007345263486346509127157700211658552745734123684251370964803876637916813795723706897412934812726139704312704423942042675027943934898651061598434290621837060580327729996575170636786895530573950822205560517830363160480025230538179826795727375935292245472210186050961467702073011127651575128581372130758619380964063438094385799938373198740458366575256490520266530436637256815545085008524895081096428948771558538249426488175178369861218825355492097213781320774928733615612080144595987087071445317061559087015333113929227805607720370661596883947296436197799124516266966869416952627737198083728460911532365040545031886613739414823795908701282467406384352142905806102138728867321282844611525553490300566691370211430648182220979907498433153704614935674981307926363914110981342063959069584201031269486793624253841209062726831142543471057874246276697075516344594259939161943329916789474521970879301868277071295652866574354392733297249586329940145297987376205927861657807035498108890663060750138153174183660042466296985825949988564124105720233645317142847658541142046002139226050899439970825611784493999889016362860955346849324171646864640560698358422625321199275704390758547650822681896611999737335851871107755652854643349464741763100600946247458585270243120717350719667291601110126098338644927167484544257711010519824165488757242503581118987648681772661533461555776416526039620208951536591648180396533009111604097566238572798158099297574136179849408578391542315263609379063709198100362135676450714535363146292819434754364978860421640735211520053266514216916896331188801762665945497452277398730836348726558998714270782502803890077537244034522354327181958100482084554744811002678223440296707509532307481049907330865276796550335592558752790118593865348973506961645823283396658291796767647509093211050855555579266454823991748100186466900433728380889005432801164108644388634277764677466973471682172233294960732353298041532211624413349860063542502010137258021516955852564410705211712069882398279064525717505628297321944089866800704586712067316098041065519473256009566727809836900722484302308250058621651790214916790302119874817899238782085905669716631503732314024664225416746231294172340262425165987638522196346609385372625027507709803198387280862463144463942219334950608100661972222215858417907660371031852893405365023262959497342147095881590032848304493307853362910390635072476977163807784181741912144786258717077652078928321267319622410639181370211994948161930208591993056683909675292758460831650209488274202292046259055248327413163616097757131935324846794633813904303464829876520157081596792704291421545021559341726670136351662187804407010617399824135552829530569511978739213991732450674590742522361966763592458707327422455920146192575864403998793953053941022990030990808318169672707959213096118627210063549080251868824447758414956555859662529172930590630505039270055068457424466527623211262505297378005693999732293445221884183525809302034279969143901132252985463437547444683993048714507958733480422884339760778673497183975673777570197432566004342257669159113130674114029350681795488581055270495495396821292906279481562469240009670784634569907486882114315369399699253006137470733098397830857438940741431651514257570881913981968330318845302479037150747978426673725037666605946909479572907085842322343899029216276923927660437948854558999340323166285013506413942782096053353616319244647044195880775269845949346636982338891537994522111069420513202834112209747069049808192669871967351840231847117190508415445657104622711227699997237638166319574581827433852081113934411981516285560271589209563269175403767410731583780366290539449108683474689236506478000854308772053309801933173627888918231391251256440281985402330165209859201703850578798109060343963723803093572792781736619364279561736203350639297685544233221139521900746060676967543012278474095408639381836762927601099623494465488664252140862153089413733538695172412193251520459219864194272925060581620322863658812038350520725654992709733981443130958543572643278072518363835927479181196565502490704722818862058593669658936348329811334373225875730098822811653668212489459013711806970186046472899051153273838364371208760286065871852206240873738579996217093164206526310128415935516561232277382982305740062023174887914990734088463651784288733398347052981203919534769980757629986236592267562480070238192743098515538818093341541159641594051164404950352178673277068593430211118768216411769610563878150858192091386592195156775873490793529690187799683772331067662919851831349266291162965904276124160296353994476741218119961296024217759018345025799877614226989953570365157162028255121275704988044107895380221613283171445386109083562143985608231107333949077551956075242280282325195955771139658821797220806167593069632903877680994625580640403539098388110574944134164609249436530939425668458833734226702553571636263621711562238155775220251393249609873928896940553160692794310453965832491978034051752244597976047031030442699880610511955751947428121169527605447933095885246192302421186428294716481331110495666834454714067228765062674418256626650055058282431192513658931798671676303516020819333729978429353944883665384655851396170517185420370983727386533297066099470676570921270199408542831671069870304663326412128218530411000231400040789322426747221415474017098388061857510947854511622069065942417070578073975781011317639690542888578768559458956503895793263741310437910492286792627694859427570826053417191261474663382770560986624797835544088488892086113021134683233930402966315176287163116154895396785842665412547685296363102725610180068758575437956328920021348617928471809601575604056167848808545056186205739267962857818095234978814160828510672299375926136272229648178048419173725673906658106153772586465291408903627345665285340772323791858298880972874673384314792614609242258906401995641511873810788415056329982880624344677997437358160131082430189649662914655055675700809904926052845987042728058131042839215736720481955213746639263305814970646651679116974978207278021010265911185025402727361708000557731976826624919476021362750648188847213836448821994657923270033566623062001062604227213904464579225809983693865593453394899648954157762177803960309761243854610607345966684368168022998356142648145636192207631045541353671796978811677943268843701991883845559987828636331614647536250157533159859304656517622500456928631750364345333604412947190245881198624947841915262629091202270528174746362089239400494511785565622962738988942600364859258794240736519103674312603861754476398251834471921823043027404302243934667692584195036359029653212800210313422676797771504377789827522767733035250366376434057722185882901465697407776622810656708894776853690515674760376483469384247622738040594806107320919183008336100620581279838027897714132733585670577619736663316919003601397275603819815839402075534721333576970548349458215514185563592733636676548421513806577304266673608497120788394848637995414808430931959649568800518636704335218844723391260892078203074755532874623202793146135066802992899350987405269536560294158419844231336307571693184189327084746744823714273722635490402738353804763868806625845241969682167851263978480868580964701797510165735144571392395009261508985279105589052405761802633974801867453774460277738941422908765737258198909425100130918134464426032087267978041715660848666709425050190699905072269993210647460665117738941867625651219395305160905171477796992814959810819194545966750553872747715495554949102849755737902522215638763817604612391234555837748438735870520696618194564810389038878930356943978331776052379394499252963726269117698881843194722406401616863926685570959374321762200142360750389677920669589911557278300801540261172758267893346341590131114601205835927807805945507353745063307325632072707075019194506790434376708413575610778512223848928538603045016149553242078668718801706644728801161562438130616570587841575641326144829047774108733583007809616971187033090674702339344962558688682808857135411998299451464853068498831835339079026070064235549368842611290322531731667616312689757136781942168517254239119954949890296803439445573294222388892613142603233924123689721322315995406278779967427311241739555873532675089948479633739437224461999534836468593471263723000943326313201061317850150708435662076511096983834714288434327236275547709384943327313929922654516520758020969717275653761417054007613805166703743554892876677602694798607920313327650375222719672080375019137296428713460369421169279679552169789600383717549611876569052006754976621553814798238502349091061147408237706128831945463577728523486141442370226741736502896473246634534335398108619987950906563753998947375679973153199337147566767524685255488047754629001625061013116660131434128118914025846371688462576832739409829608929207480014761488916429553774637107449923318008354369243217995922406624340766044653200721111106476390562370975408284106954151763466944502858686331607474377587363554229088526119248518334393648862948673757876256290769876406716449739045005253312659626195380812424707025022603226734975017941932093276141370435095628374341038223340887735911668285259866021178634767166278448822561173958895207478122399688677210220911936060927073943415993078575789158121519042560616764881035772390780128734226049684018223979525362344108040495636986595902754999940410946174295844422866212302209262210292429840312085315018058485540189954581315210459165417242096244119951719918291000989130674150543602582585671764032918514923703535691218908863384227539972070516152636855600315079244636277494014761198419454315925003148158904429427216959974272683070285578093889903183297019292466036710521062922017428151630390520528229971007227384141591342273692486543484621007344743607795475359365253067238149837431994842816731962255820189257194083685816839850996686995630276248916719509169488289380963450775813182602297159682692582662874140221143025914815040746452987266464055409215395262066206801830738228322768402913115196477690649573469742945107727991318832559585937412226833492001983629721817153361367371561272649519779834049065086988380072166182825458125825179298953248484728672458131598808884484308491750420194537506534446274848275352823482982377336973802593969701977956531445082583774718914598869533895276309986781965318111253931375409620597732380580221450715511800010770209072300795992058853817730210394198283838829105776511349879396768507439282358952403740116343299872940006299008134434572119429704463266882676896256798774868718369457076185582294229169940979429270059500738533865262020975677969689048191259004971476198422032253879553993888557735292844521659995168884668676705319323298547617092308478035544738570998304402482518822845658129683706869927097742865671250844335549420217481756329532793336363645314827079055824431917359575663324433173692362747687647170969347089257409363144452245763271215228580740559803746642223983590882725028685097441301160605003872516228973091506281814185671443505656288373641779684306704669893055312427503810365324669230498067654830366724778223110968249825075230512108731578492649000528063908752192653267434512871369025109927463044749169826867344828303164687458730932774688084906390693607107399336868228105241238071206427531750586615792896836716307208870416636518252335942842212523792322915429510180854750780076838890978232192124140336015419502639038143748702129608031713058247825726006106650512204949568989914658343193488128995405936670205832403796568578729377897946031530549062729597170006692140987698436637491839941711371684269083068340793414800832520226460554122091548850074183177291105978751161989309910685550287992902354417028338298905528584204814759446660497562378986595399858758778334885430663382428537686978391093469027077217235084484035447157091079439890125095048380840654663198438340937129008596039999743665166440843899135690844714344784973672396623843535710790877541728084563519847319179473511243794119462969669271561397170982927153596683024792285068537656276402725548888914633423312475097470468169955304029731676064879700550708729164511015658469316082226505204362829822948951586513507082407204477440116567683887115175308153772778687726147917054171566457999672281773999575851037124748266617191326896831312413243465198494521557177673290347901953265962258711118981368374251845742195319084500605559094283632890220535495410492540443942852132440786972423034321874527733557378557574481452906382667552290323919215243290448759119485779163365786537283166100521297392994466046379473559756625271753905751831309824319541962088377285817491214979286236896198556075880936455769069561846592502681198690629445902796870947404920928714065828153376623603774886170087572288822106162895278018886372575299292284799503824188488233537488937053138062770822441827636763718147271440682567621826902930871679498767568974722922500584542370632384257786297568147314339365277237363373417067221875525636714982137534002262750826681477693074934535055938357171501585087153313853871601332249673613728429505539037340467477528210578369220808153293464350577911872807100505774357792262792647028636427302200462237005881376053069128345719692349817634445215463117181584760516098361622796213060183984619497700684766445082230053183739863587193878817046335305021790162114628327047700699363362630197115407397117297916981148876343217038785252646975344679044924732443779881149167349040447507410562112481771189078743903378214637344626835813974281815225850166362842525627581984326303396326722419103385876310124653678271949806938357951527860156128045952238215267525432464453324781573467297001953643944328283558012915161574014765055320480316865638039708345550806123543248665364449669989126065027895408062005565674644859673887211036031395337993580230118955730817668242767970790843271015804585374461726938674495727582508903046518117180798209973824034997935809211592317311972031019065698648783815365444065760136922080002383290759057882793105309371239411827296506994607425112254386272610061277451309387729307731669971850037750427752988376902235589009590726684746460027659254541786555949361280230753236910624139743371956547402850364060560153973578607002303488267363005051102858506400179183774785297255808253453178740485803535917267995915363444822736438402799928968986813156230570780519570289915929319130067740740318104997056483267569306969555469934901716529125940966640575246971598377307091770833873697155915730866879037417802643389916465188141040999928711020246195920029460438985596066909643668759392827487726435139395498591961362439869281424462299060814897685644051139662009807335569819139754839648544638854024109205748263334759317903092656442304609583413505262546732492723530132092443200086146441018945680547564602682393440885583987427195980073206963394369933334577090839453658640320181913997082528223206792185645479054495464445031761392812124988485240160328647340040377549435923039128692253087501172237653096744090517901497503732466080410207540299074929730082238804859428604798128175019831927227662758245717958138360495696833279328241770143241278275052213163067992132908235043220350767340174711664927479652997547408248373981547592844845034940999036972180836897688157392195548258446709461070129670759629905053527511436140545796183752155719108200444603161772658926425432166420254053938582425161622578618842858601446322322047728685499967591528198334506084406373187644089144552148927735130010552270270601916481125827769958129740041636883145776312920632432486652428402329036253277695096854043281771958933601613223879599992175432736046351384126691344442950633868060100144504002395689831571833286031836833538031564260889647358119931300269159518976054795010262229320561887804472091321764702725037548810538198172309456071747235187322825539220613530569263058736218145175688425436752297383488325528878994985491817546925038114102737904701217867881803171177142068006070998001469990540930742860343948327123475150302739751207018487433838806415651352043635699437522150379472418621835455324506588949312614423427918339742725799174924852577283208692521536781119988432645819641170963151973392737772878432317116544723189862582202061851996643838744954713680550849802720612404359257546609232138735709981493086740385465151547447904458076618089281777263768326932461965345992479049097572453641504978955557329314071231551155604901664704632213540714934040149766318943302185565562678212237929091372032371421063419644219186967405173138666027573049856599600981164212255643645959012573069026948142669373137446149764645322027375491593162457267481949500673042772839191665428536979246971100029975649605932003812611732803258448378348679667763070212175750198673022179658990723179932218051380321785091267287078444758539854470442241403891214724514120785327518677636124222660793722086070785260927659530273565410714512862268088093181390857087130746193323173653461207256583141305223174316043067652944563778655967694995344214838906680091825952087343603912207905480999840830769406179989986447936474210851319190185518392644460545307920688968743314845577579714771367748578383164937346597527600335466054773236275829829410483403578432467513287473614848725130297406788699379206921253697857847019434240458768909097964669829347853618774341119517167284307709236607078378646479187368591649751241733807149472268016194735595050970473319724029208228931590772287901039183819682071606924153503019290372755287380438868443415372664479453770501946399528682775450148487524028407306603812511160500202210569093177706723652311478202657661705040844994518867007385619820785116256952131911712222479000173783740028704097447306829000114231081514577330705093363591292601098321835872139950119124115857097770388227384554765455144736572329519414679987009053069773096563254177949059265684082939673542488772315076390994635190677166451287867921854684672554749777439569730213804482436169776647747893050193039325933022612394645579796531779250386668328830223934997417407279784958291947439246745473521591441866143413335026652211308234221909000316145238380166727068605541907333764069907666049807847600334260683197056235291787769068961659528578765244110561888324122903578750723870144459175329612399177185875157868443503285152575880025981914574383970428724358452188092146818692941029446703570936577480914390795541289727802405226171021824282133376155206427708417334832996092548988215553329266534340705761326879856402101083581717687027033993226469608927688524184565850344206356666524902140353836863518137818619306402345479678275581439048243616084341588961123293831341370705531185137732130049613070187483234041430503672044549685103429225054285148054544736639443689181560688055251111907999879325869582581136496672468786550834520574799812603512943851553907542409650019694149044558116457247287557783647912629441263961648076217041604061314486158986330762468537311781663318183998594995922349567307413918825596533519673413848262703239704873618762287476167845583252831324132120152425775711742097228916086410873389700147734535849835076622737196386029779045356738484026327497646617715692575343981661029752479554392621893936460074711218156820497462748705915839381628604269698045240433316810341374225850540505672920953631584976376057497538413623584667522049995191318451716159590158080103217428215563702202645063297002973388884256185048095701010016642531605548227477806574261314542272576779467701815293935964078348207505501737478335406638842903682394367815815095760319475231548431521450596126814796086473601065213486901918169872109233206753278681319113987112813235779924481417530990084630356212210143564091222134745526445797867535652099169664101987670138021474091648746875270126195145312031644087586231800970827584062690452717621078997413494622260458329043419935307249432466095913166875856562477269273037929242767790475996746628743033614482742309523175403099073710929348409642100782340686666261753222764319391662749682266182131336648298918792425112285314537565663826445471957605720391002209183006698615302114143930212195678301010390199491189932159602041061781291179873974556119048409050838823303764434020826022860363991928623396111798766322501169739384995215348242308997150151334631086148896364293782560386369496025526317296319566116749928091085580719213571260791528061541837517358510154636562318652125584924620327876780101394545616653002702376111426919408728755436633775820216666444567805445251026455023807257809193615909713639640159778106058191584828756829699630554582105062433584967963312357744450088221631391027690875054504529589685544610126117675211158064526101135182955005205129818579340594935605879006911033877300272751908400194596083131128479380415637380095471048195578966274227741606153919968143221694970083174324724473301834401233162444607396408146852745185540161112365147886305075614715998501035018335816199804779120166569760869645044780256424758517125818673105473121810816138070749034904708102192920969354354116035097225657483691818502758946970201342354736891414842415532403231447098870096074571870609551546004790951298225384578625845938959565174349476316507742387080177571217011056072084443566503476103458648624554495316777191727636871378928790261449556026740889248606915523103156037481258838842293521822907460932297152329333365565020300927928278409827118971262369728078774783303643579506218386016408058488499995386548038762760731247585076460867012476685922682766301718632511938103292393365097512379083536927058506663700575090499488686156517479177937675566648384735612712306089862832144758811957821628785238002736720898662724429026467664410832248218888605113173016361875919842790835733303782948775125518971121609255477239043457689247069947256179878236621175928836154785809875778179978307494438019698530977549534941259846041673348357343743683688791692981047048876829994737191303762808172109532553646903818424433080140575850867874488059581471433298777226455837868993404011188464276174751204497909048400478249104935719545666886981368811243622579002653091137623018034870410712636096005803334692070982432706583869995715382180039259897268857216793727928990871744247830172900071995931280728887594057566921871295147614022444868702357398819748647304463586515273659537311684708397256526950257539330912778641733701942471498693755759542944449010215375121411885636022654356430239694023445143186265715896966350703597796820028342168536440088120062976168964315203565116529464854187343905485704383142707287289251001413425766274714326626138004759561087582955079887591220660011942474841001844274514745348523711855042594566801279859504416227158378753933803243598923506646593632513755905535654964980778145778588532978001818703187330364805199787549160976319874221615036510176485330799887792117112017499296557585862798974616160698106301477423677641191174173985093304586107468422127528055355385633506223145022202499193907280018379659349540091725948149843533911240661534126290058188677137102490041877034178740199163640675170786939003736711620219999511242154859896061527696006916372527561021340887033525619614218060820460646645800864190914608847052935950015694150099588380440068823894297380263638747969383913245897955829294130163526774188898199483847468314717027611049858050315503451189671683469240578973999148177633963789136717060291166477718361894201074206102483890516302397084564473675584225421458853412303219808835176075762532116720388539662969845454099364463785010633282278690226080317394139723920473945168411603412373609562742334383996054466572521522931541912808992620269499770724151675153949023698631618926545186370636904085259516575724753925436001760613601870983613631399168975058475962315443953597343560947483924115693498713347184479447550351836264758822290483324044473753945443259456548338343703155166333647064401476827736583374987165295862437530088930254591511493770623090484048752112687091056938524029863010089431709489608989894992819892973196317519434191858858659256263046327395207547684694616457488884912990778332420630941376023458669670724422346085509225239070729998699189312624589719905942120735151579590872176993763712586523067699564381725687177696108405854596539884351217866707330846088351227872816592826118345444719652724639021698351324310884596628051866545986270278824944401396199223484632598157545952066326626194047225341587669676919591092641386368733156184362520659285573959915076966748641872570158228343040752191684316611306967922499428244165401674295178401623034129974719237285095251771134213985928615652361641888065600907871566592649670487870881494375401293183399221636480970769111147351172975213488402553422040306558917555188184947114362718239769405842616597718233429613367404200195361811616653605430519592007863494486805307849736990255968871710589655914314195314129785699705337868128565704571946509573709606605716901612567427669644403914889738891709716517973977758115086969701166000732691037597089755976763931354088237085715526533692937437871030847612638649929778413643758053305148607949093385874522917628918148943581745995872321755069296095902960973623802019085392076952393586675102526200546040426197835043613306493541376515612958317455142908390077375791724893033678456440951973740031407768356022181711110800805735582631749712467958367399106120559935374139398916111157068590359066405304642768786929779985996931367053138661197159779157202444651733699427792066328003032678972712888308637332020601326173867240598001318997875252803778102335118237168078755141737043049328467771674117433775637287777976361246344884316737389048063084048990549603358298918145208680677673672928649085147225203243599363536398582151765255084644014427370989673162439615644452051195143524383056831547707718145819881964195237940933828817666491115802505958993160436605763480538877059997867818610395832476659649115266673700182447820983184154549024607525591290403523993357124754621666683712991888951538553832344021466652521504082146457070288080913869904206799716681270352404124917404037163014853324297148773321678296371371913500854370180656152209630958227516941398660679401883113115660207334337877134901504811214759161376798074178108084031699842544578775231572018159427278914014870868699158848992908922649379026794725788605721369630506175948806224623208777062768776626618867857068042778298666951483633012933960001400246240484228294582259849244893926275797621104166534583168472908760272275415301527182480920063562230502960307862252960352638006058716328934939742551369970589177613561664261438687993076396065674055771435043579535078327708254776291958369691437666425201635911303675894846765554225035411129866935898149957492580611004566823309664149387249248473855771479902776465079956679246089989425698662747273954883501137243169219520406330957054310113984269735303896026136241351146251298765618691640493676985744903844818450091943935627047299108357800724046945500880548146345884660024630808535470720175410409100423754848885199385192980321869641038950249960259582699430617448576488729057093936769904231686999831943740401359341219439462893817113779917553952667768731663752513898120682086136799099115357166148124808254933169586145630123358953162517915207962000322327663963992048355814177090356244980319617302358914047769136165495191853679082772790941764930000203399211031744329447044345906630268897417512611813252666275129417406612552858839947199509070635229516602873004335970055376910029494410569071337416514133646939697822865488987903002492431411047802768600731154518084700289878787253599445157624609697596018286042978476767983817453513973472501267383466859315901822934937442052217028810205514945983379548654503065177284393671362348766860594560922075839097047278272013731215622419117126145636386770746314200929615688863487468249876467958654297888316977972333389559312638818904001813242269098934537440796697733836705968706838342346581713145779123666048263839624317023829374966730620543456376768977337928228689707888568664439232231546341792462634439552393068617721168669348427215878857515985574365660000382494684591255940680644456262063211332479617208098974477719090026043467694113828617610669175080351569494884548808606856881693992661340583525098136714576539650661862282009059198936431381321574473001457305094076746885078028798533793577500468955202785300067297516833847951342979524450392515035969376723265220737980465208252350113206273792798042448960074430517553859652697273808323534745446400332485119633850145857499566862496336822188278438845140261596387339446898474694225786055412074548346702147487576945423208651369103871531897846790109459050584727451079360736298994997765058775487184220578031855235480603100234215334678357796064824732874165882378562525441725176087732665541271479072798128232221115751039838379023461443713977307506026100942152396712120637319242457193556840991996997368553677519854645735290683436485018576788756680091197940227887749012734237656257875704798105403953994209265578948927498945781092890979957781981368049388121798558868038636622742740859428189429778357671604237585156702302319313244522661730719812460551791631498967481770280376271255251165613279350302269721148871535948420090752594727963352757567388445038657935635308233247213030851262972845294264720419207423275965897913684220451542641002903086709582247028705855718041125482795908373821093943356397690070685655994850079871878305680042112904550165016769622121877486263513592815254339734188374435980898088477058328356572160391794675357577096024190694527189329902912936264889419033488555497624160060759367247024783804981646796344410487802425801386514550664440364847104181841938857953277816715024173249186823328717468351220808210103696639751544296482675608797270159587796451727980420421306628991428087937877393100075513271662216044507195956971654521083536919139417646033480125343344275148181913267772928669933934350237812585548601271058186798384095236677270407735315780807178276225996756114714052011649053334290653131297869802510421940688335217724372243110125835267395197938828159430038976830176146274345782194266612375812133353624416885969602896041565828172213092791070724377508557777120160069823942739610178112307011724990617170415480738475826827047287400618270553097092739342354836456372767592091448134408794472937198027317245320989670882659916083663111815698138551737330897166531229359582058630496584088437962868528810738263973202729059576150094834612393041169648582058391724713539743935061827520603401343345909792369413816912705137511243125195618013662948665328378705536601440731598111321086238108517706600205973636579680275396572167928899998434469766729718024162677347472805108146041621729355491523399984913458155731947741066829153916594964951527791661962593476888038344537505733934173486607597892044080817346655612255940997352112666474932765365609571989703526495881407563389163899785225399777313043700098346635923749050174429866342410338522462754989320503931132940909955526263538516210744708548719405338433059971900276871527590896746282850644236411327479548334651011000282841392238947516156437589460367674639660186724340322300827011668553046996029213875540317142599070751614008247403163874668624221453130731141010430961167675217210454831390681599969163046613402563954653645849614274058133840839945010176753242383987552261745901675212944689777679840827463899781095904250749420265353247206181355841427092796464457429520581817326322177139091575323288787447902933020282711657664890724838804228757651798635418396131992517481973753720539631891121617819583967431846768901502615825035963934585281553687252293521703051601619856985164733784841611657908577598343380858691737309684496280585755867540530971546736921993153742091250792185311234625844956888515892397288558857669501639869256496706784275468804160755351842491889211021030037660201597864187987421404944635106650490754660757333343402666874340548542596305753987118126910064388932343562037688892805370603138007497094947464190627538335632445243393068083503748268150156081123281346537939683321216265762362103107410604214106233724211919990122253762650722605509524763934017832069882656462392850601947293390868052128973009503099059242646575576123334598352267512079310827245540271821105281633004811280150338379723951772132356494793341934471477885478810912045081989281223827143880357210990656126070316812164125467894654483435771295623306274369142531538188988132427857329564149234308257220683862730458546936640494235136167944962448245748304969986142187363101412371433458097377931159783641088198616562906424741691728316230315981339714360690831620099741270227752192750656840687849843194967669592683208772453291153798042677060284521561380595960454914039395683774464454933985808755708307352824289694551819013562961345704473029385101005755609063536273982132773167051371717622972510518866864227712542388046307507233257700177173016521613771978837646130233124817813164120202832913608100569932896173018235255532277064916576644204149435063405685745191694324126670227428714684415897432054139417857949976503245341561704299751339631002309275234219359324784304972316346126631696391258333575709116997955216962286752030934162028785555514134393366494599243346022794838248153294066975631301650483174353253938667970859136540082360552445360855782027676265628623909377494428219833365700706998837673551600855715319553326477911378020990991508214618479487442608308985742026178875267342431642567622350125390044977059538400016143402794024420316759600570217238217373122425407347675943624629389336083481470482313530148881095579825724285332345210051270329255230047249959725263155774036434992331275865603864704530954242253486375483012608121119068214748141200570962892796065468454725504482046341803749573943565083790237183010938666093626543154654393096094671824278297319106416923833231884361745415068437978358417540733990029555490433985413575787019757445233585325194027155388262954632750658721666012738119549386136359983482952111396387350488165119085921618118938646951868182957053452261713536903699278498891988150667460552578033292680631390016602400425952657927059003874951900846509028617909206863659910084152763285564061928194550409467709601103538600018697371654433089854140723428165995301046725679222406001360512350436811558947122842335437070042076124479079980220119865541652990999609347358592941017049040068441483032002370889819242097301900462390516150064357176044718926107737986268574824631307252185534064198662777539280018958308831243855445537337171928355799028238479457783025817804820103627424335435767849986031769287150724492801828060086568319865829618217959758390759884699441073834182503914566776134870675182788903687977147911049319068931387325475804002450795470685441308457522698422603449390297539609038059289855973407080984028461458319613577489309015344329700956358822848680537697926835686826149336963924659471428614513570557033698322180583976711598901828366392447923015178921102394880521266499288923388469093323843526766707143768588245738458011391046251443585272137866743650516782304002415367784488415945004460463236207471195769239637376193577257340208105262418571810888163473269999350362704769330942637399637842486925177359368527077715453975977432973183913039084247320063012349537765997203011941679176346512066923227791939560485750020481614371620142647324732574922498257095962150673696669404583637097339308979514513772997982979795724239015558090704540308066544884609139646467342397402213426819336400677652847461170324677883880204273582473988935626394703797499090775215334588228493572686472121488733952873627518917320844345110705873977484702569879014676154509816158623071906973833496184474229407603025396595553535077382125594389951689751926809390776364513538041181076749762301227301375893492854290420292068703182960391088603252618431820366071543573847451007055383334185327184348315329569259677260021149754271826505147410381390363973298385188612185589153829423984094954489931406154801539063388145455498631221810460091110044419226827403489994261625519253012844013629684588487919371342217213176664821879505093747759903205832598569997042633886223434816987232277319187401875969377131052922523917029401982339637114607729771790121149476305634141275402975737290852288023783619032663856872017543687832104984217886928965650298835615745469984555043571665653351830847816135069427810869384885221573446704162589029873024834645604961709483916574778383219978566455503425862447464364938756298262367009632636511444168014322791874954644883485293757195770251354196823782789015429051545511720168479740004343986037459815553060111945005757141850535113528007472162077434782880740455253524102560311156924709950042918624492637600158271113562227120673735218191811141591042220953480149636702507692134898214869280320199410001169716645874028865901335809958952813182622704076871091447797404399420583213960220588676319628380160338208545454187870840779467390723598463351346216734311462142219421366029570427046283519996549039830686835370763393646154753116481837390436605171202329698541550906811934165975357303452568801374854431716432732788779094550971313636254891244175980390492980020054386156646570595110186617154608088995699526713920589345522184578173700387482994499960294236227887043540751069769630031344286358174555234796594557328236657923874535415178611289800494560718761433278482500969364218466732336899763911128928401782203068624382911188556695607387383894368183783207938901129010797306318214039135355563434394568887778141148344398204955629563439386952385691730671845259613154392785766919481110393469436918307705448551463171261528585339497055214710862137570904645570401726762222626769388808875651639691856196663660673679146299758861602185395734246899207641085135278647514066219610447256041616685739834633010757364366420188803488327011224895310533903445147704930399913489820336311959571915124024580146090211085281840692782242502626582433668633374732393166549305410202910427122421719795822715987614847963435086813934810485795830156915994464097639512942829916102593672462032695381446039839531801534719631268404632645244105656464840804300134855514278311434922129871464141328396406033604160056850052280422845971118448310336115326280171501704467583889156414296929294012414526232734376497348107456305659287188988630978284630428845632882669682698142173047008979966870588421825393309555834234609598582457172347428199652440977272128261322295657351312952537322695248931600776603037241208220127814707573865756161174179521142572932744003347508265858835501266440533615249967319155538049156170789903619531241149086838632916700352237347928588061513265462280643123151252988073724647562397182370268086121275631304733408484483279659819999751770477846482052252682386341074784562007598271131222816216392200439226058812105900536529545777263929368318540758417225496251156351814511001807708112160114873627305437593307046286789304132698939045265779006933331780624434098915334171121442883194951843339214434336136737576926084482742910889339571893412752382016667903469864778753697703160983238779491966750502353732590149595861900158170524349867924389486898306997844763837848248604626333474742560955499850835507011398945888938632564600396451181217348522885320437048392688113435583574797983588963359850594798706938953253144509984976801545968605198724329094861679277686093918453430904049577859773800309472049620670019392953394014775851071001892629678551117782309064379317331993845480358926182757505864976131694199303944071817141516811034574376792205677312018538737570036432601194349220111456563157682388789840278440830390612718567859959307256743144888384264561506230455281252455342480861911940447685324751027242318243321344154615170633579816361848992701693026862565850096166480926062948612348780886886766166039223519604838687704434193379992111974066978078628442553790005320429442866033232722793036577707036203447630530637336946596347548238271630797511320412923669216295361448306368821922474535170305508091505024974566870600736157308711016075083893526206584026878634950943347838966083034253821049707699230923120802581159028959875514956035143026573887891408024637282888336212455923052803752717015857645139092955520884880224044804749070882696797969134333950859509649741266630276822894458449858155447196497779127069411865955825491602560188190856294709527819742324924296172890365476555670725616299819345496976617334056402254433866753575997209937292619651033160872314188899068559137356221086845559526712627111682105070276220294417549884750994691356183570917680391978048811487477191549791046817242647885867200395221952591463824716284379940365876716316546692661259794346454224122067440610886642506852566639156123354592966806929673911365946407442024800229861182780717432665136826474296974050913844020938873531078254962979966605838822210323267721218594861833597714775257895272352006230535810394550253079838058061307303628429137189801976243280806414043545988803571893456683979995454175365281438126106127032723304453789060053057316487620461258676671303311676483321444509660559324744560314084579981620488450594192380367077724437025272195739733345933446851970957945067414709657317096623151405094747006819479481201745104769335293603229944527440065117179508655036351712175853437735388112859032235071643631815120451702022346473445022728993382758115719537204634205682848266864044945884483567135209074846035555763427053365419752767902774690686036753021383616626551175312091317034072891815322740713461359029256720501893762807068287750557843292163664798123992532573259522869824340995677933792937764602641794294550450219534376247719973414367050110110728853651068935901013625058379092512875271358126263795643790792957657698147722701296806001111304616916612282017351632014989999548519471262145842452678059425437249275167324237844594487680209221433668877278383281035539499363030938395060756597018818366916785387294315347619765844314315397564786939144720333952161117834582610289647242938581419473243410975998816241777509403848587594669008314384308879174531420424437854156651234578369129688635140319518378394691772340948043184569585967887835711850315600965902509424666771279970361442050430885462364104729489423081510579741474938422932002231855836236089886095103625067886641795067607413673490731131555290528811281866599335445035441815270107223128695214483813128791041481558195102547242252038402362364014024290882934035062784819423263250815689690426267331139676005874054145659049416772600133961063371565561336305576316612924944120140341849926861682744625184487065979117764438222793355724302849670072777832607624950319989775740152050489830859493607263218880085321258084224879908250716854948437665616240007516271956080420504129018765446899001986287138071674881897879710866392791832611745968003842368987842397067555758752485122655809063146645200177740354736646832859402749447809360791661702007129654817767497602469721990750067960201694538853014867112155725445373200633886405561436961579939601564391024891867392517771822218548702979535656799975041712064276759248925735863177424355330072012331886100674113195125470154084099849195912889191395860559763257433522248822191322106995096732449248400549062541274139427866935755449461934078107523802905576463221345483229390025010994323624025947356864789731892766479582320180021335438042070749258806649712923385738938541247512452836238203528985442713659318173339701034557609569673363937434087854204050766916629008720246647625654638203375000418775023012769784079678691174930727352877889692876213432562603302543144080457789264673101216734841804092796286004188058866505965843436269975603325606568727945887233347253125251080055557035816341410857126699122266725951485185754690254282204321656681539665751317424486434188930494177478710309950509747272346433796854958257129795892198599137620831284555535797006754991297167413197235927080061235379211623886039200001497315431073634973713460646157152655448381688122716179264228562648831569521289782037130039267383633099295897331957956406279053127717954405219548458766080013881834617631577736294298482449173418415124329171231574374771864822980484812625042782884381617213786917708279720003451302759141456086681607429540828492262925931207763982112440804153902358251885575366602241923092710311140462082718047814957061367891622535224385663611359642488520323042768322810086240626959411492707101558344176214371615592532582079095904987201588630600959588602547583745638050018162379511556312050933050229087338539709414543018962286714236279276712504597031700859200695841865322162602046961015530957131031024895738127498037762817299346260117634086689531391074076259022176934007863803024659847456572207484938451838477313843748673694629837105123699301224270782327698473268496312464624352970405867265373695327236665444165040116577999559712936355273226987191381666267584570339995607364117527984266074087411727403229799906234581446501288544426969932698964521300858070928194596094019752664869723149324568293672774261607564168164529620711453640146138471940202490916131645966363201411455923360489103910555743796773151781761035798768556513335804304534780139152687629591741405741771525724856097821062441863361057686247682645447485346736791293865395413167033889110240893663307226291530174055121806960412007774518391349544509632473297435368072201158035850846674840579770572388139181614172545049449352490380589465869287650041096640757856434391119682582187459408686819522842904111016186998205249130903997795486002024239944682218977867743837383181694969346048519888938490873070819905124936699657367576811781110348133485299248943920039168140110683686124636734482773089276984355713077013908729191488158275386702315078808590649278564721406366598864321042581159216097984548232480916175623295192180475974481488598409663399998877055137640458231699506943203544699476576104050519520400505223561548742397434482387714537054466829233485033660433208254538989367160936702125476567959026646138970111471275865564537883359556732546566843477243273736640833956313920652920536059197982220216904495889737592127180562887846078052116949020045716611552468059491904361573588776341348553542034111730435844427169887205926019459476515477395571270992485519605371963014222403116643189454472787044759514184147323172704386924667508743683271678656416315959011801478350702757092133221840333164300726605791746285608961758788506665916149060935395153757034636214176500389899578167017629072075508033889838599024149797778107929931530399782522212208386765353960365063975821225692631624281627299936668842611752838831895604292313234984705955727581807372964464247772501327569544676485934160586350528073023363499087853525354569543044312218103256056220645708419452753988908633598148522239718181891729586764695646575089147577175503256599629164507645132485585729256599191793924592723287670091977594525370014849384713475401686507577243734459177493678608774523937723980656445884263495113908641128404438715825572574586494166154214952263853219608866489549016592022993899813140879791881222254470028706525624788822210511521539917751641526451480812264906789001480229071666671958443446506736892143320390851449105190353420085008168670551600106230963498413025692065805721087384967944910972911905531358727353937561147608547616996269574935334475871543448909505890301561031369964013033469515514984715873182952699136739327210354272982387977691018785931181473905317233017146059669050286794126986193816666973996604432542486764090311643102440561375893772737684832455693114076565305662873242673643894477517878062788175391170733778789740774545455808951038503358353356985467331430774596490019805581450837774784411208627942561283436537509270014674540203217763419365031264038299238140988948405924630617296508597950530679073198132630129536046187784681133195179676469640756282253043973626157983530777315483329179967732944812761672508818940190510749738526464765377523809016005598580061364504505042638362856158795141254047359570389169998158673324701462029351097523291574203697044284033084218920112944302583989252760372397077705182374370211707533425072913835234403229643459031569984576435140147599578935162279878557497228581074552851197328340579698057286020601291128640169163802636577441828712038489269017422531643933108036441443889740165303596198771945077368273542660743570304461165451374409173463355408354238576596694522654863322359867353845715572988385531841998960251068620595012815721637698603754934420112667358423981139290035371702250886610991535153381209420045282468774810399342683488384867871484140159119802075789230996601697674630142412018298464279354629407340860044698781899230180049526895581108629783778298786840509415111014584716422647107020845882252733736557768756872923469163456937624549368059169447196358616126408881487082439199561550753015466204076337608842265986954555932099418341607848677753615664316554330229460079869476475499615749658764532093235035205975576503003127535129814999482265663440697716363701153749747018311166897940650976357528033198180793321197076256101469377009705524967215865987234948508231891466334368922353991926468051720666605661837973142410117512066795700117953040791727959242631068702396852173196697903093403328974104046660424971071339630137062182923306147175672324314127963313827068257656606134072741494534744680317834476385196251230687681860485996765756283599543514194384003598395041069493940627064695436917698552404599704573968210342561540575551883167312701904891458090885263975573417267897282373447479114853994708616724820007378740136151934213738115195837932237135619939628870689722541745153463548404011032332721570379406348562557158841893756377482781324606201979868266033678734156174317300486634191300707884664146878154200362906789334799534710421774472888682536524701329500946897085003004168410888123030994508354301325856557265922781120144773027730581321673240255666530041614490277899243155331243983049986770623207152804377978286837316665893250624843457324077840203863788050997830974709303232790051976593772243665058418856212057349896662576458286628113502835761748901169894595324416492338587470398838732607895013146388137637258229679664905157327336512220196334328368364113970063745260828536423246795810884691345725941770520509594503119834967186203960991294029718165822378399008970394178690649452197422744955116812088286071210222791308284541761043909005218777851757982089204155407809208552753639104479251212177516993603199085897931770196205755896860993713933127185739960895997594455365186364430980499696263983009561130223249398164159893093005647411566293109778529239156399511773717878054397628754298389224759725243927616730683380741514923092031048901048359477466479352139841491322281945615423172325122931180796394958791809772891453132719667108804612475032597993028567225264087571654937651618002837549531331531116252894188282193221190492872503712333184577605025658840271895976174029382716789166738796028488391434849594254696428703329700406712949902730964819336392038497596783593502245933127512313359296142218523777980989466057738613603706058839521663627856663111693556049949210507127038886822057692484176732027537419727418897100116825931907483024385946694752104768430772656886695891249380063878823751386324772624515816646425564921636918485388352533242821346928878801441189056873548081111254453006743225441151134136389828175917572519931837407231762605828477590214529117527306996095820597213207842832792422949511622292201295571661993734084015152077021810192716631219424417976615922867638428422410806978470907051626894583633490617673524820204248357888504885067196044919203483282153033858509371387090568499059184248589629760074352340241117294992558440823708230310550038280462556359938031767471963653660027042206280206085236719529100996750570193020804937824376210663573439248706720849216442970284007288437418436474563438350552019864953646273575501190008323414078915687398558585765437877097028791043363402732116434190744700177362748076005915646111858764533607641536099258653035747147100999115206775810854085216106503881824620994926194839653583329602302703195609317774874158548658178354571324471652536481682533746866089204499872301413740970095511278228118650371524836229629281194234722225594418228079233697442162143229753187862816232040516994021319749590588015746678174530714278200023573059353193351743506858053699067583734124306463651130817172499765685986596159081448488877399213945223327074853083172497913011061752052884551871849178624812828877330007244429320102662029096575486877870379327114008951507275699683462058867227410184903690715371919976001873918265505588997729664251017496681560141898508755625100694086739479458808593539845083812893978082307309295708321507727832464412790041578916839859431830824516628071853381190452549123935291728771173949390495082970001691838633681435254354294148227757461051294418845075777517895393471595523218630212322551966585296092212910537920111890628585975223821474828160601543889196180384535657505372197438094242269281207031693411237768069438733679830285958264826679740890996307325533022960471724331060628825663424765316559696516574358305415188360559933085167617290871896183100342942383544642674673342234022510980774908399817189476920960988741972782970411723565124489300243214806334760168815071256552993516223313477526804948372975354997574302722003971134063314977835355644260181323150937807172193769129388405703622758403938803758404832075063052498933243152378585977264541534953577973396622749748272092577916887242623516227639447782871425108979314454095611815305624366216724738633363913117360524283287963757138126185740607684092544088175535137218596651165153963794482829781050361241839322930746305703885674087250009615528808995686800064983648030429090769594961670198013731589747288633294278584219241326597396714384606998443175701885404229166006124109494564522721866935520779307598200593731730096700540441141677725928216008023326400817158093945775288558329979000727573407941258802526076378947977066113592053827495458708206655523977882875310287830529175715133641007723695204138648016775839119117259124389278828299275147766382445754260031813210137838679272562679869797917408275423995279676318988817235995105093592831354875860928466679860924465843759389297683679566756740904011988093992179042350667393098979513291726614494686252367384801912804438562500758083681644536128725643282322449994933141563003942365048307469691249021598205065798622269994470214830694468085204763253778393534768896562523019945933597252833381063576878257759949983711851781169084946900393223388095155340274545220574294522718427528368809507166868372971573212057506232503482121883815995524952784763578802559686765247875034970971413927017503672556881084185450903761500909786590091669112707293441469357136765898707878068053635080004104340399792241548763737399076299300009805052320133288963125881713233706392318872825251162439435411347605760198285081239045107028669314200850477707898728584457500397475375267076830348499565547302021672499834960211623452178614999163048250580621814303527107914585804864507322260899023966486548101583094605714012345519130883175979690286819564928936592860646077736189355270112744329819263149746607021152157226863460469714672817161461888772879271206808905902301707720898476866507940906298116318861628097732200695826194644333937266302608527756917916477547063713901657011656939627506022517280562658529955893195657811509001165777371037348922266506162754318935201173928148168230036373354123778683982983404492967391520585208451183386607841413548003761613723402795592744008662567554531383830005565208207788455090857785491539268418129588132023284852705273879584751527016961063863660511132316495742152206361034498737125677048997380425932155012465955387541563929675295201681921972156119215276472809544031696905045395596542989563715365136888743212720210961335864261039951523516247072092294683622464577345796949680800868384418274345404384055282431229701610206303634291095421248052995260429729433301154618862409553796800929811743865563324455440939036049677691474769421581711685961878291717135980185503233567259582202095102451685451371699883443624331560481657140222919072312487563773655347368793574489568305519453913876871017605816788206166145277389941407805865690615271309010593768890258276122581520877087703268378367693292049063529940068730398319576264198779813454506762272831189268560063944975171080386544513890655000628047566235370129760797223525656502950642549365920979923243840163269320831405355245083242242075808478857344366489048542537404971846193674649923742735288733374289694317374678302287681098611692504631148156616758621312254718510159067599249615876472530447795842038707454080488945938357817799889555522289517537270777005732402965246756343967933819665492105101861742921847115640447367801208349772167568816953969931683962401237195635611353515428267443180697142468816260028790263056395900081544552092726792628958511286993213731399146050672306304180139237559165987374656726170946285000656457259727391170210964173467793350023125422116829326425575636343574993489578452734169974294292095597752108411953104214091600625942160163176029452229468558182764603136710640864060403336975471618974724700498614684358287078666421519448659789356699099309777480012867203951219477399406611220166380416675121963901581758864414812252587431749589485980529795258013674379416040143589634726167192368387928173701863085305621481651098260770966224017299269558726673116385319289174451172909963770505729734513822801665461940187443945457848374147842266627642298591807158362725028311691935253368831790101769909288600708934858588095000289084393064124326364328462344190301425816537139643986097525737142018543258213448566060016157888677428280279856660893702069155255150444298597510504055835599496207653732263514804726065577755003636905861759887759458794765447619133479810110421761430148690908892554120533995339793146832687992110238610624252586264566354207815906159758719565633198190673660831716863416985662229842429096428813168106699060982658052206949402942059693609718093184160673112554247211546391519401907677621292273284447110714816481483624605609391579356716456789027009328918498360919522464462488733026917729952419774479132367785114088111096045585011912267272755928465708019021339583210720672786008267260437837542570443166991523953570998219395500337709119391534465925946443059427982394394864594962495382365969995497695068466007875757064852373248948450516584640031788060592025265763940913926308640471442854432899677458421144726171095289134768068804496815912757175678464515732266148318366556188072531932399627924993796905611096210108815624463028378861541258536645569257750943629135338925442482547937321049736784890773367286431280813925274098490181462309563171528616607144817715134354507807308819642333164768605273332423022663282572470259059142347005830117541430458062137005883268408527814422265239291008201544589141555850398422131934803902378354165192728356895466302814724578470316759412182694431548938624407160284232628840585210171988958951450858060875901912948659959570397985306983109779903488907295163935414590499167157165723238922963514164520927935954768621395938851681750002384546670214930074851860737886888576426202103021914177824726560207006152110506316199474287121222277828720031729518577041296963275471115719400453640309784929065172333171428803837799246746873220167048742602225224780207385909119661342061682482876199380628590402760310497275271446143182571921385717463334570951299943477951548793772045699490916271560477708652937185651669501852005135349198338620120495340099652103633076420676663613768812534842986770935211511105143341613849692228735668218633228280444649376471955274997092718899074292958129046918084475995552879759310944205034638613040753844253458296930966944958998801631536404908893368145988331525543504750597304394827405706425118406015596513729493097838627429663283943800548702708224936456521820097360900885177732265375048751281472963495048503024709146525883857071922728121766820540242375245985234024590447886419258848242677353685546339623186440169231760215412038714424542540542083375753800844048237169421473200752355833802520329354362875454769587982506675034662583160070454424762666219842958664510504684347601797597917502575352534140130228848821228563769504143639465166145979352320329293490072474951241717727731991300132997642040052430450883485441464000229387789708110363171534154881328299917129529918784767604417840002253114798339758639496712299269886338364732646974058240554907159596294684698639608903691575516051061583366443833686111440796960458631861162032778015056260472548486845976657594197625955051799839181314274844458492268328639117155885893012145476754991280038873777935374472490891842709233267036539882102997010272685456867308522252226558132861786203205902647745513834856119723797865779881710898373500593992722659230251509348552638772797384853059974515520707046409523387122549848456744987862358277365132513883432445396564483173356030567629986488837600775243973740820407418213561832306273444821178603479832221703792639674443636355517387476038024268146218330706462444222579317915384375567823914580116300272622889479790822543215601977935466136800786560613211930862644499376438660750408359087909176365780174052037903851411578602458402123519037136071947428015622498569811663845892066009243114071750541741093856694423537240439087425762211427825234074958265463179790515792103081861509418259925757393850453508737289715802142888118833834204415834345387178240047063118887002300200532631234396533383236865842387277083716529949465722932360173960349073063491018096511285130419253095704149925050241433511439828797346497656933251229082098135416868995071240644737193276869072965806626236065556592116416579042745843475303170431005652812206192148932389260846880255996411764311513511258313354197849005218607829952966455510141841827604474929394744433893394049606772572483800652374866517915177552893110522975687435197498322088560235969907130406764886667947930710108819187395601089473026517174886356750366127409483583047564794123732092562872818765097791336729111873691076401370615678644698636922290713214859941966700248491065766867441567654375556840570203664510566182464946181894928587189642358533625346180424365994237647721968225731539711455224718504152266028037289714769412304211055470849150753369148439572935936551807356608223021137907290308865285002794403030318835621198845049496561643500534847200457340405343896867796580212307276014889939119250109405766943719182665744085279810573624636465867792112474652765423459902325103725532023454841243625092381974726658308619521689494462750911660478265609041652067656738134285185344747172809115879038386791797515509133497592838238564187191850244750150171286085726920134057571900897089989124700065933501803569368584449124534556323551530981854917596412267862124766256727341088452359559995530817740621147621420777657130856900434128511637632200490520399657157767376967349960853783581449864987145029098469812106123550215494764369175393699510920401373059717383088652421057313141125035784728326362225383674800232964337882377870506908388928581621305204858425447959349896666893020666767840650808583030529427197201732426407808478708288738755757184802097440803644789366108103558876663039262584863339399038762027363159204320278755355999704407749476948557870385386832929455429599393161233167054656727222821656501876164636518693303440431374018546305179920763088244320340326113315192336300127330884017090811610300196169011290483655819098886662568186684022721329092067863078878875609408258424544988270230304882290949737732156697373195297182126340779677045717243875293135442560260192728060569665927026673878487304748950898170209024196103752695913322207003447229262268596814151388471614083340984681807715164058182306813215976430767809106409583378636820870684126477631756946150372700794578793701886006050982251930157211699678701660201001996052381351842437833874160402400989922793945177765197237311378366898454419236716333468668948839541935068822269134258659090608834310823239494238561813724424550968575872603030151591601691435470133792282523330421852387793014538310991447235426074184396019584760625387431616900584512072302567718741725440258686555139856455843448715952775512486989230926483521514447753715453274594027075165590169065868504961079827176931245982641590473738558586434400814967819499760775649486613834721207137083446541730279586622060559443897744523300313936536846681420362285329028635944066456129466569909359883288011636214922702126877972309023158172686947748518667774000800780648863552143994418361576575979725104482758972638384407287043934509527222283613732695581300240379662761892556843667129121060595938392702326306059252631261661919704509399764845875596275930098315819143157595943282687377233130004943549500742634364184435921334142470627653826586411255914057919564488705650244171732178916249080421207165049783636798597766888716448510580248149829572977688746858750748992340392451533819753319677413926958640575022406084641495599373559844532031864162864782065156010702036014187071451257071476234604029917954880717249467643739508127637003374783281855017963071847528538363816728394732237916561303960154614895008845419053156795506179179005088997685553577390312444270877914428323358761513765522812626813722400475792000813977391554929420686174301766781722841803504102053549180749453585000731033922681882901235608271695147788240492287520594770875360300190549761500597093237633524088468513086383753004628953013877262465086114740320088047849152845640661878775092861381085534274790810082308799702380765499831241365587541356868204029086982321637802185239178712131907697332240417329949849458238938492552203187014349782800912616001406990819115702216449562982977966970907417889894075444858449912405004229276540115823765788777142474979774889683232907838525784639459571024282191881481251748732668108538790295880099164111965604262232687322312453606217827757353268937534144787725779604624830861858245785122939669919240927934003327386595322266162229244849417033194614654498577357779270249206982904081826648005123854563430583940221774800915614889923155255134286188076987454929994643407330796957878514366100451510108838788018620809108133117335782979813175415594939098866088565031260731045943992889885208682030217252735071119970917070142089397195356320054313173897942158924181508106584538987204075944455156664691554480611991228896383671577615461978923273327086543896500617702624216331073080808098063086482475085707675192962969264481512089981287699903319225976534104005322213751115869901304980756070623268178702077202085618519859246359025213555508500140392342398642127463778699083310761940287764181362843232193917349848822520315230601083856802594552957986227465202934023512247226347284685813122355386947146160701155242817230692343490628535819408972036958771646394656653105738874356940801595599663270009340878838215445172541405559913300609205603554501259842526013295352783399521447334153378291395632882110981041457350805643050054752443720098672913085829727095971082999214038500152007352783370901621285344242552285398074260691095431486823282539218154183733372949102130068592761077447663289188939948617824987840639615242392797628597675882205835982928936454475387249139155369857525490778738494537669890515509628850545644463874861588396607744899738600427321768820965246322107876381519821872368636876691330092459131748465386340816979844131570125797954493718956320208690110248025535691502850977330946011245303331794485087289161357088506237308663881643940235611939961946917571113252968018775974854255662372940814613973948430123563604696721100866453513805032659018746017854117646256790266849974014296976640348934913322165274276204641010907277445506787691988492612398311351130563471749164890139285172197032640982738088197601536430914143151425195793983112578981436264049271291134032173758396218070643536318673988689388917496201775611032448169395717863577979337917223392180116274998246196612603696756673462731014889678240385848076326260041220519161760133888471513769447312487630344452107443607351705779498932810922669991696010184960688760757182184069146456897980524286366034887801883240148479004427354756036595051207030658752425800022170330774031852089236465092418439737243744676386491864598869353172847647862224225300346723509021690113211759197399420270496295356948555405724352101982672618006241884521338746783076000737070520090190622656593501685353691018886535840592123414336853094578887629995539947409041025062890875791635098479256515512295456015814338626704068087340507119618593249440283423657973542972872604651121014293297784042782011950779473900159082977178700008563447108776889664325278602499667668532725466791112089951411656467566695194028103288505128721994302882167438876426176785912058719565191909518375397029051871215999555427316616058856782430752964242763638170428831652981082919447618978105682379625865928623731299684020734628153342103310220869055980234793257770493103574730959902728333925623550495743833944991660842667924338668629770391408048569674784016983274538705228369026938541545636749948766659079238833440563166253966892285388156281652607118436036604381973472951414875509670122952285505326143881569003530593286453341023783368119234974572943318832978922248116767548094446960540634825972905026731800260019943441063828344887618675056789154378701824165459444633036912299712844201035160655129495912591788106113535087522345538060826355147106568769458897984891276782824132121364640004419887022578668214333993973354347059042414638911512101927590727441985252642805664371724754316541503194970339273178853028451909005495054965603909045789216520988665044491148159512852488572708525268267704992439821944367078122010280770737977474117982968162533366085565545302520423362149624438129450369722738155968952744143467695492376992173609938150834800432583783705931089973511785646477104664682338841682752658450911895394750044394265131595546856971284838546634079103792494994320844516880942519978078066307581980391225737038708142039996397003658391279299376859840002865118334468017494179508120196399563717734778228676625322239533227869540516985583461623553932344062856614762650420120169068816793839981126245263429455025236885022929027299210498970518860981373898729668961103583296389258414074304600291093870812481550197029067681860990956315244230890673182383798367064601919293069082233523347614449936798750369141395373020509418225768292830889772174216433310008159551219252042235563571615691325968819739199402725627776618880980365239988741934701059966714332850301034753108219062696509992020733903445873282473313606924433386523252726669640693524091091334127250507373231090250588039159009149181135641898436084036530086480758099991181081072730004724557563065205428102090992761632693410028304065836475719236648009978148452487658858865700749063704739463710769623679960602325083090486911710473206477563072390449854913306339612398118781949890213905129940807257140039635670770648777303083766767677118588721181927749323870194268183534501431934674107639260066823241687906266315713493879095226132397613640477161518689739812280989120984285786665940164380227722305574601531997580394545282926204875017439947429707544577525498392027441694257741765365486322835298291898499372539980487448789984610000923940362553329497313628524204319130439541017176472497161864757359838075866177054140552195546647994599491744131220747734092132486030239360235017348020832462089625469062787525350400729389469093094405867949325341493209178115455254690591371762277369693956357636284241911635697340287892608272751917988223717124236147010515935552573484906475703971328424950463048538329909036118556954223861345941630905037255974269552716385191581289032613040198176929127364198661376862507079351254678813257481086992772481030067215730366659669891159118465937771205850185518602654798346469892677815273924486662783358057444349404150955309877682819773557867980768956495788266833184016594612849036507362455263922361190059418318383637199548118741497206032213237138512494305842801964548177657244399092267005745800766734566134910491858694270457617591599322876619658982769403384223685508835177796769200284298688059196819637702146522928818026408857462922703586140300885599337030318625873540937790882039879723114875034604604973742275456069423842432041960106981472308211424392614684137684815287363610165674351420861116884644850738205816075676464746386659204126427028024930822588350702080116350417719751649685203304007266198522801963814553730204866877312269286433309335689924699914674485150421313351653855268021943714565273961647160046626412994601141427450271812794314671497435084316041007714398586267630856306111458316081285562131223277021077895931938077256567279335828397961835604711421985899626051271854133817516285729543464885208304137546033418300945864424486650940771795412050398373263453102726213272043385097067798381023203214871605046779794920512311794318429831511101444674879251174526868038558386341677127202355619281992489601307406793183624161945145858266537693050937371519213885739397760570541029006984020967007199066327048077443102120366818363871423583715614842399949348917707956281785993985521791438115498181221512167601117103142908338359829165174835549030374248034883329992727300101594290469332449398329673903192144593148027706859663374796795265944125856022271689935508436476419822394863818734808832629120857228722836831271328789529563741290783886527989604864117779029703026622142891025412895705325312631531428580799179196523931113237708149022692129980969977011984678144671711275534292692566524280123318759096055039421037032201271571766807884256385219580137498647564160050109849902954471730663242315401749995946063725533970714511070722101400923467562731909328040799513005680491907751687116791866804933798949028108304986526747450526744938531528263807608770707405334534577524527029449533089817893215094885639517470499399570722743842049754535441750426627811013076986644780782953242566566023118091081954477761611297950677438287062453695287655128964230055055734029929182318874663276213792409553182070234065294282089425600745275830001718814632311425839620943791206342415502504083265430781655530125340556625130828995886406525003446992597329288409790711254187701870612741773221349764271150984360961366914726567776926025253090030441527194835836291878488349443284528421784076873058704127752630645077398733615535381656072455735858063123623535868118192869927013916201940046147631768877963522129261597503888632929084904628532578110510847669268362993777698899495168525613947094964647228641021318133473150323570645656336190656411391152166438535922529907151292016718731565842299458594729646260772131860097618797498274417832317801616465682468620372522500629094213841579116377614573701425021111526117807589606690569757557828676272578989086065808753834314465441134932264435288841706954611509390228271651624744650424558957754454396200087295897024210845229685650717229166470458677586502682179320388646859341217782525106556227086696997508013050537055772964313222916472205911976926228840714846990599197949840894692368844495079315862817385406799080265728455093729531687465945503193835539301556582994322898205084368601615823855900690698631871790200051516705184122772212284985356408752186741962862772132990133280459193438366700538070358774133561163869707880419904675195051126634187656027378665397148273183079689595951456933439376903838527819426241432824252719415035169064061152376741641697904569474599027771857594628261841715470208050304463646811457667900102697095290222935594577357082040940877068105689040227850580142313764574844747180667641213497727747000506972286723861263943663287334064157013443347822040452023585998465253822554626853228542372161480179665846630966419092693590344679432002147517182924007267688086443607365901844124790266397466484608888392060863306478124639398399539996325954757873345730257317600028075680280430956067240600342721667633663835953693563739422794085106371200343770881571674962607317262977606451672669510898691671250645520970141954774944439769441960773166271246217152511332861176831192539772962967057898347983776493316723166393382149612060680585627973153409349518494925086990206005642930582801495652975358656954643533483156529228592774572196872881656232095182934348725658038988779418557968179990876437851795717583864911657132675288141582673515077286423185518532710192844261678789153672250630623338350095692090727966927489378244452553138807287430711939094078144383249496224356499645526424552697084793130104025613179404219064446013420533595727256294361622078292166342300156809569217482082600830251465899698015649996007640682727394327186622859771296240606188174837429009924875267844222649415367183124049100671612694666641777598343690954624406570494412550095660546077712039331067108883279883699828616303557525395487097430074469472584675437408326950617919909773943655723101913575160912793736713168143978338626430627316348305313967125211095679884313873206134352469341098296212303122747459103824036935533863223601745625587569699488453095153188803795255625230320073289867262979684017491581681282665047180602873306210980313410526159954441411139884714550392336957326137922574595788884826403317434168767640483503094263444416422903226772275840836583596400595585640331893477858193644476722310981713991606986744608388591690309614956437661590770354081940022400610526741961520088044338192678146405457118900707208173717778728907499710596986901684032931785442787580370966462188227315731648528846642107323496861367847918573067048447878595016916414615605786863592209571199730121778826665334663277648432033636605822262622040392635862437163609520252009550335646380017559234948831125499167393944759922705944712472007143114507362955287359672426956147795692755956554113987053234856304013983092544973588320563411029309528457790845549358609311699408679563200647234976476539854142319597115290673740286999164909813283422767808639504555346883958326238166853678131838460882869889164912758570252017680664395302685544934754104937943046107522517053720859867379747604594853635836777187565677319067615090281795016262826402058775515324253126895095397021312680312789177058272367133654728530771972466796901108039029998974962482456937584121676909906179282017751487035273849308022613219003950036841551920639170096277085248134171594155927011708043133256546587559950566741912417820079568491658764041873340995567692422628654389548786552441648006482782745067063457742585654091571966349804394428368049293279082451870646057086341165423678590535242524100342662827587724387440346174333448908345582741441887034737816101170957851036310811298926328993996570907920662279687148039885437182734484837022643494379712681385671653991522974314158455403256118637595025728433507500039413295496938158769761738107796121632660562898147085603851255485960646356107568259650343727358255204337496925282916500048033021942006048903617700405871777568131238401163086383059929616498171972915659256358981623917802693287529966509164952606467896746528261537046141932786790576998106342343127234115405912672266711777951198439641545623196246590858891583300960962575333326778350118005017093570636186890236009200313097968040836355600237427369785998284055571931947113512195291789678864820480552649115342915323617321753401055250259541666657687355984807793768823190424060129674250890825249913442904363459489439749080303104368146419364710222590933733072607357992506144530092578887192452488593317360199885193924041547586921867809380521815053271991857629732018350650331549456322141489025123476969531490890326909032231608367205501304333945113025496999469541053029848081749397556299787686137449646685368862452437619449633924513042161800579590885168897797344028432191384592344201929994961862742415377907717424338608635468413972301375389860800428404363814881201023596941974160374365990729902406716701735348308678541759357209507336462794588951379090189382666816356006799084964748549811650814365896661525463812940140580164900225950558191054213909972018281397463828484706924079790173728157804149337126522165510085942960555077677143239367048481051533883268979680412060375251055122189131521047710991190645235067924368705465558730899410200194580726832697483945858331416181706459141844597685252987908478816445998378139445525764689106139917419926503748817813564471892387833590788349531732981481779468227991545141235655868244147122745878247097435587043900275051302308981318168168961081524908819569741965052390013898433264523099854741607876221592000629706223223143011547060781444978637936423045305112582919236836543653700107292635200537670435125184150073316512109619025972961774929121015078982957540997565807747665373223540366764648760208307612495124217018872134976161403829326396719232245122757234367834355651331453331837622047364176881166045759577170753747823096589972058343021979241468653854394359392536319217310804208974178604189343832925596244802621228098063616612468834114390929274003172908448368523340895023008908782953740799676212470544587898668493116992672036296475483977175604413313790101159558751186060588219089349627444758767666328120387703627714435358079683102646473422228121318943439463204103332108468514068828345058892052674155067984264202315155309329220353156994403309715956812362562721622816298645073948987931797409392411464077611320590969610981094976241077740164880021574789209230762483339123692222534118164968665248453449032474774425789326362816772950125621193023863648531943292993276085001744116631253912089626366753141983820229414420807402320774323343203619492189223858440764249892212744916105032118477944909502585329479192258957961449740010297595411008822695831025519017769904414602912727263867216214641530549889612232972656324529850928690121530312900411080052811444414336995716066320319428592777378558955625866692819939696275003610965766929936264007143036628805988800335669529850687627593007848640367976676283466635172214025038786167576861471406203556847156223388597801609009582133187433973172851711831569708448743476233636411098454208189199579857113165211103687159327270345486687336537824018944603815871065709741818667922736924780276771645397687566901455228859847891175585581908340528849395800631025148993164003871238990965644996352922308906433101044677431896616153661990602913416248908199658266904020169050656395759454858185345085437779360965120074832624637191617862501065340346621053830080630543874410517079184119222449954210001613771999503797139857526383578656106417108978660862459180208379653317486632360139788291696306824066203892035025677101566740293592720612766251651415698713017189077997262564398927484067782990935429629331345915698178259852804191333657581535143475117359663650753094115152742158294179625770419872072734090538687303742882485751952595199005693171291158192800848531038874235015058175314657687975160136192732234853552170152526402258455413059001690584498025106349498493301915359917165662986211924732460561239018556007855427824746463994702147260798272883595948638203261180480021293787409645653591573848690960839536108147606390003757838774502873604422587201239458841595450277179877979921980273547420980024858819766256733225752562999229657310322548103242949126968470149620269865117664074547995144018834651653689230267842947625182530057382430946929170797834960521644254601681678771428059483699699869819824804135373714338698856313725856406134382506685778328480918488875438301118454898539849798785712998716273856055193246433739458356881328913136574916686314054665728506151309551820010961108796078564084140856145199471473157805756333169357766249340899748674737643983003654895182659848944762887619053403049185382479157039339346891917639044090016540329051330931920770089543068318261810217667819823972246221997299771417242087523325389088311276007652561026697627726379705301799366703895514330414165432199085646553808472502540653594903338025528262661355367031390280812722724626705856795919025168567112582076671084983228449382092977790928473775661118639269422518745532172283451224355440777640279681313803750448550551233788358164235355531279123162044550709972041358020936867204715975584864675858483583175065434116079011028371839712107241710003736531507088763782862582253618410208348727746292937170548718382045557950590091567859496794808393774732168855424220674623664742027999106235922160809928558305831883522615650948867677258154132845499497474546687938921033020126439691481308023630447163673796753648269486854959888981453444726769377120886539798144813513613245491859959557186886204580880888867307565219565115987930711991969506943404925546091090660621391987368518341518211371230537213295229286044857612627598530165655909809474225575398886785216877367205620990227091196061688486593433330885774222722361819178534426010580874173920346775561562374765440656478304675496497822587491370810196852040489158324310267188075756857849009614508500623237991677481839529503384042243274999656684774250118055940715612282308660710672168966092459591084506952211681220248676436925375960026695917731643137582482722151803524786280200379242877991155332649163473953983824778873489830100480483798915146346273755056800040459237203843345708588994666714588264516706064997229621040409480915516465777553305148775520846174283012966115380733719277299282116370237081926975672190020876594281385383045190160344097685635778913905219554903869218923950092022134618624837857464604309877365932117381981729558389901956870743693972787992547059807198432336468040520456862541111975752035763414668095825623544520712128879752609372196677821513805844390921414027543083253995864889657459243543227607312354788086321033151672712144165102580944208234619417887805540249743795587829634678144333235038856267349553108037373046761660658207827065759962945664835414878900849577075154323653378774281954298310179785043584048302987732928460173600071620516111108196239472050312846018841301699628327962117323142400476996816154966775346493382971835538946196138101000101862014616233591632594080965454636006488509333657179541057442078680472320425318585168696063991300613215957103609095821015810115865807925884548952087116892999341781470727239823682286679125951653780405109009614632278807722386077213179715402693987913508756548626710183605423003112477977976033603299826872029112112576261580446314767539065815122143869082095327737775256272999339300915961968191938381645818369842670890564079128574802951223231674722349875142064344836699795572093499508869298674461925478324180072585364520813995562339390413494636157876650560761909018943818192547628909145306821995903073745392797222680989531109037907406844667367034435968849448145934841498629899882145491599172892540421788990186043521676491350658641885245261264431325704497654049113768453652183588461666474764212224644942146706573628993074273771228277322003850581214782952554438748542328775156381800880102056994761246777979402132448647100596597275756742596417163571604996795910193976025752664966893219640043404959965926994555237570361225379935814541864373471271069947745598075378453476147319574580176850063516488853439707359447562044780934512729973291957801252217459591991553453464903921938212621965298506274768627470903077750817567162482452019768422161855657949034924475060619828664960376450241086316904903119700640720539374506104010221155293697350045541659139925582402089329579407314196672272543810582291322339373951605276541993533556963541921360543912464918396912466158949248123478119606122761987978920433897981650227563478702492863289060505197729802621348565409398148065147084020003648268654495657739578367137171304701499936077063236236690520706890264549730457388669991863860913661852565953642207369348664423206270102098780639152347216221460121611280231262222610595179947383297380605973336776068588040682404396106597354780006571986674068584578579148354311133005416904699788781422868516378872379716939321368812214681877409124339512504114414147854424813017348383456493872482886667221889367204629511821683101347202080398963578206143587021352508176321556334278744465743040550313713501835371400804669584042761297697035852492888025978283194268032859889419157327821585519169734806261483200369615900574379557016905757244240927010614623170014174972921599764764974914402647724011541482687841298544920834057785441554406414609911826921325742235996045515288504125344475182575439568243490154749500591614992211165395916256553542935319613247094710652502393968046986004850584233699779730428658768440040283871284262396447628388921020389447353944097703992589730620743209245807839147736678750174366004478999169348290092300972209834341245537503762206806005382551383674630477112091971489156981602995786866033171262472963158018025116410279101682862641519462733165919769664764165861455511331103569476059885472743696194722695982800681588795441532681978681500711020240462185804862527582427038304102509498102920112404933604330021618043303998723954808768087321971783254832763300561737124589893032687882512304292917770415354850032774261900322567402039691797987501471809097116683584679751210604643767484802624601258503430121580304006857007439179836193409135452738131525499696711478647325007024599485035810286847572220848507032583255774164676532844907968889256011353777770635309970269482247379530730899991385645223206727370247005870153622262003112072333032573891530353445955101442777974418303403990759134165584888637740795541080343901884836923604576883648946113535453750637144282665978860750649058875714132206603376391092244316674287744947895711447146906882136318233729219081880095291949849354593871913549153259422296852420516670863962910761699952426417899677015778487210059463836865314192297704101670775227627315389186719211939285053284729355356666999415606533281823118670531641349564015233515330523252978317941895160808064521652123152070325728921573317825570055248355570750488474362204690047714232338740516273375495174622603742674758214344399678224631988645609447714352144542057392006349148221990422858833607804521086344526312247041401663877699646192467152231714896485877693248755385320218592129161739989446492523069726312697108217384854755714250397335508846702675402906437333286793342861545999736925457419671146524493283019685081440500767139375065071753177609990028034219171165764115068042287836314626934621334800142112968477683683791932490945609487410152937655194355728436554006943106930881864106460122891419945949307033970127805693092109583893418079352442406320610349825640682108600667147775540000258045465587537338072948257099993636105880391605234175564733254652400033263865012545922908239105243766467321494602488307504815215176486947554325748278739654540201741787077108555121173312045176577684873983636966040498341764972437822274500817312941945810423971383454333068080949733417866982495700703415853940150900535923089971603191950260463757581084347377122757823561211807507618138037083097429952805670189121737951492690722435421200762021130111066541060399625258854732200126419144543124055294778671658758373361893597055685497163263548685960874095673622233139585246393175349820393152112220732082783999349478380930806958904017350025214574599848616643654480557047215855715909791401304436136114009305216268459145657626064230341245344819675280623310243471712134639395027290683718297308731125759629828322571436123493991552091927492813071936696050728825532282275505221888544946767039998478856512030923211261452430746125390695297315309858194682456761588654656604079142133409210952838600489133674416537968041405695288161103371474978297257978963465358738177168320969235036479236336912180383934860353156747626639832404294465756811894311344170408476157707450332796266683103454668090021594147752945972239779911204077041999386316007242449535787910361672960979172733544370643568713904548113028418418794686064449899942320632572366816182939020341760998398204704163474908668621578165262910965413716027124182682310527318881465640746617736279205664360127316237275820234412501385967520363474006276052351667262010713462490144648075212215860116306116815126783864303142234811760633584968410029429111671715601292649676577937695227034668433918809487034435061657944606782259586707016695689768508920619353630618949420785718062159173010287893326523855701491231205670918869893996621982218423992605401558524554388309225725175700572137986836804901075625025001657300047975047092158692174576830806836374823215144662844828666697228018694598063436927952757129171669529114184492698088953071547006642789125572896531887580010600073552562940732702740097717171105247299826571835874862906103063655596946540798393367096947626720422966814587806156338802760612908168032618826106219633639748403592960776664978498590242042708168985373295928402866573537263197426231057378987216904062807528507508618573783553413192604896354213790197395548920275628918333829803321886655911801750136659091247726870488649749865971167195183023556125423517568546252138689814720580510007987365388607572483659531824010081213903699923686358548965500930979982686831936659913345389519218816916742953643005120981595270135962442014914084341353625716590226358224199858545625249465472015208677138370565709534563268666521423737741702174077180050782994299080349429902869093228649074493688608067514567362291705673421006827054350950537294700714447550755035947171741869574754895645691111842428604073194512700085904885109276450570990251898548925106655481946369184077198513102028550296351039400627433549013647998541940233759474150665041002899026233458217036499698253563357926085164623815745316372117210652484057342055425385193980615733665759440904852461632395139759208763057333982029236010710791023086564423035046147085584522254821082635805761384742674590724350705782300540293655895575487683741716504600391348805059849602341092163180837586616137289096126704497595671588643967478132034690482935168899707015167766637993451874274996063074941513922381422617509803641459856314418690401351437704670733251354063424791030739613192282795152541651885084678534221402607059660199412487520328291574440687522234494163434597018675662572967826248128894970162734251170735522211195758698729275800033512961711820559522996396647388414884972910466258405374982158949154345686060859905804891250196762723871782298431723323620660192962911972636351386572925516335242348694365441872853850626749852054092085151587850600604128292405849610560053936448301161328482761002206665886743915730324442960439840009975395970117178042596667974333485865410795259921570947894814131880791642135595507456382395512827147744354897087724782355187513752213325093495696528703602827804688433751052204045795152247833393833446849185663285059552422226558523701139398820403688883294752973841383471123526794235089453875058072463048615433952181314722660826932782189211629078487536180300782555553668125762765612762122841620375375763931937213051391162232501888208597419236810665213440645728681799908052803337015372585819598087934949965325427034972054825143942998414379397548822784399799521019456457208900328143651401806489553925847041111614484716795895281081864649414257773185649241741628592589662419782498667006670728052769555791784123386945586180888429844839253799656503465945341609464243330189809046142764076703740887647259018373139126204953646628646088739713732241411066021917799089532943931199764868474403366361082258731618068665080242769839556764109856227075213360838810967555598401856046069574826166049893825140596987281642159380169505526099020752447591849001282856994272377596900773463453143490545976245802884976074443704283366258908572366591075359724312786964158864162147006644162436158198915012936089039799150733890247904348655277665175666056249309190224887207903974141050435535335354570368231924526274589152541794481354039915971981344703146611918917613731290456131885690989535094361122254127364304158400268581000985275588518049117370817925414384000857171743393536383308819437067357640254829923053849254517570257790641568415246318791402917650150880195575143111091036619772364925843886448802142348601457447762756640203770788396869062403765276876722348532856978150431480008593104461531423583463955387667888966352044004910542379751014941825696284846242110967898079471802368713148128328361118001934393989756269982009941987513919597245540412059624418866563635985372111235040780484720425586842797601288364467533584474877291606322491625320324982202006522565196592461105026371305055687475165151884251912438917522570138035544936307313760329464409283226458057003510615302821458151407505310935209568319262222657391196401989788667736359179572488787532636182973634438012104806877759008845833106309930841232718082253737771300301823832413422810675292570795073497033698658935991783999604278374343393810161059769380176575968355802869997315129884691755553564051850218480133631179583685515089736891984700714163963997409457735284434003341476896139021323468469277975239747983512933845503925162906041628950084275473032315629692209132486149505274541332287862088531167884887318983949033646074344547178848106381130050186800445756431300754958623176700719744327499050575248887451029048578385957113355583139151565312382371163177494346876313662709625839018472184744611704181726135737140601998127203894307788654930335813322495496150223895129748615796334733345383819689382205511062492818342555417803159781680708716846674428396617271935753330665643710372610232867882149718301835984461200043266641226880377131125505348760306754724909277942169717765015310837751664109846679583994205499920374755654594200677629116995339501305266093058833736640315696550031407076680401003698341066151851339364822713585294100941024609071301782737967048429951452571533044004517265207937732674563633932726637201653610039797300131640052818993684597070418679871698823437208970460901093735281704272197609825491214629972314327929018166062770260962641765212785574589334485929572506763119888002032207646751136413941107093791347355722526292546638289232997203132277667755883595919460720166435431073491307376383231941028631371157923065550432978596489782242111045558354032658981182726880559347752083969147727007071279802435451431759448685409018983743176488640406933737420652249557561358406038390622557190891314365635003326172971985517279394774881215241850427599461025993832332960233979555099206139793879521498107936666751726973035916366676230383116818226538966045173448788108600637849544318065353589856278488281969173193171466718238583046234326118703278435141217760919636291028196309834878394186337888597934582012821493929484236553616330016017205723176533063942578469051083746255094898658695702026393011442088097011787763389914941197236957927028780008587403662506045644700045760254352172029733672932939284001948029236647241494596187514570248775712145189908390656914488556343545104821080940209179030677159956457595925357939675367520308219882891457701063959812729030177366422224969515353964613855523151444832118875500780302806086937277384559865700970404027879253486703720161567307891032663257991892121936401322250254774665443710730617177440448300994148332977312182382772250378881956502409655486766751538235479441399025707217814590256200675559342880690596400367326037123779466812009977287556074038069901348447071799418129743197174396202594439628413486565039574735236009978190450392229929982046373936665176617271965855520166246611492495463451319418396253295910106121349019872549127094427351237103503386541806571557795652234865897483215237286921352700984083785994743286831296060363018606389209749580711123587048119689229726633674480914708822990891066123485810379731165785133862109062575705621571688653966600156597234259442124898211858413506032890464927294605849756762825770825221442986669919198070534701524077378082747370308571883930408893042494449029159499833571767121271802779484080300205620272365879609095690208388476231691660017877289656630838341085746128432453486907180082243972769354685582845951525227652825499888957744973816958267748888986111453907138780136149758821872606760985965638448836853475562075624259817448168539114648582701376519998918182627892659814967739670919275786414952357002326975044175488487962808313928586324577274962252053161236358338073366420540779038198347020632305542597359966569184311195154635799662658739257153065320730053732021054056195046046985547345236271853685430407187066988070107292167201205507039267733713855748940142697470846928573097378403040404088994606060304778315269833460157771601112502288364132040242942968186614194376181785565459481925965861246635885793314241575773132995764317808539973103095047880219363989402949346931692975336139163606413191624821304156416067031901932800978741792326393557260191986089992502483202097742690224790726279098429203381721586925265563167071396348422883583050607091509758150611667659638014906545969963399902206068937176199668269494689592628478358430546123076732562264035513506751575761879727146913631724908339193106400153422057685554027736410652226867369268981363370416372351603848531848790459238950389862414124222202279692300079609086550716731494025799811052507861688087482573789314857243874601871564521652621356355045015279987275085950963041933165522944948092256193803015829509920712970097221911243353460050026579903104032934424428623343808914818498707565568224519224309514303703189157846181924192308542706198953479093736905389239693485028603281935861190093960049841896329672833622509406879321608785563388690627996995266843562852753355655001453707464370722552337816468959555286923429835418946052828985190801998044384953339126459063694188140466939401888728028750007601339245229000283898567866979586741377582973368297308564477492149897165289705863819150861506640411912782737462380287371308739479811722869570826044424569471282883519507812164813054710939029612899394545283111571052242728273242946642673497279952422902725072097561076695692788346644448281276382790455200940150762500281197482410569632177362949444827872488553492856405734071868136367687334202852184094932240248132460614835101978823278687930614343145779188559958425688053063326178376133732027248479689993442404200510398495367451381171840198164291537636521394434873951475394941824110818123560689736491420167652090481838892686084113143150536939291641043356994243231804344714836961914603240672297307205246996015146793157680647551356976823788796673649227423764952128790079649030405596110010605481104627323542167089570811403818401169239116155057981431662631498031566830501740797856937260333689402366151384768351848654389998025213825143280084525029109420001914990753942996402118817186382317155955640440985620694134850362078843239925934610536336125596507155171728043396233769800646367691782221816126278003758033381187674092727018807739343058910294140652862927105525251040340596755508962970268880872355910223969881001952745921906703255069791756065156403123508230565145399477533111513878748597600600164661670297572418693314342327327755586617370925367054610062682023420537514050158079535043588581212821717860317544100765730495568498154090616110140724790722867543988266173003744042569364299569265704158152697973153087580799234053669376979953094045623346816593094628244637731335820526465728913971007627709631611807037547593751564377117181843871191969451413083841461803714366345323347409138604020951972182431877974013015064751605671250073012937411554839834642165220402179056796174175433477408226059781445502532028514461766944043536456634177895431803383264627605210600589683938529489006878857674401203902255936738354091186339297352987414720696423896446964049883936670819378399945670310808185211296712551443271569672220773062961540298454987839997479160004357221594502912165320267158747646002552181004298763489096494909601187219108295958433515926149459010936812166896159573855724503170025849804348211235000380598327094770788106570269334530438318761934185705078946301111039216909865460693256975582889436566086233745097204555474812932903629632090572327436307098316051244956493385088206285070767734003921204214768388366669170743582591951992598879739174716979207971622440078942907930645945765770461215722362003027599694371296724664152647568081787019823342564568618367280593520388501439155922367136094260608774835690219122746662227964799945627470097211453637206176781712912990206245589749495640732835695150749044980860903947218728509917876559281466038980392342885932182461056013742259814258546590159563567028524374762474232472873772557582392454818569871941999353234384577665008672862299816039268807050543864217001742719964092665596863388550241941069336998694303027236213466621917567542216343031474005513231829623793666867279611636686864107771518060823808238374192405024346171666675215326729377018657970561770731191195156221618881076074771959732240229749275064947568184543210379596888855767687468839526477642367065039159568155172802508954411279295807385901344976747728100473283029057927956786263951081459246355868679474463448680006445302141940288363242151393838325799754360728593557594815885838711445728247101018855192546083557483157879212094001995728472040391675003043613149178835807887254686223525309685537206672413683460459700008062588566686786388226316596471377724567144023017954863139103148877976384648239437562270955961839293879189644185558865311157774883770329758948118589165337185788228591349586636844087006937385721686644977104271450685991064174778431074763307812878686843121788703176356786688646558278982122634451366793875368151900082226556840293360348914971846760675281145845480532081258726433790051521943470459051988022920276839072500348109115470875424295386606199563029753164625579973790578430320861119840285899315437458187408143869467990850642628759633433867997238298507590411182203817997966303099778241104803377654553570022628371867405897302248133042804431782912719789004408423018869719350999606564689298396627266405006735607021146302025498665376269901893407212622140292323805842747726049520468724038763847603477423749520302855362169409904324966940052067839138251792591604694288932392126206442365559365098104615079662211476779671366813248081438095200083329148473480125149579766340255556864420900574164963050803407454396266918321512447325370858194365642192421778556261111497068410548291424520564030939491967647989718323267444479078106017390510434369016813170810062692168305283899251642510048289615153862305394131167323084129503456603814848512107236878368869573061136216816303920242943621027497422555796007397576914321465485315749215654732040473377668557751779700176355095219109251625811384744437183979800605853733438927281449806493264778120017086831364675594561428636834032389002534085252828345890234336225627353233307534027326095681823601939747242778016234257535752548134189372866725208276957688850212581438631245110815702738413124065262394169206780876797549753624684123474490349877203844585370324887739870681449960531872891547535344708330974201520845172989752357964705602112462546222855760833342391694382213748533599930662463059730403283552536937697663812769442102433892879259443909019965192019252113999578347368983997576655078538782388343887203726971624386162726795016291540023219687480469329268995508804561938197189567042859457300999847586656269543652506770469206432621958958375959712910260561625702319392200151112156152245535865841438310786189583814514609368209744086397664069966594781268365276615908899261376427404686780995508382424112430361093624178362716214268028388762024224503293027077001493857762038044338973752525173417159527939917286265084013289104465246701411142518885402257281535829384790832068834835920163321358381715658917326436843352288935321247118123671808352265281926063457311613937324503882911090312125048288158864811504733952120019347258525113126274259690105154971229206756602816242741079529402919420391593325358844792683743174818918959816324360236803100699875967888027324885765558245637620760747924391245055187048160739411984789708610990347592151899930182605425624077746117006368841117320836606529640531976858163877441375580898072405500543717207548934381468280082578806009046715192617552977590289596948953714061331438669907466114896386468622802750109343742065720439957479054675795579039533952873785375200101600435310096943296313812887022754636947565275777628150986766615717741982507199077610396773040129518808004591058481248951575164321355218352679143801802539905711087024831694259564065697998207918911885564965857646083514312102445052055088746303724954831813015941591121846519183974121645184241706906785582673826686585730532366336126960939751229745233382852714375806397387666742556789421273307887324401232513293834337549003645565120033836571028878076532261758943927451260821046068175564268216223848406589607801516522958718144665386174791948389603522108492353579408732420708670514656186995273455935602142236987601146427552199186008616287607449523520889589625403316580331612697148519957861923677903890539953282540858845967331234764162913682622845983177017846830448847103483954503257195684134286282177578908512131870357174074898058378021531526050038254864779877469826330716490025223061402523039598945409736994398026653351157591288878162660423788868653352374559004392575047536766567338578832155416031505592162893730203004616454783344941329857110730263091777560960204938670480496984137666469888371300439490023395272589904690511900317767523083179395727651006804434789663873603327551822486881070699085038332719158981449919446058391183011085682076619676308739491395372527097150017187436684203531516685652620119684615240001029723257156243442112614390150568843062926506797862388138870657808010892079722126696790290120087090059988276295839761462435276794704841051480468020412345070773722966481787599160904664163516075427148684673321015920974124466138947493509011914781332512317324278093691230824601320188738560027660981891866158365501048244430404648050619190097070631653674201732614735418008812878527411392878669972412275109966836137570186251625210772956024829186887145209764501615025591765410764609260820260520433856030511295666916972067607213393484651769369872960644425502730432420955609507486473290920439191043760583681590977285461996473780262996864267661742881143886383702948890788082197607011898665358625060345702452223215598074826088348147455093231902152189637855449242937459613230955218481589627806867051696153060525474256603375768236291927097743090459450828784297402989377798087371915373393248342616284254875531550803686986306496351029189667309368797093867776224604962078878838883137823251574398264723972817810286871999048605284811751787387463901749336476740517707456312944250053120821334652025780147722383380344447362276395895433658725710692140946444216709143122581759098038880927792125526365885084250641857912642021009961694783577933974812296770344604293130911620362248688512958035264118291878538961915396104686282152546242990324220830745887448958303156257837873913805304577977592855297775019127963548627661904115796205222552072582042402401328079483344784268666252182087014100257904672828775324406673383160107977669604361653818251805393138639764686478008165126193317563095081905374091211054580167170653436412876542133539419084699286566210609782548259287561462384259707260088613866579797158665872936505855575817564898077248709584741821024255257279363148920866730637985482516423538767800249477039587510204299705226796494570865842851346065443995374791578427888503153254413493732281980514773754557436474410646526058563821296496565237185197911789416368072403454349271423580527891624904492291808528146770691183379203595116944330871988996516059674694142812818022231394429213262747601465860374324250617564003868806197933955831117059746896467025951086853851893873540919570472933606693794337012336483148272883382563973593806288454131351616293377053204928037007876723756695871358465807136124989201224455521297065650753998466013531020287980517178701638044774120672040696107061091229755955908900966685481828619486587094631233900856123235775125018334715490686331679617448659352472191509225797809259653731380234360192449525641356486593341343467606013988951485163368429781777630837742317902851215531722891630904830497907241117334511721192512487754428909704614975012709465725184838246713971389764672646156013804017508880699144303647473823018839884455265195882173941922682051350654469441906803583466607369073897890222405001270298027729499763951339391219275732741054231657348873377240877719915725769994189049239149714620217670084396078333213911139715906725180613866836717030419104811872030849627022026723466301637207657703866552520762692163179633934859927867632536617257673349878907748620608627132819593571455572687464791093263659073541571746347117099687368996383410857517213521880496763170575984224100249713311180664784700904539561933105032952871234570172692513116922075535443569666217781760397036738568787247790323943948195235462680228435980593868051741463671842322765378951524913649409665733047356002780739575872377079511040726603074728508610761112493417772700401124027423361451354692611372273175930377698329778776247307264312444108981504505125245047279577256948773474213444625449405339516945876859818256721287305285463086117930885382918689530467748513196705374634027929556500289947696493228838676312661913804874899024737185093412749239442377464203055274215475915588446896417386963780270812937972648476890546636760303734459293499223872321103824692841967873342988656293682455043995880831982445598685998729959371727184187103916250436635702464127701519771609368197238267649808206043113942808385090200945368559206542694404109651149008557617534698942021385221401243060289784445655161400062662620605138464406911329561141498805672040516224292442622056817850357336492082193274800432780877262850995808285520333583047307492401718064432356849181934582752940577033549017604106047162353834183795364014093721793342733017175095016088019967933430155972771576345707777280781015135885288191188615819300551507764865312860273729575436107597360626089145959459807827164512206984597486495774697096783263210493539312548644198523748307457711951091042405716785598204218656481652119918630601237430051406768704864581019309458382561392525715266010712028157196227818216117125403738374341624613417150818183961920928171982028005024043664575638266191590588697129625566810596893750194122359588298695845279449431804285690389912833291931514174614363262994132667830699079724030074468327930743538158766466360345549108587267741612426743561104080263462584325317634363882901876423643896148866111148817122163618642914753662051955621550861061886050182115237441222247150065815123765326547670375928308566177083116317539331507948157063472860792919169498516131112546180788763854207837416213778613422085200224707287847125329363213904992012535417980034219100289445898450288782218357689011995788932046641487554685229681618689499601890568361348746187805048880024491485380136309124508337524155000955927702765562339240551234355314446011546099598900956107294422261036077859653377470456758827146170920569870270136980168116212403555676471451560718027859472888404538406881806001629234070676345096281379915080706038132221689636910191750369877504795709374630882197248264350140093633023987865847996673258769774918815048785770370699851177499647670198186990478922585421506873103074267214135570152430242930402315045910753586352729670123293848639686193326473680274690115242542373256953341159315263177301475937995102603008037240495256624740334622246939621702088612571721710699650287392665956359393033757974734322907950736641512956691975054576100391830743076451424533709379781770557112107409729814166581025289206059572499943798622175845650020982807843668908843918612206208319134681296517815921007816377083735966856159256498353480740118555882628463832673595896652638991280060209098125170307927085381840356428126386510049877052323116619715826681924254523186974275644973981535092446572018083325766389456638454810435756462703304308653517876636165056194321535133389599265336962947550186056299488740661654080760478153996132520524360969030118362318690910642590285817337442668228970620048936969132586180704200310062852071400688586353786618374362528631887579064447079758405975495029106199696631229521874151452350911265978670368675392798359045080380950408323735892834196785933385757312314586160091834892281512057530589306689847537622958478538299022767530270131538719113542797948852663149222821203525657637222744496139860449488385840672339909258735519213502428890139884994994459892056104765203289399591518454279237491330283027700493501160477452502919722254746488978753791306361081436543623921388539815311476161485763711642519479924239852995613289253103408439334289589461729417185686676731218076662561691110265230700535449190341386649382961871041994242231786604170950101698539969071238977696683004986283597600324644402511828350928364047847574381474694796286396593862695866394821667661606347930786022002540934898585785667918499892296525428006998442002228088689710221283180407474574281058639202414676278436785713203849503742646969412786913105654485704958880329309097128063829145246320277645142412809191291167542216180213214619450407826569632326358503304138738725810342225090869182575089745189563366345347340912594562542399922191138748025231111765439077713610478239684906879285213633397473410245865159705621291223609286629391877760170030449382143878792235345432720013105465021223799645923026165860405476649858589556026213863992927180019114548158829305360540858195169567512065884066049166851839019456700127351403551760017772639539299670992701846187880274215010033184416262225740287310214868796619663255140566415308573793996102647041631142056006143549355485782406508261687376012244369477081207905602757665208223540255925120322834159451723034495691286767510580873642873766563292100600049872304005290262031931913750052715073341669288808090543420909283727106324115801638781640233050349434543175741768584595292063610693474838023136899848386250238275088944000819162056372264580917256026047206122579257044572562686683663843046191531092893754029997982436132970956086436296048434399374475182743677570906122516145110083777532610587686681957906511506624189517391183229375840421451251183026023619554501683923847357094250838020803748195634766197888915314495726487507439828089806161702414044608215613512032791860629891675666157572800556865234373809308900820180037354291234848271867412785254268928405344011392683500290505095808197830775861578428036679573210466648959126800677008052040705525469836276994883370343430522673060253090315315779102603212454102851466729729203698448139379643182106599675397153063296300394803321023770318271955052642950838795642717691913678674656751909627364952630148104264187384821018627769632780595493954464773196708443355231799082970940685737072907280303312153532142780182233632985538930022781418794958839722988611002273642514032299223562064199655364019888355393738818694885062811970650839316177146240360690957781888119987843315892493168447090094542421315421157081755633085022308027912851662738471570542339032507551146537659225889185820142217432488718182239737387198155000966354030010160467121472258904912805572460197896929086460296188879276379720124832077482173921168748248582664845600831981289124252574363170075955731169089323058003848782367274722820168539701345967488463201819462127660018074018626640028412577315536543457661243448081938373648267498133068740909679622536821980318999078467722786479992920868698765672094333268737204368316344939687944281933828652248049190601103759179757154328011273221437310546040462104002637927077271621288804221212045393090296468962154872212831421979956696044099154363121084098212273047054425446167332431261857335453895218827835176223430845193329889143522725429695198958951319265784563996544351497841209384987876023733948092112199540159151067780206498114648729642377711117992045976866405983254012703831750489223426870899892546291948127563456832223641360043885569716761114620449698941525589386497176118680428650981321225225270057098833222854006901974594018178741033457882263840162924439193769325865070835712114589161857713912790837191858763831229820053942041611504103189804003350164267082242894309653218164714947919138541944113571416073945999249770177201928226153993820784596749154542922981632484085041803642170712888736863825091122220276822709363930102290573221643344646573326958907981545496676447446226488761367698432884498617768661282307045861598664261595733523608841911396217990210725673949573711922266157917468633360049240011072699407352899710591907065947683920404136008982964887510087017046742436875104503817610579618962615564307681236834728979435707562351326771862862763933941107141598537738918252043468241799991253371277179094042654906728748450904845106393042413602232752384385753152721389314878957995506425249939511212814807232770164391987072148318667157241402219997754619308100409806979180842080482063175699474673791868707849436930951069362391669178572253513383572957930536202630321215888025086637226814581039482826975730586183466381282323803207394751889391644532590962588413525662930813450391486117996259456469967043918659156231550586226730399595087218865055949757432977240910765817268405850222127840766662505350308629825194042797038553402699220545886727983451876339857753223932611433435354090564173482988009772973803781957997846905823093645596576103655285626450527909822787183758239620070662394402406515007272085530635655569029984974915976100388639923437345529043540097406264403127215638258554634578976025954381708578934325562015195323064603499231507340317042372983809951991309663899537784267651984834958807579487490529560126350494712904966148738887894771330879710320224747609764096657798134422737379633358799340699721543471131164080350969144450935582995270821808152836164913406041198458234004906584671477659292965452988272644503509220914793993848174737732657669338924239323805247192836954993874097833554236303295664765058813273929212096194653610661197265384071588696871220867227354704421321716065665172561686645513174889875020931726346399491181700697291269102028953058324935310880461298168526148230086055433947975839438268127256323634342380013293347338699852931366390317070498882732796196169528568758147489619463701283237524428358152793749833998481624078093380722754436484972679206498329096957736767973895954171356382369294042015686436451387023013032050795054902190091632293964421207254162635385589180074802735570455451188570237851894266972966740159123396322949424019718801797992926173160117501620963098752470638032276399627026988148316772243561243929924733608025058982849516236143524009770632110879947563465223373760997695193757546721389072047564617036433495580273096736588723007905789576825526069444806873249912770290136433007007761729159605720814259830323964774470233182669019420951546925895039329530435811487891815444442807074549986174592477144417231504129762672367757122978989923083608041200485499592381057290970045138688798123934483325844802976375796623041892918836345119584333533443616776672647386288420429355381618109455140126701691860072887597714981735292902298278886488909990515634218652558697848447116145334190129771304100030804472060712005026994944713393435234977025587624733739691709717327760249329766549394707124545361604916949127108498845480733854366110200888099718272373542429517428686074753367080069188805086832246346619953934727297170854236576164299320908022981831406810253514671962038369688026888462392371487312929793334911304938006715622210784039529632244342371202357259929079556916067746222776708341030816395611145806462601246890058225034144963755960290728159911738646243191783872920116027841293447976781341086191876256345296810802772734976126812081805006181402218880292812025399906707645893463219664590169164871522612140285293048976682729653559899954978050286745165148543832762031590148225855601972303779659283912303221467613641782642456532616978257180963857693223528977964320340873887730719790866443330965553116552257154227837230856357289037570488650880191121750183450160868591869596376724954675360029195268882914281867533652154981373585362999318675079897543764622492834983896429130628511601006430320792598747325256165277030442498249795047925082830496115684465242317135412909166053772998439272858858160431499871336613706026625931161428954240978705692850142208777503373807025681902366866881457553762776373934781403116973997377094426400632808123067151158066153840967489697491178477923482070881168204008641980608011914438902284977604669466217893802942313300897807045591742973996486486883261343681542945268745040227963229246357593321603040155216794641007131084172411186888995261640879915381015497744296728776772261343745262119942286545180419829471924762693511450059994045092522670329995917242135979106217702925644193306711593898103522551507632283912822693779713101854541028354469452781614924601862104234061899398596224593576645518470444061754378347741867613108965967927684916849992951716950941457634237616610032443857202745091492874623373457306231483075488572026078846280214342679705144828072294209361633281614359495987804731473783766333919000297701910892327985462410222442282272106031654584057618143143910373984004574540299256021151836227660820453268176609281009296980945450590887382506575291995570449928385920147707362839055042743547003868478539722650075629722402048607014846713132654447044791802758921412236330476297412807819540552690978187311843395508979405236252935761987638536375429158497213727774442657604023965480140673663962771646966564104401170658429544601999269898285896143917835403606702936574922993727474896992425302930961004506587819021040877302973454754748763208985303952921376439568666736677251034754616128169954441219233253042894889483931360830732736245673090937605409433181940148647052582663835826350985160277885380636572219417669322591893879877202681835368099190983336571128489434192818616098382951078687489996403126022324651999939584386129221745991587411389100101519758987064915963247709289881501318244151431627332735811522963137463113226689556036954752798027404945974586114406256692241748521970256048198072601740834240167236693411473638354201801824027624502305128790545852660104564003898099823342627933451043983764774842765801517882712010970860784304487831282386538349027396366213739133697992247456607159796711720139753771783979609097370438490683441847263556046172006147327663245992050218095258652916911476141577798482429469916068033434410586189834733717521617745013450702619616984522563463614394779877636471177882358261808956534418412197920049301172551639698799507599933929753191220368165582717806325275581495269331783684122853742770326158031568631356880636350817496243771914122613596290939373145135590593934295574854682608160298158831525619112512435061157386009390128176998361711746800471491740342532967519973357965931874900512552427106855103935562050551719398715284105550953691703563634921988231219519465464314509275239047850951008678376395247570126571451565087539403034384642087121030769659906815625010173003530258102682185516081647632656472815647917284058403897807372572471359215826951418647514847518514254402886445623856865666768198253774957546324674602366625785211077846530816359114615340128548648723572576169625391170042012388701418281333719206289576995298046755663965427173063719820218968693911806417748124476776051900211198215455543951294965887373620883937436354747852895228451159400513735530049539878098323553517600517796544298362674262995007677545333547274373246378148314418578373824107236621682854890374503556356164901665312412241600101543400672983612428870821136174287555888783826750681763760852307055334214181086895370387481342087419944654660292341870772365865216847379327625239129666307869580318142610672943973507055569730441110695001065218319469964236834910812650160721980744063193915727467445531050818754736511286536321937994826823502014796026067946859695032350976983734756220607435792128053716250744222795125444022508379924633570179006744116997507501091668609332030214353670637150252322646149121505167439497583649897570995102673967877277168144185051622843964946426119674910896694289117542539664817951583715770464302763425007926919222126913380925795517661190664611585921534347299295074045616899258199314766314954635447033001890654216556634631504805458185782775597140494152098466456604033840332164609001922072845654970366411101305988295861520789499517005841576795966849603339493025293909511069839454809678920850826711102219321637376011234588912897341023513029313077378016827157100967221094919200497746792632999436868465741120096003273327141224015480636275284462570067416183649918879439687254171756985842247938081507631352349943592387379042286895661711097788640845504988817079692062631560219378252836692477843317282818378301878574211275386800482043816501580049072897320660013432702249573995586918242328009877330992008501082941540583911164968525372239713299593838460757555588451737301247105451763056200596765656238841551370684687018229487392662265343689666043746308088399610812218134841739375145102117266563523143282285863809031336921801242504041733637778456349888620058091083571143054165349512947957654007733771528941262721632300758672116748935563908624084170338368398385027918270403882776547856191709073479966788116412313452055553555561558829356769752766262549614026223860430775090142918743432612162887143301891176929707299870506040430672204123224153511770787247918964120798667349691762273389337132337982386286625924434901580017783508112328933727198507104047238125545448823227025043894547235030171954291322108718620449425121449123065888113547959668446866480619339156291393613990217809270549225497862474676097517570902529515087079973570462646026631151860677996741741876884879272956056361923753102990838008319633068065577233579220943248445050055752630718706223010782041269136890642885243234590915200874852863401850456302001983103604680130243770437198660671614581544833379756855256533929865334718451511082798717294853283258618464045409355152693122377863416588507192669961174680171082204080927353925776664738295407161988561420352921361918663722214958758705808590350158613609106774863916066103184702075836178957205542564502930149637285938798096415703797521309411510225749769573868645187875707326251056223911669443019356105208596170488347197627505955653533656529077631643656002445920207761714154500195401461413621409281798481228758959139997081964274244927470980778691733670998647167807035158349597362778609850542614090309875768204521952435010838503391053384488103564184427391949465814902084942311634706325027989046765009788724311133598313807397294371323053710539582911659678619356874170048083214135316618558791343654437986292875811931280952403425262306895852582645224096487869266266141081652005886176311763736586760750261550854073000431937589108248349667917721126493543407686871322403112028077603022786732562780340498889385341216474195169026873203648548554228321052662924113704564430588858154199400062217284347076909909942483340731293713904701908341318502893083812466329884602144100670844955396937914857974294846817921800730533459620093701392731116539679728869164836413564050351771089350126523587033818732662015314052278937580863821710433901355270556916672036840174023990088483261503585640086588467063804086286103964288989837218042455765617681835012208721633975200650213894978563696131457762504711830530475363224700283032703793511454358579090153139484400611131729093223029443784217629839385735782536578198288437183602913097130869538999394719194728175028312244921898721669154353198736847096432166654297460305827143954410839253755715021436894713126592207900953663202514056368234926821541413082759232736269869053230328627408371955926626719586142269104840356900007780414955104946895133283277868258077934274886484152196760353123508209224589657225120074788173616845743816194768678059073929913216092242782981806473209638670552435446132792629120638101096533767287471997481172112864789421943296441001114897469869688775364064094095562837327693463884842769002641621663980062550647468654237650958100919940944411569939102292974424800682548106247343851791611983071093707038824431693298492674611425249719617022317820751927990771496317442543484782976742586346889665618153311117313701930808462655471643456775974864601199951161856863376366485497008404525040275855727455229186588568593924795478413113748480127784118427597810689201402500971289205730616030688175026052280795349884986804793847611922484667126029663163972095133666000255770347553147493294043189401604430855667557871683700886676000020060780539686010102695671143152836178303536371155862197479401122886760191284835425680418229251641445998477985313101432874090916917028369343227275787879466344176580257310283690940214170642813773097906165319263824752364382123463235998422148567260555726461558231685989567918171644644058970632309423025900202199139900790270033471487060552282807044870348972273075537716430423897610405870135008963310469147629887331011221450290032292877204037073928613778858743249120847078957249572689108189898212974276555860212140610947590922415942365173156320447805125158173677329969297465085020848372016795823396182535703475642801723472463387399997194422478560038508343552561700311558522506362223661875297759398803338858365644880018113387500841310268780420312404104709768016948296798183148839843692909531852525615571707717071005639761345034664450592575225191653735458398425748664571918880898519231645034827576098970682165111730910759001005570539398704036085825151229584673386806001808006792757381579248432273529776294581442987209796060692298502083251270831136832641626855103704507248069120449382241740941366788797102526052471791544272764348603550788015576266798046216742280127390313048339879026467450437693513800952629760953500946119932633933596115593489598579543334723341731556025010098436508499313375907211677861616264391385371170896289426238633666452278042319508235727895058737554413003210133883785917453654333741287848630828717269379408410445424468377339237071013833856960274662896363311809794606635337964337732974872698988702251442652219668759667599084631936685734557551509698396443966773641457960205006486879399345774491267237582769849143750499980714528185415437773338141234732662117415752249998332737351873128614180017373487082942003884223509701134939910577562143830392514775419268844920009411728639708893845945628315339238398236243604109871949179801688326016572630504472903746936652004570898434661035820901170256858966865687718558986391826299408563327303120869658265337880941264593082021116744294003360131758958725899694140219044792848099826940502840539249677349297766616168126440902342689512446049118109199046624655559183803452621524649472950157998612048471532555971228044103370144610039774113830548743052458252859271109867776353384568439687527177800637924837612588257135752137531200604687504898674245658095258887258177623767260756341436317418977227579759807660027108864044157022416311633005439660994536022267101830614994838064863316226833402633554171847622716026567912595765137437214928401213024915579215755930334897270784528176866995426267545080567325274333584874486637946954824684674785854000173602539096401519207765773286769147254560926735408363808035216573326039141971298780327352531941210377195035984068919626445761754129955321502304990983707305389459597900894351016335814365603821289851737992463158938935458526475003280252777573053663651851777097256851478380912650289011305831439246952305673494061467465058933477414746819103125409053112989424342662979917640517011688897133254453700796221192745699713928088210022925931818171677653608598080882762802225588706343779183857084441308885385232849294183675012026245593614541374954132982569245034518447411236303254943883659659265544118856662796338942305419383685007544638326797094398493735533535146806744016606106020320535230768761564192416488892823825572018608091974717038956207069213388100038946134872717179471802584318977708171339605633269181620385208178978199217172953417475849668242810228838048409435297092919076406429515420207803165458094835804348910189544613693031169670947202898092585530991235082671292476268789268088756898172145127307417752647448325420842824025285281174390552438720692812682497864429799226739229294002534836411836686352321858255172414650104475654216054695612747972412282424185722614976388581154963894798916561477900388530203466695029599973111173792432406539138436631251651482190231654175585800921371597171018251159087996956387566079295528864341102839508853816900842192731683693788697243259239901111631159962260407489975848830803232617519281929279626062229772093419407871280153827555695989434446631091711691852189419460502440915960520542095558464789498840189774333604915301448082518129433976339824836990195488602642311033148010498252468460611510512904704120836521356209426578013351090338569845496294231060418005546379941376953691624364364469528328565465257305274438105226986213732953383234698073720705650000567901239588991122737061132857077839056601711416054508554296694875751031563792814966569967971866451400684272658527916142198955457082609811646618581431904181517420109732574527162143805906395625805482563217187506949100726689995520710462152452771126929343815841162418713293996363235354453622226832509803121677051644190675324899153291618956718244895781585164271706964358215134840708513905766312988368606996027966833112099676116226889679208318995513658868839682377134984329429364286960157001030922724315430810846094659331060384273834921573677781779703073658241616131913777027334570857355108686635942956514934351258519154141305462607379520993057810899978804385649861982104929498506080882448848209289668128695846203080186996907416039290575547521842107355359451097654646597839615689539779101751881683783764209219647469979844618119431227091289548521779259122492128551092331258827919539561400618012894398233367132555973903703383383502966668175559206647798957389130262711146523239332193729631798754629819620999954388678750099026193879895275576220717052317109509132669066074293906557739539340401952051131692008933269141648927272751116800535333152948274980072751932891354427356688387485444411924959530525652122013148136008002471592732940702148783574017005718390925346079625443134628642086203276380837374857732203318107226118897001169146156675826152031077503794831643980960949519809615771344490647893447956842120522557473721762437828076401758617374707807621266651062427557716527231015752940716244261650358485172100686945464782083337750349134602499011429478153077078527822783555101893651574212908564268134969823080897767531564756381908760918060568121843000984931696631377787418318173065321303430614453940281504553684321735741936615140633529671841581169149603321076935620576742550516949890534446716867400865155381513868629781762601276815344654986311460829277039865423419739583693444772891045982683631916988893721562816699862039223335189540010080094031246421768047614200958525742617406998920979419342106927988963083955763869652081539948566830758477478869280744724742361940145815708177906443367161952398431512304785132465543779220386287270219722172332330520178402511465440383368311571897997779209540831629623065546683829896039358323184080102141937293555272076234339284338410973053300108907041720063639629436031484209595876553243644027212469960061773295024196763514065398861171293331687994071035748157662359515516228944869319277837451563042328019026397217361149190393426080365428048119253993657670373331528357540007908660232663329992656418799132552082976178125502793847495084139949223269052590525584361420853813824017030393165651957929559116200425955163733248724662377891545416456703172329358423579102221627224893351533186713633300789817323995429985986230445505390859438280109107516764508900618283303040228673504790420135164067588711238378122820197132613589427985455708245692655297362690871981311162909701235059805349269522588707118395489605134738700119442314341781751659306125548087566831097613006492437640974715396692002727810165802914764567633793743436947191777587275485791240711124995903268011635717243057746586210197156922857053289820926869678001632163283317579464166878958855046361357544796809906021594814406472180438194352617220247023329002679566140836871878977403473237675355809763821670951934501922312489386262897894793450955775254145584418936616541021950586063636437947553068893658987759918243590740582091052156044068025893320066129391912066156639274530478600715491796223518709881071517812797815599326454775039653866080550556525341718771588239886908292263977999945885410976433240471206797951649246703283150525583759417566624434273902147613083589649287154807602328219988355566079286843558364324679490308609786167944698244247495707385949839704555942379372834440459509075521448760559681320391778985172580677262319046909977360829140512829005425832665971246431742049156533369743769863297772431045963849287536490657690304989551361403164262066227268676359120221184506679784806048308676437434918586677987477948979593249463877804110353042132174961410235303009625737478781527953850963858437554373888758021768695383084889910478816441265064825409624684992772097226119476656858004694239299287859241541584479734549791009931988422377902937093293869573006210332392880727239297857281271768446437615726883345842432386618550108420910359978287015550320203354278954635651345342684500796225775133225161506423645627804547034610151866221270173234713783451303525217399677225594562499286386932616287777401616297562187502161005586772327382095597648488193899954461769396627734476460936045212522364679422239335664192808145861771764024477627256622238591302749424877237083741923534428979075317150236614816253984793064294982325937279141657772376623752358517756865943824702815535485661566087918877606501712522357145515479339722134517590086846547801215205785250606552092460493038930427136278619508892086373540699314998355865304813907706549961735752000675408089590339636833585795514341371871469332378898185696271814755181056690440669196627420550634927573562803732405739091194137890747153842850088600217048804578844892653491150450985918775172979308038581180069158339521055792412468764959384233036979966952323358066156982627510349417820790005688052950419798064649498121501041829032184560232747928719646970746643765032761409084752942328584206055938552689630244876232129372545724853440782242647679237855008885893770287395222406178622430621682483659563431230804127831239010768481227858151299748342112585448419140524895764395144806084805404292497732910686186893165065475498645421857472245621082783046439996158561223948613856676999261353037801930360578808094803731650027520117820145749813887277474647073700568628894495636869614635118567293609386522773931905865025053739824869193736451444433136859340312897902355284671046396570813998840521568120920145832522144293556465839984937454774057056888655066067720252458810971178300210507826440542951575393754606067984443385615743488336594179715631425548983300325829873791121794626632418533308573531797002241130444338867423868565254758223447884864003369747698702981106959233995352034361572968972692059867315718152557476189900645197942993101478041415009785660762302303650760593174782029380499075147932826177185041725543336441278394815491408324995721056430209250345802873780926556349480596768937484255729472146689848149151696201771085435146128999923865172155501496689425395729848888421322488724742125042291553977496546601233254214691214969448141279397942223510064776004898876490586264624330983659607173831341195912953214776819609171832385305590579445265597993650594424494224753843940126844443320110921873836459702577107311235325389844652506883942364674895084405936576855370565268709691007740550077545175903228338267630611074946334027610776772985784434089570194473642599261658950522040473417345684295994725210115770944675911150936362562057707349766463585885211494325114775833919053847252932992409690248216238869259890062328656019890746312638775982188262758381241034318333088033629820553784785276703323249381451802485649213614627367554518898567056529436125854921427393297232794805328602892959828778300504148350631745989607118086746009105090228465532643820016799054736487978194359089523249185791386527437326340631857429747045074586797645186135827386045501308160877816200313691657523016583576641008685449695286149168093657580221922253109500090655775198161935059329008588197800267363950766996288536687545179077143650468775198335664319766176325829831949105337126317045789925417224223855484326797315999922405700897307319361651080915894454330965833523873364117560564695297100677702288661235690924951571994156122542198699784085825105464800616437317277360174537883369489239809839761179711928166599822275275982538558918798827356322526218674663869332208026331715307686276974244940757888469977628527819757815071927797005564123242420667018775672838882209804898484552032708676594973157036569785228695728187524909453171983350264716516741196322235841761799283683356222906502389486170630950368930137581716074494572659316595363245621732201660040025492640130468471364102267203729341483446548326696834481315295834035353047762806327396436354601738692806194619089668245811616104043321341876451101236815029287204225247950141126476183331780556677748434025397008457331625193190580202530195506571084585493681433580185848518448831356915667593551413932924891115911694699664009431012707260514839308353638454061830184960137170201722633639833092247371032972802676773427661057820346465781243763969818811789947078817879077618971805309277406938228251178044030048489331218597710419079529734492276452798713314878018474217786202675378998246835494101214186251739003114394238416121913133406739092698825045341531006038539466520692297913306551909950057358301535266604101315925745870376609953753432178426762549081653919408920342751106711855981446164947238807108326796356085159766997874328035684856915771657902207462653076577079898393363064427265291575102822944315009557436376571325733745327908889387064595176114691572399377493982652485236789809887296857360317019260996838969374970139430507717451679921912981619399017796777404721358413122033740747975701366630319356737015833416689561010757810924035477102554754376016546657298014679036889998361918365370660677281013495069814983830461341152115959172177314474484488582771898683515119727540441662708372879553323400547862361384120162747724259494441708808708056043275725992973344168767683235010759081976090456358528983295721099216788473880376340385035782752199676152030337156868102787720559775309175146706769283028062901901354669782169171710349304619871148734668088516650831596961788985129694421335195853988047538025593074688325232242002617471781692736829248005655284422239394471962818331773734420947733454115109595408597459393105527709886857867243815264868245857620668408665419475260259713651406603130126269746464170043087773960134061028410721448727387933830481244113626456450637301155646540226195317061181564231951747469657688725315707760973857384162220232194935727339768906248837795055876392331961760870929642254867144284913045296468673564632671351416164482257627757482767710960607035540216699557566978393895806759376779712467948440234241978846271365303665779062809667828831147313602483190992177952082895419181792222636322984737418300208287234602840953887161986592565307585691408573577627065701905481424074236378397548146939795435255222141873634434360165084430629535053192134360596102486365206153711534828194196198526085704716241473341365282548596520141242668610805436236241142847825520720440601047176658124828946539486896636295777243073971993231505534739318581042860777115951892037036471277922537278401883005572932392354359072430580004750975619898574970531183023978527511721948453917558533371297035064154082694924508938473035826892498972772596761813284980480740338232556600047755487852380683923696227541821188913388655516526346275993382120982133735409971070112702206168002448424814816327868162257520229323174153627361326873115388253637016808244997969907169859845879837319933311488464744867927064958518753931015409149491427345792454228304366304507631836648925697178982513813604349595506662768472394778687462026879425124545231358602045808983041375159712614543105377723680349889159590301244037434981502016346890005231790293814400338114609835561294412699515022728844202039805832541197883655809714477138656814466071927095846002149924619317820744590826293368227065774077015767982468831810546278517034459288005774746203670492882292414200721845820143027692263981880191702290500474054744464283942592341954136809916702070162301336045694129121665597309805675851607140406373881126671300250712815225748148574780730648350240971847395898163820170732340518561901310388369773991172250138407989445470037301755117258359120358134563260073927692609107402084693521999711038843624985106734421313750615756761495665784479010217153601811417143184176358466199966482256138604143434099928535870238265435438677060261258950678526396861444780417206142970960597821051048271775168054028156766353382394345788308109060382455488110874654449061859019221404952868428183387742733635816148793777316926194630339786254422667929568188300058533800588461750352697332415599158717570781550554420630002225549937418861843527147175240549031195772510661369026951861896060821386978627208412266502260617232393227570181800221110885664684624250169445641243403144760420141511688179064484870252010553757298860020965601323601356753883726903366628828554010456558602083935485557833296986916589828256775639576466734753450349206357818227755805189620580504624726671648792327030490761736756366812203854744478834324539520601259265708973210157588113362127028321420969523516782099104700066253492220130121847286044475879163921034822985071824262204725698716290605698308987510429998224563731956426477922082505339608408160487807607693482732795381458911347707202647235424110536596957404369342934436082760474943441243999882141343524575543923396514297680151119818584153266306633986881352742335249340691535154805591729982929998917819447429461336850930988744477909304742520287960273497604517712320709122452299855090286859695342860799735543252233346148505027065742442214482515937134089176943962330450403071430111145486810767214154822567989462015946843919978396279568885085653921975276073242966672934898393814869680693252206142452886122267994354219931417188509343139972839635156244919007162359416652246654618438659012410486932282933383039732183927230463832787772969670477532112136935420076236949171917625037999140891196484333090205512028747954803807422636631892445607685907996878914461971288205544974530292127035099787095452044668896643428445290445735459655298099429672748598754901787084660078123205978583056304116433135998291899904965145507306346830795209782637717070953013032800132843700941657663960114949310944735419723784239108423148590643891842342298961072090835686692497516430977446256727022156349590514690698489384777706614342748952250089021895242835426667027246857449022866885988674460180508785071662045372609351637223097474067531782011684048214413522986098572974692011718633713479072858558899587987795986360259370675675619708957074942599987976552492673460379117309872667230224797379693733284789111195737307141691374075114313398408601405052779163510533697152444301403589517358772362556942106468508854973963210924907207739472190374916834389102930705297942158404310603882313543157024081327024379359907601835982834560705855695032458791560684440040414635809086105372877825470900720927477356174063531151892334552207752896127574709127924368966169583089917355432862558268463761531567751645382055070359887863272156186769354067782730089691167812633735877373779506800754832344457533199857139426076558024198483470267352234406647853043817064225274684580521757272314306437837810043372967912911431641003220112787149954546784439968902308250379923352399036304752664812243867239056591194885695874118318263513925443421738910237404160371433042374475601693727662892451263648442040299949033687061297892646489057181482539369618253060988683822534838905036854842972827117420210943397192098033585986967612690700314636810384727629721184190069361078572214209818637333498356954235753575240401296771577560800236034037478264856372792802534738116472361937557444976771427054857323720261982099128258368161792553092539088152850347975175754293735555082865289884925424598970546288224804236350410315479299107682242465495907407456225241968761675307024602235155068562324280586085458349945513677139007088223374769503755805112770889867602895528682524536154191288755425234469370174924970965981257813981464064884270192048376470344135524324072494909824835227535699653620016790886717506676518965696659198752726746614311094543563599160523616831349121112019304755170779664241292713228387218867163640919999168146732416416526346331653712001895988908328056354145914422423579513982880781488609266763666188158004680469667579107755017937606106302697665192020432471472066333539253433010344037274302464687177681011236052132748971489231609595327381270206786643176441020667709874230580731786521380397284669067112997794928106767170521407506830719823108096985876658179949449575234417991939130839454891518774524117130358152355532807033873313044824902466427618041443524498622184615727253178735510181912670656369251988666022565727726896956783632086949781108212085955191372051020700286538407477555504616449320560511480975984914445949600533593137431171544905972473848778346791897316227803085389090044553311740699186706138778190609167959240697032052778974987802640934293688025031886004802931945886558196768513941318895397186866444936388711741825121277383721224961877462366308727083555837639008581299232561964957912453753262891406842182761778457565945125154058946419166056573506636288004130571140950431081536278250719915760456417506519367711364552829191093248864228183983450592323767508345692203625960402691534560688746067710852512928939446544302848217291276836588915596565592104977896392166024728532368900290422882737892245847045181376324610484105335651923928311672412313714811809831885482238784522941424002554215698612769513665773879975211772114557684197810644387127491974193381942485995717733413315162074900095231009680061997871143162770610491789034298536301041806649313728590382559159209093795920487829712400862900937364265877565406460175841451679571726332816178095080891247236272876293862869082537766024960939850052695019464176966028297276981024733098291744744030658753411222311365792344969742661524195519410928827189091224875164220390100345217812767926198324404989215775952358496635090145917927091813804045440810886452967350347087913931231772070127146035128858487058933669999226991292693420140843729182927971473975202966118105317534104368864911455114357933706087624778438805635584460937685825467026145358184604645502735105162836002888894795947322896255545589858378865224294991259514227491777290389209007351947360886782332295102027296308401446138780594503848938176046196720952710896839459195672588071304961157222782859017771063611931781328279645666496318902879929977467213883940959884210448179575774201036506316100891861239998922007761237539880527262244149507856306777507212409926840424878055736475619026395816461073292151454176754625188007325017739220987167467170147855487160233952454025645659670581519461408550326053973957367204450533955325607259128435413352317417226462574618208552474709302846095170888194196476212157884114052832721983302646543268919081984668886443023507052107948597090388239558195590047733915211990195701168301310236940072748022400428109775078044943489254580211266222794581423241501711522514726161308752578019543745633565616456208177406473294915388548589000945610394474233186694899077621106839739377450333543460229409302181667020547027536639212117209327493001554690945033774319514540293935296080394876788689335545121447020585381022477864600438987437779818577343997617928517786173461830503198647937726167813599272549833630039076589844506881373933897314719381127430636510690763790335499457907028433049115069064769301990953075025204004159966249339495868013582429835117605335410226658233053868820742041054308778476060613827301667013538567799962109171241758743326173677537641724307493563123753803156568537694350396547128266520221537770312403954699793212993264520858032049452333051147747539740143753112610025910821764007087131924421875660637837890796704847574070087135589397813112910059412365842244091192674733570585600956844323076694606778436006322898567506676362409593687508716393386162633893866197486118090715409630866239336300710327350989418291832394720960328570649031591894299185873008638240419112961913439435005467133355097580809063624726703951764486998297603886647910498333411098804824207536944865653840719297964573749513106680664983608027930089706758279872337160002516828117266599527413043312716121004189304511798661473611873166586079643174920652220520956336905196524127033822104722342018513578718477802486043099627897537632460404330428695090488151710978104551734337158408848064890100561540683114313683372962603146223602438471224381121201264750862863000357236255125743242207046771925784361664938029818141184888544062574374451767128495341995235447765454448288042366742626847186349674632589931715732742099285879037530825329533429003491031168710918444240047721871779859695324077107555148109257439748756970451214226958577750137166361707148581623296545967276590787245525377749386354032288600402487738495917284085956941057051830071383152207393669864270806830549371559983747672240413937072354366844145435097197766713574789633859821003199976798619490082962319991096438071611922501569212992020136534769743101277382507027651641798488142526669821056298111347577573064493777265871255877458976624502296786877637900392274468775355940032521336647855138392148775419920026386990798070514959388416374638255072877370119425692087559141824454453212213926672479462957518405137939101158435031808003859741386312945476202207770796891622566004617450854746101847682427206926560798860756755342032904854726135013812764745769566869347890194148549357427777891350023493615220070095774762363527907339455822763175802247139500988982778318417103791535236845502898946143886608960237711120681723641766599542626685306113408086017798728843846415692202879102105580875000260537981615143178529519227912147096985636992311363041082601599101409036323966407044713747149786872710674369619419625507811525377881321600118781763066039087781988402252359534937619248431265396883761552122985644799531541421541579336439333702013846636983781497835317566056426829133924339279514327208191407097213887246041008236534228169163923527460547701166534070486400134096583401312850865312945491189295097149923639409976455093337549784006584546552786377977979377563559692845510233896690804275825409109501102488109068231178223980696542393089085016485604962500073174952747199747287247191080784927808840427149045246902113203444960634076896117295781108369381584458408777852359635199228779943107443443694874732624426398310371571719631685268455370000021012079123115261113642615738002092672071125646290804120948008759181153890259317725360062007454661904190796074183150604960856557322187417457004439653129717748136574413281908529833409226345344601722792080516164180884167958645686141938558628859717716964224547187497257169658591484259205543945977837316100480839215304700604910055931688146043439154368436640502395033639956894180927106043068466853753016259385843798574689092932934219326683308156984623624322175864563447664410512270789952222081652532079845199168011795552600308824907489336841274878003470002230251535413610815609587255678093867905138593192907295862972494397839034500831963680667139893437326592469745532111859973066671300024662553416112590215206547073238941288663155179240650196128480073536724465107882329524241654936741019360391317565770120245671139425738406778963160141275829264213463562810721204655875667210450076756832044037657533658870126706830508092582965749213326089510613737891489073309628812089002977857962915093563336269632084203666576085223034462810320179131130051748448200214365914696828636344554227335823091664450053127601070382558007789989477851726733210153087367816093718386967562760039807487166246777840774987892980628850076765775272154095447414464337852027013239137575648521342385681972954144340560270955959189213622421980680797682579114850479750737036375621604245102336887169781866629210368108065030452825682422965744143930440629004855307346550946510626970300593836980357475890443704621207302476705862409101699911953097134200503628864527121353498821904842602902837066381982276486249133216976803737640494155178584942432656830319440163637857446419657860370337731910588817808349057583596457610944690385183962269034584531476774685320354226724346600327398247796136791167616874991639465185780495692392059747867915699615028129283673808780567877493546209479238965134273462875411404554572671002019423193287779330417371496561061626012649283437124527230619262239420337009100431530700008282316988451629549483436387409122730169071190454970785170015037153634223673800314461803976554225862845911751993277763872012068415033205771112143835332351590090527989306768665257742907291382551961498522735943878663851414281979644502902642298575868016673764673395578495739719952148793138650753946841908369256359501565991155388315221653040150744515207165249636544894666433498761412166935391948527221800779671034878232085287180764245463986372153465702312907811976415555241663276671550859756393176955618381694097307133677878469838957472402668037645062376373230612773987052825690066892086687506354742107901227618198373900988277848158140476899771432501555453854830523272735719810953262887064268697388648483871861631484824359322877491924977593169434277198164166189442354676674403728122683912489017327757717719917254669275540655976291245583199181275555800931250216826926960664310149716374141581079615690734661904374163577957802312337461153728548511597113747416055834982971579344254534268288355275374996311092642482118658760754038085050710643565391948536815481708942291435886513168119801761145705999572417666846819891859761948366968789873870902086334541858534230195753580065785996469876386054541877701189107184190979664926752814019076478314886896422724571162108598393435755558811841254741904873125270966775228800937383096547123294036438729177754336384689796828987155107252840574112184731630825297793270735330227012575595033695336730767523143815368950397191621427713301523170952318329525629965520623472762986398730205176609435976392728524654006900000468254920592595761594072674610583628340867486941311805767975827104366398079477598898314412227143484813611821654698866726759678021765782910675194894581551120349718825833909145147195839931459195980571625856073235697825993470147828799426750410092008856883598360122309014154697510872686431109441733971803117699768461819499358963673960854482349215725822982255499016289763581352128895907018023737011450780896174166873841611036533357641198031761786828983866895378794003500229405831635541708515647651437175928669784559170086402397593161446942978090052038159758714888429935286611830870152700843673347428883173311545947387210122615007997012077013392787944046994318447346421286628398061511244463412467628394353594996615927958193579557062371238481642819466916063313925816971805483169036298314835662052350391465061517314374453760102272790988946198246375928724860516377239905186014860614750165238490052591181579467706471765155914763744763228084100316459227297428754793310674554043548432360165259283024724800801410991410306544377743374996604650719764635160458040808114656705789853919635359675396228298660803748428668588157186428641407210184937289687027748259876208616281452096063828288722636783283406325463133345512446631465413010323243241156845880221784595978039813008906121479026888087632301720779920613581420573344000214482419291227082954802060951801911831498770267222314804358474538006278002968914926310099901833475727233341678898308578185560790852496135652112313819815257796512250844773331051843587143078439579730232090822766136238867991226482960622256284376834633723134503129815354017999800462081780999428844872817510552620166662969327401409538001818037721854080030028927923176733768824307725714444978275202277762164360376826852308564858629224886423724143897280398956291723326345150873160892469162420217021623383995466684890281171143456823879170004531596569284594073400642197018958245368321191546668389449934555561874215893962989512401892991255407974792949637584502353182445750478302276150244003662130834131860179834680068847495576202637406170505831747080848170420873288407854285883497700557911629572501181618871261977792960736353178928943083169533474818254631316286756816487285593891483784876098343779172132093861475293765374981786442618611510611087509905241466697006842554737988559100091862552881461316774193370494546376425419128382954320827581273276539885288615715506258740977198988048311993874761647090385023766678479051035373264609621921416680341164290548338065255084925220591223022887002895735199377559653296992343575823376309015157410672615092378207490381830264255087855776564954795634632850884254391257581280808020224737315168513910814968145434706576747468273526181015001387426848153192863269937067127970222430402742550859163363931984371493702745477660171590022684727215602669595568894651502777685054409218499746017896857336197975620887306838600485202063321459770405233710308848762350015227919025350018324846091959546566854210755922235275133457247550255572154231812713444117865398746057568551448181413929837700238604901556722840784409135741401191328836718407092298234381278448938881053929064900057147740570661308028485460710386563173861045145120803481340275891015468091382555284606327944488918644083946358998366128377951440952489988967775708440571027470990841034841924612465362382552837258176306391873443293991296404928530411701109803680862129854189158841152980203188258538383422606133322555218556552633792007313525664247010019232359185979933687096795156326659540095827346911592556566684495198914726071886272179800551754948927457970545686339017234304021331174325030216863723036967660648090308300172373937047727629576713216290012431799649631336498260826563831899683965554904719047136244502474248802178493289148058032161871526319567609938541817781977672846285195296851768719973511385859594971139711395011806251935153024089407634098903417607075365331215551416332440579525003840953481261003671504732216818600678506624261714798449423639614572190842763090425879649359412291771878697723437594032873994131648746505966403142620457703324765522532476099339732481014368977004861477298845792761698993168987595026281981064434356088471007298585304428571134564955811414363524346781697610837400194598730790938144377347540091679366468177141856243094669110791864809729627750604755419881734570306430398476408853113913885316339367891345284825253690993569350098953576479131150059737277601831449026996615978336123360980937224287023333683524787308607511540710905748988289124506905101172403198513020030230857860895831654143517246092794652689272705653746462141595539231478211321678216115247823111144196802397892030561296931090161075880270956359324033905070545028674126120940063950909702690813008776984841241356794676070100812770950150274138629337068584083519803314581674052032493867374576693595345139277336042818055785998330888655171066684272406610155762498209915784286314549845621475383620366915941451837932558122891570663681767353089372342940676404580958948419054656873322344678798487923864475775995819415609960163826528354934342766655492806426309411249224444631482486924883832623689626719639942915572575076249974807207924645454639677449819750316025164277128149215886687520268214247359579882844984714273735044676640701998121564734019436214591357819787601414794722592408118971661463146732706138618454019778518197936215665775528212718247960643151297134558279416271863126744396526716788549984802674712572795317657940374671238480167553155601257538690412575583157686389701465649952102832462125477016436949744552555837539584102911362391625350012746672578560674999556815368218968319245876806010258604652924051808968470493237163697280421492254029651737770997722374211348923127922262031385257034227671400471710369129449188773574478751363573442715283335642606086822910721629956462913162817306133107398409748125621704307270884236280012168669638403432181288597653637649292059358784075921677555377716466582018911705359714925565524399129476379478551965232272637288818307570921841931644328621871712342047198685580150819283985934889206934622459679326541369357884382565694314948621672254144832388018969902499117211288047511493943561071915624218347951723755104900162135164341127947602878171001431574432146811214242974475540878709609522270807157068506250262241108856438680016276685601742537711419638756381833870473080822078314133289563474910136815860051930639550615605197804452539116634758199604262452405101232176350766191456650443385617074844457469951383441854753559971519979497388216182218657776533622784455931337329198536795104157172584133328832172546233119438639706983146500068781260147799308768508403876602602256375103379488666832044540796994596102330045550357078212262899776155245762505718004951602469145008782408062653028147217727287772852448033502091390517598425565731480892261223412340920849605753668150271423367242952333411735549051977931288086319874650956406789258747655065058819084405915399120804814121915859283311060266145103254576435573875876542706356271386198826511650380927786693154090859327438750488159571197086193537284506167556891402499435319953852062210369809316620835694865444812323822365603983507757924537541190233173143835376663395591255718086750371446088982810181801901098565090671649879989124623230835190137530405215248626137456439397225020595395851330228190415458260687991494697867230639952414948788038717306232760285550151689486949063522363055827017801154354107363214301025420946375307652176004983974100152602247783451207498651103684012640182729402330157109592141486831871029599754882251668585671819266832750481211406365674969815778379559295118123817140016314583966345280837287622800811092183501530328691050354691031508861505014575317312176419528404641178980207318756190616505726670221573061457708923845156993263522143457735403961159055419576929007699983443938473874318155767931184304017515294801792251855634801169935524499721109249984562523786841697964086001774378227231999532396738772796877006598855490775561146509235956484871265526464248264994664222517530170134759388700101054916389383725697401485738590291806545692548085687091897123711965107974926832309359900403455706260150398674912826460777871080502238229876185017111505314315425647100777283107203771963717482531669438315002119249132133096198194127620594925352996340750756730340546419277558115291062925702940691189427702043598417297381189579591416436158149524971784412146461869673337190872698854616468741991145794079922162593650786938646586543147111942081223746404653203576876831604180341592879082044686527851180677875927261777917674666962070760115107558640405578017938113626771425952541898445728710267223192495656357564639980244480062191151548675629797345511686282195992171218188453821648973461255803170756611233003017037894352778802639355716242099127946486897138956308809009830847269769798011447869242326255879235980396589698544889887234625059580921969934930162490654367117674315914064589783325075258901170608463337977610814028706341335993647598365486268053404231596740071231160115269709392046664567742364953586212885678329924122476062631974124062728069856913215640148036160918880276514849887545332985848919499668614239365259104079367347704884930660858434568914171788967191092920181093213330994041593286830114951068301181830746589838490212730459524490039000471559227103602690257426584201936337202768499797913429071705044622956761006263132391866671493686918459065726567640672285972900004625742514879738078909050287336963213967733285305998123679798668177829711373665580925504093604331165884869559882532433070400435108274013536568374165560569592790066626190002921979607521414702868576390898687236239377769040054385405152527211235940140740709161462287392602975474392298626808573767932849270460288591486650997469781607794708790624488515377984090008256658323740979209211605197943361195835010018833612785973419754977055893609279853866697303193845511536321655767863651145959625584528651371622581419909965613246026847319118735172210709084453843028291240222965869095375420913310252503490926775025590530263478953193955322197087727472261674307715257618885910765381887537461743669654995623671459101684895500892413190048146603766814407757561251060016204741638885968728969564971838099904559230334483707053154011714476988355760140106067628535659485733220088328823903812966088523558643347233865117024174563394458653443395007119853013016082258599567384529621371651064836540978704014217456655088948056217243171442077866414120764098280114536691658816156151295249700779155777899622602996938821175857423740772277849844452969667250418569740700724709496027322567323295034829946268848117233775891227174925119919111800182304618195708760333171583230334112277757604494095731036661448218269305080938402186461512545458363037631320974324821036125390971401345912492268230513916488395216197521040858361056241287881835554098427044069732624908282595392460416809663698607907398022077909537254278030684663681444165983822998784161280413405401007795800630523283211662669827748773965144868915165290718464922520931246510757913212062876613231924894310676281711328177211814888596158589353174823537929361872907086048943793151634544297079400203875283632978561927038729522528553980515333224115827890093556256810297697065752006925815288728365248569356652109659384724888716552315227877854627472955967278396066497177931952990445497969473037598858918615778307964097097354431573317345435132072386155572163233780100009477825921485226329078874507119107532577022074531095787227894222862219693858004795587999671952816288863248315644008248815922276678899689505741355191754380516292182749203811848453545275606822585646662708175596484187001292078496982058504788271087169876839410896398134636179046851669441645261977487877004457190001615461853422287329354643848187148670539960939607246398913749360385201654010158882383474467319234680275239658554228608826658996140220632354633847231151884328630961066515050535167615729477481916099194289251632025061032672035313639801145618317038543380711792863463340260232119826919859555828501716102497677962335966832442229842268767635742458011004042710083790094483521683517388636303190905183732817978748045438473368104184267798199931274166724214014542547848857305055103785059827432962712063257317794002789934909827443269028379993321066713422147356030865352469931256518812070488552113791851475577521308258177299701272194806124263872147286549657631285862835266229348629039519521135191926534665076513455142974119058210102094471935452814755393712496947356501959795879976968744992560617713837463615461524527703893757546598287640771963624383645367451709728430156307668585827708292771263590248471753586872485760059889414828205648462370689485479993806607864749145472272971770058964088548863710549416488100924278004695502107266288960770860226597533336668076303054695694780267137213187576761718138007451027770233221772820003276343610632589689722556481773971276914909735052828780461828388102208508547210995138275174123477024159343882190056363106468991492538475429793266521615496791125304953249236352820545743217202608710495136280539608548804142240481367996287314507337833156437350537763962651163110726470112831110004036880478161130742128216652979668728749659228987818237210175757888747542670733675284371588332366186468677784082819661809817089961025572695733468331017876466868281738985886457004130771920391358765626817786291419422899261885110267068615056172642260715333612925543528382437966260055364534150485777491329420091073306717811744280186956731943783187952547338804372392033640230988501373176641408671911198119961545848660512113842919997507580209681137842300080361609044581738954208923815562771445714720996119688459853282643500932024493627459793667432655120087870101502298685799161035369378879544557463571948663475363837446889010641815446939387393868180314237110724077477288750316329934113131576128326313208401250857945848305018710652731927941341677457616183706207754059513864889374000760561216578050312910990954490619321400042005090936841201380194589170059702040941622487976659155595250734911445325503066978730964756998395581429996294415261467832445250092597157851809574342188835133495924661420434959610974492103211035330658031857432524631836780835378250249100450268782326923636061420292583552694995385477605118149555488243327811145043460993536285070230917057689548561578289266550505229851981488615915989610316463611724406838741695938993307989449893128404589314155450607625186106432065443009826228600095675795930671832301352173846646941444779450731111418923696633858000912151430431352236198276454201589851661484878577646244081778825935333313429581325530942673727042977036991670922255010823568465892389174903262313066544013260554394809895675882813519542515113024608572307644511284171797602962117762778181926393052937463770108158928734046201485526743623104771726716271469579019705447939883026006116415901780775127190641725017574401737027873227285987874802691773716914676369594495939232788616836462930102374658300749528048885335553718475606505395348991440138738705999570288215221605951173374719113445187758728921365719271583953578603087833120787974711993546676755723236079522779430838148707135204876452047863249025907247350742162282251309513770696279598742667418314942970465685913091913652729314746921090802621741029008346214838622377394631328719942125761156310507412068875132415397812077465453073743146703926189473159881025849562013608523387071873783162474814974534528599217296645765838502244771446598699149104659957261927288921693618430001807027991411899134580677153328371685913324410895665244110384440720019427442429460669625121305764582300390521641443188854334545393458816948040655807902481949420758446326668511549581847212495835344362301457549446932129888247701470762587514629858475847670380538714567811020768285541361117189460923934974569240121669660347812782546790779139343972254992624791039558311087576326965003376669786157793568150347852138171229208068211801174614340503157895095403980038626209594716078405680322716338067097299906037278663268741363219386070554563302860092614636084166069679760533528571528831410283753047358603247851292967334770328630479766457386693719395044645006537440686639670956477407447203341909913218523978469541045321532703347173967622698320727416102693957316397296607105045184121295245263196046763117733207841481619419115970261869734064324975385684135497021015521334022142241548285937501647297259581999178046832108960858614706506795877263683410979943643805720339683545475275591902039716244330533309283874951370165748826261528900959603351334223176241567059425393871085409579988187329301104096159001501741701717295376764391832872672168421484790060901177609699445414072708227861327410086301247657779604076859315184311684384044347457498883899913735210188166859168916385290182835201258306149964777134926216661211721006727854920909669467950446497105643089371712847113254642591286007554867290515268077358194724780532784263339070727233216228987791308247518081894457308660047396857339189134386087721115030481969433113676190908835907514193231791684487136635171624853523271549778457157453556332655435942659140897367138764169443541160042127716372437079757356641145167399336794354084740914204509825253989283495926473236319540940338772469449437743693595388827643605988105263986028971566444001482130815658517808263088557663220738421099439344812713480551140701504421586277335891966258229251237662397776599767324615932010879594930036907927940084336038503795149447584531023495493246491866005700509439830273213939734178986182445388979487493714981038512425840350146270440830515196048273681198275273909628156820156261927248007910099809873476776626689858424529332575964076550279511693922911477144538326688415445872002742909589816065962731444287893261591063164907343954592592146350431281448811173802882847413689866902134504209208983691142257854730218183258968918260209519183498594291723352634369074568742783028526150832184123687135561232915477039646765955001230635887777237976432621982150010217097913888750714384906531937312525467433961276053723603274356401116449006288659772088289665366842884662831491982467495689331415614096093915419040750367018186958380418473507850453987181138147202845633241299359104408690227801623758186746990316591720980334843431097687753478783784686410554950024787479169251435292209585993536483262575925985441625859930448853684186827161771145456141894629902101767036305692087596231312254863187721053762716803323153765998932260270384782042020505503224033522377822639273130290233010545479827076676009535689006761656672340125298059996693538322880792455431521887289253589897057040916220664019033102022756330047941244592911202190218947401588597011228108811045350528084878622727693357436993304338022801581050361613777297642570869300779334496559697654592958560982861663434892144460487769664756224040082886647375456713566355595877780862916554996768423579615698078397663251490770606157067838072910139142748365812676549638845502608992213784623480159707321409852443569067723114947583071943735688689026837145856850263273347680829293368533894098200453357666516924049901105634935176677658385421711888912702295964469644437853686420999774442887084527931601697722036634295949286684614700738980378031300506366294534607014483826375311886560205970459507554067972549196352833910084299429893045417340001462811785130914450681061971061763661765843722805999557855924792909525554363351057265570418066835239071556014575421245127624099394579700734078973947010870616371136652031052598982849983700811948189407745246205311094099150115389533769279269585841526119772499725975678844594747271215774409924421375454419482202692937974843564874887285123359840102251065512010096247496331169631798980034281938098519324517966709339839503324126321898014444792742023804533415220161406637510294564371318172233522334158427249710506356245248975644722430179282819226848657537209115216923749154645034100619328639576756199546846694402060424889768915734177526955515815588835704824881161758171256044878786835897191873300653047819658517610192767086782979002941522552266209175140785662936795469644446552634511503340569689463835939931070646240343066287320596145897146172942998506851014438686148273066470572662143413510095002491583168180269882443411296315247425021253021079203571107645802536118839985646564071247168344131843056531871514982692571817995070971764713381544009345140479515724771421303304468705121429700849698657383508840893169997755829569242113952592459247190097115339842406497479175304959157580440759234747143512669349927661363753144032149327980001464236319223331856239028638739635114550446508541163081231094427845018123892413048882984383824027455318841534247384798007681188005479784482795141926958728796481125015984933691439346663841166641034083247392547115560224928216864810388377121432954911577642243557516886713040432942011316358538959719561758569771216435192505337656157603655637993471047898828825588384387375939527947559702272937873278306169886990975783486333737981998376456480104351898277143098673725980878283361923056574228360123720784537014141472956822067390663101166856029270855694996980782111905240056521376101996645740527013971240305729549223362836698888219623250921008372781639723921175951765761061094859632547738010794665865827932188498293421096348674915794841696430740187385618259076960984018824217863708688397447482981079462736811970672998509960870869000162904790912537225942675976100644565272892859140708986737572114247346139979976234485903904625880897851740505974656964643826265220632579103577707893688777770878489477819763158693914912022888078917165542196826323701212950726979062763233323273780150409620303582923953346590254555726699716608286395901879941142403180829058977010946097816851108016797686450073338823672747561853121525886732274168499498362620633256760010321475317194362699703656406736295235175010800375964738952772116318482854614748196281518491188840965880830360001931936313996589585846244908027598429039282192556287969826639607113413403183287020222419765643171888284474158943068565802408497637517027747784512478536859737872989292871705238031825582637904196245164828524239498073394340052427962070181956530053550706703551120901833177215835330774732552035867766277588228524574260620194331592173759872436840975496527998095837656124529212626756968090666446877144816663142233062618606360155137021010039355891110062478447087947870633075911785723010713651614850012230337695709179588656617670431811170540179370764983259229124989627034220579215520904292617902041360696486660307178165644929386871282242655415428842102196656519614620693758717041986185784355759744873925515198034766496986369190519734942745690129415932385060423595489381720131916946229919208646865391873621160148197039052716941408799180620677159906645904694306484640791655428568033933206970072603034188868540480588926172098272938474031221390517180652610952649537141168666082919684998045011289819628447296049803748083230465317404301766851727226003008201318866009336602092755570991979471219216206541920904163745208288685220267043931828510676765562930575511928527069318460163681722762243513214218539996469374754220173414822839728689545731537139877920445236345208679983297555828851668582357970481041424053631421122180076601125427426353758175257198368745603431266301413222379077993365317396452401695817147034716168686789870095253662710517078349476774047740320609454500944438335085845519148359532825058255872812011360474547750301353269420536793533678651705604871997778959121134742575020991574315998663018916798083931054737306920350237726320689142590442834263520565524238781162100903025915959860970465284111516364743189752819149443266911291439281320031932402541118510769790287712474222423625249706373269214398665480364748728038704202160198800113581990301446886905183340428527598620854811227878681359036701641933407479518583006441891485267418976946711292809338484378320540717028408559118012740131317187282485583883102196921328659605935651942927132784800172253716895763151379735378929307475383203161960781456339962757043985625013141489070320248294858144825843050885084790112477014534585666767672945559691792624198148813709842996296707203663699196544210527358344555314428374266201617441513794950506057550219838765788191642187728147220121789737915446411455328238509233185608309378921047754823560906332352204089676984209902754219823623624832204842954717556655110632687104188271467487196968103413796914936825287156435395408730447184369596322102939231940655681561784536521127064657657476801538506647655390704657649500403996382118087575439183413666681793991536379592634070109466649077489415659551592023674086697536562392340973622047907696814139038459626023701708205936192719884948118728071484529393614159483869179636270472059581163419898093862479442652090835754662228468337055206418415969110358472795861301332788249092152107139492953288303532607178308597800306189032742622121003126857485361159099399960402733035458780647832171778424122034113316546740699026857034686531173842203204130959317500609829791833182064704711895606901286210243018910503465261433010791263344298913491079309929579588361273007704458621125374395509773096457644561910689004116732862025414262339664492243643500759139387442531016902807366227183349900843366506905624733864811596624915495621463037591881626768427920357723672882675651820864333149385256207306700481159267498046868594241256785141207209135502220989136761111346076469907253490588662984782148566012561212674850769873725377457105866944711296757468140907126060340165125387512290720801976567224031036252983691661441389108562011177194476513813259685407424370966087387675875352595821858229551790361911226451575306347807658812080224140814317085701646579818852876979988476241355715840465086887044312072317979194102189610490013251374953738202223175052641632028714182063151679959683417682863646995613576755743788546744862996798438241263522316713224698797530292440884721118937004302799793524188091766895842193669319841126852493834737654125672872578449053096123893746373994364669821949938412006988889957461620686483291418546985917608167103531360427706199232610302191061718369673163553521788326364148147921111400456577761353197850574118212311209100111889475515849278259805801363601144891633039394463540908817058237077976662537107271889503627146047298458824693107358086346270999124377261382718733737142760074460077626132128684471624872482340431637927745976738012765007643436091928786081110517661281266958215097853043940126233253146414337995439418559880322551968580201724775776021343225453118765112948979122545476040761094078888141700703972350920488283636807886305872072039116060086705601377379004730557616891191433052085646584637560449162420216320283094034835896895548059878714297291445655243985309158464188987645984939818505302546777358600002470785889080032954000514975171492798765918284251818234390975597869813502734202905948493219578612061035778316568198674167087571364320458819753411583907740881957333512334378862035320805365230429896913544220055459423912901399370510897855417457462628336278553732636191563044388223798683289486769296154713658349287595585121956349780310927038286234347297143395482110754223675501514103510131535005099574988733445299979783930812417586935054269113767520351357460152331959595430328524858163934563927056139652529300896293188313100902195120152414128083813087355792353346644212616074891534506000333096941541016251284016324514267754558934107532375709376318460085618297650634808386029998389039559063117751132318923263613047164305089024754646101420508414685280337454332375832160837706334813869769444582779772633308462834160654372778983565881792505487247333422832113777103389331264983030450254745009385027343173799753736379009640642980219493746153913141680666458768761863230185339849264184746737664757822137423542376914707469761032729269012575677961772082896589023025152975752138597456211421765713897625286950595734842511014945950095115174935268679214323867245751142004606808710352612039311111177304655705366815817685068580917867677230760168221379012980774846053370365359307681002625283991612133623151207517233819314647782419924719572290174564334942853623017554846095932313622334955117905119912992288764003628906206672515921730804813578004295657138908189515370816956130294498047127930531890358010308181354405736913444652424064724904883998029969468678885594005833263815968161454267344460010006788755382187717357224091080713355838413539482024733825663411572782027145200980759009455997510217011944958521286549859822428736303492292596045789702695535793014064728232330757923290582186934682084214889637625918933685526783364902344893365956576840201961196121510357930126215957776642463174748607600630940825310844543298950123131208545804824660097160632942454130463507453528912475516693090359400503416658742684441435978233212860940753088273734710549192077799790734440393252134937736083928275969809846540917372335523607138255236133956312328913070690060062243348857568983622564274041379981220572529472799417172701026932683527787662028565424384517961817093154321012960995062787611550843316955362224309134338490214008150577566728266826343189252895581536436147655417309177077952232739838831152868796738082015361022973981005066765542893436170078290061668541603924358688985728874967017217459999254392599153670424945684313473423745239208360543296059677749266006800472771185736203214652298992085234239249274783025822659080484445156782708381627541268076748090997207805685534360501240796372051930437038689285035214100643906215051421575310687648394744984304593908023997116385264055482591211624016616291301248827106992726851848236714390504939238607172452682174268464304843250294814163949840622783568655787059022553635425140889298727903120690279715181257362303687593238753071596722744447739369337796583224117463040916627612980547444235908567934358825093658144378559876076468699546918448215886162637456788141917011481709350253545282443582260140264441138788430595480361872050539909507840427514942596023588917237262172976060614888293994049891509257200037173718405632968077562652978059538629275840542507544134452053362153211785529899185158661865940636059545022106168762547581582265738514641797565323091236630974760512097716951134546208217132958330458725528959435698925637407077882945909333171366851018201846938748108145453145872043331249437442576836526374632770417117970779215338396899251012119626430411160864768902277209151766588073575390974240061747041149958117506622535363237246611164906959530182052359598696016459598908616276236293697063172984392895077485328322390891509052676063795538689893039204401304003673254643437985115785549818440356810381526245696484375452773166644338235862784566857893612513254117578177109887793942315627095185672015596047566441784205668077371895901003270452407318006796063114987923533348634756309720138825011887970736591975709063736061638324237973221481030679182234114303211458736438602106940699049824316913931336390513269712147913970449799700388781220208102203487221690116824432529810154526878033473726374544880568569700931663426415091965233667507552427545595951936516898670133916060860814488202017786396241384733570072309341631252630769417295903779766943425913023454193066591690556049189316741686226684578622488001923339404670483173436306240194608420415038239976082208674928899898376481253808852125935429303677272750337512146132817299237034179114568861426798202509997911950232008362133661026783070187080212039053861230002444408983939291795650423341330943832881100706547645122102092179386535889168332668552218529557736120645677998879439852986259357856388105588897159274444113796473941062265943964274674549075426686816893427347124928634759829743772090470432245180377267811297083211005213457824720498212281888083328205906621989570155978320928650081585284295082520030337813016276758635046682113482010441395209998637876683993288402329245780596125761404951296615370504470634957370375324612349284091758844116853811063541151250744792766899539458873692161131413082336438284852200799916054173850709573212665124623782895060294002210886309749445360998831778405528710797438691583841929824975563423227361518614990967368589470774495524051487742275379266156649653023422111903223945264126378919322487490736693814627283373535994248493433001722252201002399274690193469639424306704326021334228537092854148710418589188413240260736847643607993493323631427172450831665177400386589518287242118900607765822638470024981534900940080213382136202934369075184305976450420188399619507748502854205997563393832553591499752341433815675738410317843537896651098672030246501735526944970527499566640742512849319184171631791056786131410452103698058380007400364149233997667004139104607494889941169577901269875988276843055451151690082074235137934843895176361852048377736267039520942854507152312169890727624374817330322879994673212287195852693211261659201179355898037954412159995351148127503744755246076697124402468990982191526675425750660814710036248099822661998582868476472218546516329889217824972233245658879612532679340513922090786194670102537201223125498951548545398846844353520702430489997253267730725853361696892723024658296906973378041176709599073608439995638338566028864842336356725169836607265852987467083529294427973011210193062214043188033965145025670261299543586765257505206454531297273026837980026929031615855700377203693041341420479352162757884750641949095327367162476811583330902024670672581122044758630845205463958956696325728500525922210255843520692579321456351685856494819165392154423675794491317090768189537951111471870329973446956615423896903986024162653952161090012560180080207888304378270854405386494797408841421351451823484083050271801862899635544903184424342865594335024335498302910245696724266649397117484549770260233262460803144521502920235958499041587144803714189456371243525462480267648657067362706915691700032561266653564418340136156280130588222538459129989040646734610726730068165643044782269583170603220546340371141909217919405570102773305320923106929830013506869050579065361540683567568100406665522212209572351687418881685689732776407442580330181759909874212880441485143448845911159468213676061763707007261763623528639565771386966778138408488214467825784714410733149644938522782019664929697010504683427500421037540521384626189826948608930721640448242943768248143875746982674416601420891958103491563075519235098082213277004155970392509791177835119933226564973014072245876973110630563203222453037307041179698079960495777281792890996611095444819852776619550669162181681403219529664639277241392818027010558309856402315374356055021918773619593030633843379156034711108651365319121742074817625364035210649331256089180006081341872391536576730579526908680370792443421853090053215859730841709532073648416447694355346741421845700798067282965623725371736481852907515761687403157590946881979736742257167166876472478136300898336839641986976839001807129107206042786853286304274753583384431948853411460954985311932499253186004767254440185288614917019163545266807091868621388656230035070694011517605705884387814821347305471642836321429916809789536725852340998355649973049749618829801983878177272130696387872077720752982574196269000840280755132679353485784268866017503553337030586453128851871805767501437386107996884585844705479643881227568739845366427104594669746591190588991774882678020810940503582352436955834686871975101331316873900132038964991666374994009116608559437289954532517497336259786015123679908205326309035570050925502556007201833379804020276025456584242802322883487588226830145105188616945434399516882930899880138478245039001255052580634023652591971644972105695269427680241667134616122037096905393385835330295060007954315823450017945655694985839819200655116707694668169219752535645044813197827710812889210173765780084629063969934305874780837798707738894317886525818067265279203612463527037432187837274943514853962958703238290216218659202609022859495233273721258346435143076956558953084862792503214861319650391277938830377762617923639145026490667530228134229974271759895694945280541501489017816443807236334732437344237490029286619607730490372881597130991120134832257891824784071836688584599635011821410023367912562300567851442360210533593583779503053037354178906675450924736325975989186002532086910832442109336694245691658316073757845474399164691440449028338101500095158823702154479632135572068413701089454647780490953101900054922838441059497817944133068336915864153736943221951475634510191877482748644350300235530097799131782859980638198240267211634917591731719194459592325789640279686559948162902181783615105015735993138067524509296680543645897588297141217027239365476479514765343971575001443053757153663240813568446070822740419770598709067935842818563516655126552898539768222522582754373906885915637021795472222797926557086258904151636204957538084067616397735761274349420787560764901377465180929918823137910855538970598160318350117642073573249976983220623908215067486909524540042937472960510021822458394921746329171039286002211590372306987649127886010804224851962539851932957313850596908638788207767444216635827351900752621928330427857233161487234089227259839551075894145799617483502391213083054476187464407670419663990108598671323085967153311893871686101473793916753796772610091491685813043549502436454059958181669568721207463309272854950121295884981521744098078778243272535709678009696391745811221271707260922651089303040862680103354792072917714502960591185504039556894881461772508598210064013861513672595052886712190475106716887659623956326517079703896891882875043876162874120027736796764797462979576705586216526640359034892105363220439094490330457442741356612271259048827425106645291041700573488330328285200093972233145842939120548585143132924439208474975590839677416007341932398230004202182163199605429595468686558454333411016878047377653545196880258459241995730538580215769558487063877542093900987624030357308341956763606415456159600055349221360261227258775622766160665668732638475755322796291809418878977633044029792188253376826499568242438843483413874076444205908129313470049597601181166779665407231074889400243878710689592174284246142933951936648394781869917519269976360573570325066904764644804986953143626700082334405086303256013184591285484316656192565381014900265447652960302213347373915197698367024564859286314860470344113255278281807532248393075977443754606056021203908094101266216988242666305507591058937194643732651058086494249299279560695818148956876276450978266159550362155490127849728523208261633250314681528228959638805522632551548400820811049392224576303652329647262999466133426470478538103768212643695393175619626299518880116835261870605049924806067357496244765057554492956816553721982962831958998455386310526874718705953965301281500848381033106951077524164413785152728584852454749594406541786506544674943461942491128619550621774300886510487652085003200402605659573706409089684432170168214246721669282635102233796307972193577758394856405827317018653185106193615132536113286274700236890889686215820356219348295915112184772639322872315546314004091292167437108859872658319255586253609101415271901036038837892813377436219181723366199840192273218466459654572764461150676328039966925702533200191240665632308469039804787040576910915107563233116222460379305380068321735523237858566265048632483996548854735330511617026894551105393094822322981620577741949165554284249994068592491144285724427230125830810138331533330900202388847922852897662623348153855916113519221926145840327006842098760025241536836912609352033127509964921103003365979126417188169076356919867420629919971141473812795548839369870886324658240691913925044110399305490290318719598053024450765950001282287688562249841751247273633847385242477754212045141742653915445867878575639967911354483494644096533265104494185864415812028463123167377757156558540165465240788319649259643638765903282669353306033434617955944049792432677291236444958621357873797626641656043620662608718006357185811746285929546833200025286696988466250827828958568097476750781144263425711851120907479236527415803256966436648815845814803010239599409074629334962983604081643257737391059702170722380163359561978235867003368715381126951511505288567383395871511859509285082907132473300657032486595552632976154445446785144807028524027030918243439118341186466074145974970402191043322580630448146699337950242965990624237247869564569819315098056656206009220027528451236357015815483430896609921761878841344039683385619824157706886608774293118190042247275295039502909506502229641919854695153429293796514963826936030599819232140740687877820049360910189304892116833676670755020950320774603975589304696519002737287077762150778991929202304583907009045986667598538960553277715633950647459201126920437821190652632072361711837548753950355721921082644904041250321921246952177946777407561528889096255818229066144199329599640052209695726804451111236102030804521394698115531045374541332986290990171926101790742541414278454375525539390043470898965279650981661282890036228439078359809227110627345186234132082234785174901588733808472676743098158093688222442292234205819214612634967151662733231697449693212183428279403056696065301272612271517032473576632050943538761972211196725502871390933765340219610794134335745022016160841536434187555516913029299222998389516984019466880198398513519964126146273485813480815906202155142001506733868402392155192509994245582421640317960616861114952673592052003822693295369175106714376644474673526204449259145030038462312783521313636802501725996170467510090399895863726372758871200232585646101280659442435694635971442178334037161095354631285258198257253701051338911162805180659579530511330221468985043723531155389570923066184693994442517444299408742864390744218332944198753783270611976493162324508144085058198006114204622321939654365061505502562604825150413326200766444117827282142722614370487226092233160688267809674016719080040921897567807528497671384993939054469292568021531819571440539856966308471650391466623785651963885328905291696036704065842192565901600966107674222042525796748078131145308491475923071409844489863527535116276211898402576767926710796475158372232844226495286746118958633027707587985890557673117145891371083329340404779641191765154435310365080613803330056529436767933658254918998153474534434410308672133845396202314082621313040780816620122229549177916524212627844649726850013239193565597117915406045785463618213249894808232678504196836648247503448598240856010495679553894667029042034288840474536244893608863057066343313467644919694482132952927964058588790165187243145337817773019116801833832286680138240667281540000841579944273578099729188068094906658462362159376591825424050676512132133614865459872831122045940951471695506995423277247848557504001903935880394966765118342243445900817866832648076700861171975457047806250150704556640739651231933819690534646209457925363211857174051126878148808529609330856499293646848758629116345285902274986325595272468082531319315482298880382154225072964298899436271768438890086604669483073381877622754201156978959786055054904408075879519656386908924332300713774589663193035398677684465433975714618672795730614794660979231856224904901091776108749742319545014320653761937628554615098104347755074796312891604719949073614033026937942306419486893650873341674922896060534597783887899480082961607587659357849224867911901760618845517900154013894286810891564352568779226642904615232632060702348105471756633050320623870047478757002407755524975937088958466564093685431606657639704117835331062417448528934963694223167276410238588009148947992842901330145474545483491527055695457759887096392675744329450620573574133387447261613341958711388153754582121386439050463397022084173509275658053013040529719284807776210626040168131162148674233165308589550380901241618352056827822931318021622403889494849823845885483318649604103129473414519852674977131047517606992889253227416367280830466237730214463776529593300670732640729927312024785776448057492879024028794520022315596527955363411613782693591436041879495904238507786567323743260263772396274106404477489733030102973404500284316804390242924781067919084242037585961400836193221119598992638844216144180824809266442909907126779914861216184125822985126557506721751991996089459466634956376775385453425888198632505097526000945302615728852944065124522040916333365492812717524804236656350951777808264810212069537633353248632841653413899658896367873387435928959050355600764507210347495230216541087982120618301712074594696711909482940253635627923613950531292622501916946450531017463579638026810452865152008979737730637624343560234882579432670145052217893574064896642425901007562106027274600905141514080054242053549107384985522957937443742015585752818906160246684529437175078294759954901856349270649103187373225636323285034285673127971397649864906613850643309716965640523082044869329530686098082421261366270191132929268151753817689742298000633029020272935129575225796353471022530578335289208240792160620717708375729985010630695092550880330828033210253533112747285631794624437127012819673950257974963277058624449690529214321941173806118436451745639610672017611487060480502368003629518819171152962778822553183014288096552525208958575716486961986866182673919804590250433387122634164552522356585758090153919887300188816850566451045316604010366639108489246101116811939988737499111271765254564719660316179246305810029907846818497191468437059641114261010136091810920647966085811878880934456680849203728011327745354008553542458874055217401339822546654935881874868862182979570841308427620371033249085622873460705768096416093672809022505151024406788912224769089990415928231168672832604070633138834968266943411547932994435206609850483896507615829908004708801792153703298631845089718242872904583433885820726576388919167744163254755081495547172093074777636025101734433486022849178650316417429364128566369592368713461503652354853460402906965787533740410875334002490833352514295606612549342122133880493927350321183473060632706905836242577697650091370060157630504978032475490671357086731557985728339572864364046167055695606305948289936481471156202727698518506679109789854979948426303068709500238356660000353749567990289960461940812826780150105812183408604512855020686939605677583700198079323935306420592894556732407196476875960932097583125400413195335411845350538236388059879057433657842401520548198357355998858430664272656434334796748817337598716321947203825831782695280314499121044197560758188755297587231014184127902511552653547164207502576608865514602412646131111969205707459539659882139610944955272672937706565288538947932891257270553168786814523520364438683706967846190855010048318624626713402592904459511846105441803650980309063725794707150859911203348922079866249056233232972323795852832826682686476576892809037445860219280650813279213849883162319979949509762526660803271568513866575053928975140075125399894525707880749480532679644503945800333042607518442219057514600620872922852508446764351180727666567846787140541810570973167530477498903834631464736079997548156884201465205863298391395368379033986846486197793556546529598528747968743111513218435361700361972348044079142167718972896931926138553861006283087890990954568509247007080504869125270219584068486018178894200798025705385622410465607704309200869519072327902083777517516211587389004353249676963004377690024487569036585237058006560400443375927167099585271719345001484216486492536976615681255771468933841541839480558818144990107667607748850416663678790264648318014157201443643034715540136433180913527510026332494348244032799092040162581364920176154196142660250645069549953537220863250596233336141788562869681178315821663523673803725799372202830107870925694351677942674460505359447079881518194955878117740880088508468596122985863557646616752637208775909718633411866841401043154863109902404992434417069289426965927889079267335167362181921308197731553133818983113410166163432667904910795154820303935072451359226846743635851255805855946683155701602873228337385269652777488790826889070422245161815122420171523838966825223369923569198241028976163704843063575802817392288120558115328977008151836758778403433662872187505689461753437519322634740450886738318620981139479592298198434281485154890674910400195947679788964652255067919252449104592272754319681260311061818241530645084699279492283050336197147141819730754218722048286316405525352101509084017741561014614456052654110278885316675292626760223128653463780896962560270045850259101485151956421013539244692660046146245232224818075813241886885069844484517932318181961110240112993414486615725698890483348753246491823051405118074842181499661906676127472234301413201678224372463551122527876852098029613659349491454506532996199671530512867388327084417983576897709910727651470344448542464650653737578746092913531054487605328409621675363929860815324340056749384525769939826205871843048064170940501596658943299402522307999091449939194583395250070597889493625843803404370271228245685418775998731412091715947970123563371247925681335881387691420662189215337632070418117493335386798962139480719383317401403796620027726422389019762358257034224446810303831581794637548685440613077545211650703104824203984736100127645003981439824852453079120268841097974818176738253191281036201099794327989315249799503555452313195012074464135180621591139163297650061626139293328686063158469377323284192465736608442684188302326492766779533707136952335870504544623661002599801810237884835721095824975311567627085666216261837180548424967725138191664518030077138480799173142001732872078901147395508031119833583419681324632606560119011643549050453030384598821356498333710138849960860873033811466196509980505228488409536034618118093433634461193666503269536460867674635384652462790364123419010643530834393916841651734653250974939075818857511226121319557113389082097677010213352768657005145853115115237563298994471850574942789719188416703674971317372467222720551566591361615544419440261591658860572501210133800495831125409049172061306681295421993311484756388203965902285920858749211052098009302852547853254375612820956949791261879222316719189673248269086171004163983477510273498059984932671978968264281079040353485952027908094248011561171324888097472177512934942049799910543438172061697599135305931039493560940608993154488248515024161892680183251690333577714704245232828930514044018712133108725842534498606084257236546753717800323392360268336883113055968927656091382799039573214054514204824832616755953287164465912569746306774161866057409224729334964554634114606158068532384345360446541328423289643362115209845312553964604636583099984479357288509273105176643862629548234446433889194043451120811688987398917739872517989151866439799376414259249493931650459064879061449793839918273868590718446495557428506438620746556232265864264490183227348463125309893650120978863748263259895737309346914027635210358401176377089727150294934889327013176925236120891977745595009714971536649314294245307460714019037026899343991561319985163056984896163691399852516262604453527736759232219406737676050846264938040715097568925166639440434462784818922159270304015940462201636361827068916630547388726260345024510433952461687396119779994687188171791172651436101981257151479605089123002954021413798809222320393553594434131194081629992161782975003778395100507148960815103902603064126323464595760079615455086579141566207299337217657903467659426074714824497825547648367231938579439447855275438558556790478598345614567865392504049267682727241500335849042049886528227404548768869978011186190999799372976758652558662544489059285029836516896200287193679126072133751793863224098344493326273053065939257260244473918369132201120076022334304382515710776890628354289755727331265220960385811957884149031092777438313827100027156253557093519735702570911688917693135072359709021399619447288193001334886912231422646678234619134132824116068279079355148558688480393699964297951087272138201958799052577509231090778865302344295439656242924968573404918613673959658424533063821463624638064239613330036407352847533014027569293685129748953743130152739557655145885841866251792585396256307227093181423636773694951315258906382933792412892522562914720823601990844491606255075572980280602772454682187219104172407154136303603486909108130894704468507460824498005746154123928671319608172368845921217674430303165013905502678556112047404675302791248449009440157236248613368798040739133867589484138655725754606144696754866811777728811929271690986160534736326370141235101185528533908006629442199778029795432860427174901496083685216583493475142445334525407915305692155966762258440047257887900396873574871604018465099702731528009250757619937344648037106707788468741311662506656260295948490318687118596747732518101163070276463361026410531992524493062075602701556788110282442429662740163039081622333119437444571264454094113439752369449618648426280536045737027281542582520827712350527917275668348102688383885604332899972068102174234372219286159029871654326178424765509285723447469519984215246659072923018076676136006003225581349297816678867496127092138468286619342118212271235761106760337076585862174371159265342334989289077248474711523977839134783550221184425619909686403543460108205531613128027536739549328886044778325800981377654193165666347469027866697272258902876678502739435186807742101482679943580194684478512252560750136113889613118985870718275744790636684901541654734675012138647284952129449455077861544874571358865331536065730874602839956210136732686998013721183739173771064841481922152938684803315793716764646221113262171343346964042040908112741480449155520449426462749910653156950197890151431039124134498213431539574718439555201209064070989591605789394543911267112516528523599693381302304648263155100522303981484181716797465069559669989135948689274333953368418371299809367046412762907438699062416145065047738774813195400443318532636511381037054630244518959156950208972368695246361645478830773797297284978116756265243026790370648773458437344543880776429551602054092701050649277993144639559222349775372645975556947657190456709236672252475251236752817612475169330886905595888684853560127101295018231868890553293575879853176173873167089247923629648064556093482712258180900601197928116257337081498479883343672640439308042186342810817429316717823539964186566225043133938844125176284587231007928831597052914016474573514254942392394361670820565981855650960580440451279430901702473494514085015801107915092102193828675656287189700170988135273314149957785102757773590062810461369100424948986545306947650447877925638109119898213070280811244598646321486994690265836673251061184843795586340194403394156204417727985491506863138907763974640974068812275786276497382800377696859746058599450268454821262271627914904130263167678274270075882754286522309844170131023097811671358175304225280982155260355934230743021485959008088118853297012764466798235440127977405556203679737647373803223707234826408893659882907086935794070637067871983760305099291507088701120152626526498449794363969255300884039849432490146570093915274487792210220448091534672090922935292072776364957504068844449176628711306406044948322535838739182364444109406309618113195117255655226590055731520123831789644310819766478626778000217442576693667250627718313838966105322423327631028259565315955729532865547636727285817215476006936281830722277313294863883613559283623586942098400929414221642706929022788090728974775965236712546436858512443646552166627211065567370305322042045364769430197294116372421700793668081035579695020442280602143375746787777258736386140765273364399103985734015292648194875129272222881084663977644857450181794570256001061605502900249991884445544782172212678844661594489974157298920321256144824405197022650220000963758217359106603058670631119361327538127286344307667652177863570512023886979863893896564722984842484408844543020985884149901707564844433022482841999936871110095925422097624497820924988218946511972925660703033520488798465804873934562534053290406260594793818506793590017180092420668567001865747316417918648614748690442169527575041029779061274505767006417897332490477620685315870910186741122251859473838216625248218054763043364811594946443249113854228591806163182807279659906724074369276095681883588153597485129245522227357649598460368303678959507022220995495311466718530309110912072683719430773385653892361414141087664818006027051652107797883912375063511302265827918433171594833186407620654764147203154072121370634053442011196400159752871839881653978386858053881704909725468590234886439981482125742320872766963002168056129478625718061297683619204520361333374065763417832937863061717925333912873757266173705132083848835313645300529439826159686887360777403789736097464063877307126780310671258316008011420240029425402024342594922242357977272837343914548580011462779062372716038939893781887961487245971862278965933700214295577010049790992508560051406849473422840185981758130630198394906118158131963767941505574715550470855276590539713549994042309721247447828917450124972751732108396986895687050847284534456876760351572061122438543121023877460127189140693203498193558068552647601264183440884336742737918651616963881758755923216873624535359718080878811503103873730118629821741375115419711871333625680245691046272849819118961865592297589174686665061360604346841224285853854617545830356686963532263534330714241079322649655342841935680076021732707911146726493563620668138479405654856008199040203834085715979380896945573521379474897230361032978900320080594314113386354621704424407933034263922844295497650716108807525047153284263394042256691863880734160437675907584361832882411783736411008268067164211647988995169843228804919653097031130659085843476134115666932008767059382204914617997294023705382571014372379070066094706357240660952155446972733584887801363603287484739205380680593369083049794407150992007599328506063559382397355041121224534440483217365724026839266367944589136386929381532968831711118200299614751029692589327281542105635017023649265613049876272082891845743633336339407897772068816773927731187798435391085909799312975304815092765077639408869097020078226992522053969677156712954038876519326223600197961738279555876631704629381611814235396608863651390723606454646888532641118663233712541930551704415663397446066709579696223970583220334997187596300616234759313662482631635882050600332357044680609290559944068869052405347958293785134747305361900472252084622993745360259760980511696877719871451408315862009528431312572751910899359336908626869417810071087467569776951196527190796340254887441709584675181149644454001314788599635794692662447056976797013799612619291249277358328938998697567825010394192508481918636313462584303375882084378938393822702603277668548566459176196573492275125231652934861702378381072280640362622763837299913292604930537551569277494150844040526591627300253702808981808673140437725196508605384616088687652843132311809494622501934519499458409882691397314929151524981135442416362410042330168693009537732670071685380499473127931499106757698555153656104314832209784465590820359336767294268870150600125077461633923669922420968995452287516496003401385439257993413996154093017352378113602161223093136998657936722597681542220148616369961261207989480217718476281693533931432919527291959041133885078632806991840325586373175169074474105043498653758173256004626689559103787477690318967811057137060623402273841856373081520775873115896991206214313473105374340226470344293105139635828768231502601293063010436250642813036902591757610277677928294725388177221460024471941189431359717132599632135168877994061928921723270139296859408092517972826266077136497174919631623673420574884667721405886265163494964589300862752134064474972332012555345900435555394637512339551076563952780058254189174581777484848474227891499626293530589519404161713948946757757818880176841589890783479047541207720939484182770549931780394997585885337129931432110348398394625791069657527024208644271112494468946501778338386113545669720784776924861274997859038256181958156729812404028489261105124325809168616083782107859966970107953355736198461779322764555664411113420220401414476726003375651358549190504329804314954498736781701374061889421969961959714619011553540832069131470289058409901276138966280735450830100027259096905738440328342194448012192423831638975324641159177739763226231428972672443106100008291717415183110968431385689150059210242207550077995168772162964971707156648322689403206912305609430806999571813531105259683576633234001080219418481905014378637501810683651622989725333642475317259587193274651394379864610322154781599947435000439154631829022384046937340598113071452886908237846047786640806458416854064524734274262161511003364731646780777098678909621148844386315039030672424491314774033234762445529194400319762718203656179737539166926973098110526412462186809100122477799980745677592311809566636077241799939398503473426171292416660436543985047525081128592643867720887557082634098261896506523267649997843782464973276248321756827302755922930587197673590399864888073536688779738791876736056975453326467972884914588462750534695023901656556592682223911560133169746658160387250643387166800876687509306275324599867374866393986954111101701168006948543271643182465663610717138924385269202340390906443233124276255777602118393115269005219722189729823541348728810545131880850814667925674658327719582658704119613337720055867729408376300874528944520747980780611647762191555838489690951627355735419563525702505166219067827241251467041293045749149377851665410269816073806810659643531246310289202859887161254225982572024117825889646977795288517420627729955890326143453215236102060497413559058290080967762686584172495391457090922075399178247360791494245555624593129828638757405643785942763252209027309193481082682279237018427147720204375895330770423119882887248051943714714183244770407909458407198017271674470745739988256574597993661436539575397083405362729579347803715532997155241244061590785560111546574571709682866737440594164565164388660769371812388899743461312009529194100212886140157723140949722732301897781049941036097283838287285446120582151431970941924501860315205307258039865386506914543584148531240224392037996040590908273395999907737577171347344030913705503747630113983043819805448727553838979096940357176423765352667268493792894311130016920113460087030994986041335177173659344600398101999435917581346919189614734106687865622314628633931192227025325245394402546861847060279123882372858659601230925469389371195704630921872385061227047715874939694202807962617118219428578624895057955195850533155091291639770656978940685259198061778803988234852711842191539295147798027723127962318970393934483070300640916757879714446557522114864706654042932428060580890434078082148992011509409466201480112722082980519233183866523822139285181349852828535433700555542743293494982147812263985441306049469667871261607314261310604570489294407219073149909423228102884681685990263073285348738323326941864781119922155720249678133924158178262103083981253492837885854634112848287642753501557721495073620946253342847837172230512150137747967977225178963119688687238372132172019320214719730255168006344726910507994476704908270900210269847123994135619361096577633268832164624849536677309723340406482652734457603947391751320081853515344489342699888933210708605331135241412477060845241552499378801977853728760044440676512077547357003306797968284297294538951194175429236705377726911890770290986685553591358987958166855827252257777786910437786844320352432197520510997439053299215466865242270694765283028995124156626015894308394693809625228144738499774815135141087084713231357984001762813934784826631414712036167703514575318089480130092544306977762773945698699767574267900207758553287909128358522250643958323688455699096513377481701517064684946320611627296661799069297398715215046300983677007110426224002904543286156283001976342611612837384846542950815690472963882893783119686031780985286010559796812898675474786216103117374984561013058470497666902477073075202857948513287484508213325982667631073171338630609483226811555043708486583755387728621694228057930858401408336500023134168800815065562429304020097242073315649037610202965203169424189500619287872763939987873828223572141016732312750610590841856779543159793789017382112460907097244714508541089147856276812490009747591653957242978642520410374156674142720897118357962903833742126258384992313146138871177134144759222090096496223995133821635089003077835494760743903671256680871478483396041973709578562037023590737531278066980130733743391094091883029233007498978974732547572392450711441578392394327762616460193039281259612075460618417972375968125308933870065963201667372439691335988904315286769560130160835449023546687632601321455535309716046100902431502671584966266760322339201784391085275206119498058283874040234666454275330117396778910086220090978404549573684892681913931447272914625515841383841631255637882083690532901587253365703359617131894601418348098600575286861216181621162324539887984811006206061273779826916481023623890014386199864380427922834990963773546767775134744298512150806618775742775322568243984452837280185246170447288976976032092613629387169286492074995660166187910564120654330555332502946718840909363846054326738252244969154763000453193572132763652815670097064649613703782735107357594886577336057202412600372998149508581778251993691842124427987634183195522481982096404229897452492279630664525408248801561171660009694939499587399146087308385735358817810868461956382225089081353222283436694368703572326517609275811378597660578923118064946212961489894870515529671313543165018039199584609452918140614485767903573054920709189022878896063326286570564292784462234524243501383534166000840162512480628785742983207407095012309476129582415909552394617058534805755315803899328918143668227062952830856694230370268237092521574904603053175163949052000609264901064582642133674156902546538417587482613984691804268503640436245954499910116661752419251726688544630334785302152453279602635272829216847346804618792971269765976791793230745121638211514166822810445611177549938821175359651504369112020993617977797068749570356521108801917243092846890055173286728750047733285580372658372980132587025714082059845456399451066547623632032554006787460609362118694308432624718688917544528800016487586417946227487225658306714803926597561768217460269244940727857125273161536919352905697372240530994139430890607811930374294163514498594977057657277382290486618032693556174699316908823207555801908695260939021062118642966054380666729198716023020810812328476516612817423263794621932638644004476200899102290482030381373753556837100724723550425722288569755316296239228501555287720203083323664740799422923083080675100207157250074255032239466535066107012707401169687171607293579376209816045499471096517481859832222416904081345828749624262123557652972858286866510304828238465865702301239717821175427738074109958769371409453690195561058256428579651193851033575981530654478897073622266242432213441371004632796350272297212979261427571808759134528211240786088655950801878418671389427839990643488509125277700544123881962655671588109930067342069633652072443655380679707210675185174597083238028926692826165594722718847378594487371174153750463276002774793243717256084571642596865368030666844580440997189763075449897592599214841855914164917147938768777814448846174592206606841667957756256210986417483749929599762970733181239180579111339499215027952937670996898125420900949389359757735700876897942658831879039317851397848327804988779678573199743609955156992167348819140630398557091871008969007995358729883791996583161608395098010885273003108241641237152560316128021068802544902106323471325373421362212381153315000753348212616751037179311303568112748274188856620177707772532575076247497509747410193183341182447302239064679714370267694064956429472515912340533258226779945185080438561686889832867611199219726538535773239555504760709604089468810183993599174744826567642772088648417881580779752765961590167872095013428644925546276817833217166971620023737261674851870323939406758415290597673162818151174213784587284453738744607521711467810686722180828853648168842262547687029490397764554283466743673267744257086165829617158990967091111729091346627118909449984045158286449843822460199133417704711978862358440531572370019688519588198593260279519236716149448451305133481263250068183205153147211343964287216595773398435119607311301079996560497798475493120097510050185267186015083189030399937203688232143500934955975546540934504386204070095376571761597713643492380281522696908240399105810805332432788584236994886778831152874250317570908661020007205940555458497377813181460389056137928475703572496515092140366371797129585235777131341314116350521795557924474160386108631800209451671437395052004786823141185716942483657409010383619312572630355057638469667614350393530974781475608370314919806109123733739572135639920090351321987231199679387608255651297930841543760931466890688872553776209750230947095155606324764746377318650836574339355571951537130306512848031528598202107865532350289991955924347933842053560186528567488319452230943153920933213240293549923177439247330100388542928055780045829477970621056895624478986573614264070471341381258481822148549071526173501121012806731501527026389928687987513637662841531785909982495877072029387655006626536482964824319612469507412994947092621881751979432937199385061175712319836450303828991463212111698877394926362116230408797817518811269239687301346492407663491120609307000140647358747509175672363465717010152986764648197657172310277399895512098209276492115037811133514161650323986570050806656143739125499736326874714948969336880549952782599474244152525812293669489810714565295990005422595300616198066862397966400277088883649667144558456000374402998242300019136534116574846416801410363401048223779494412980854565171439026977878692102197553745224637236345990897826947311835183701389851414585737685701759393207190680073174859252607457850054647070225986178136966629546103859614161228027310840027378005727667590877854563858824978668163765475933330132428244294923769109084315972871969840671571183728092897884814653496104822844193893897554244094694206622282198297838092539650128284756136930590490961717837933472437665389951802549591445799054092712544016347695133834250982688958471236112412229330433409093923752605677979751101301752006898093563953929257848704711647280998962556823056317396452695314329546053352614595616113496060742792122153635371625763118874850463293748124663060338801243074755226499603611393238638059158747351488121785505937700310599208120495717501961447506504069019549791507594869432295760988864718475538719268900579307591387652155934155220640250318355742125024466977426439334135647457699366480501679818893337200397260808290977899707862461867504447262775127860088870921287620951761810957680938757589772583180760032055780584971305287341068424608435533728182568433360606845233674108547251249279801905925119391481509073427699804684791448291741024097773732243421954065323359889921885207533774648087124562251000153271534190983558482228043488990361598709612728833975822159359329788363778328410803169535256839282613437274157120651557434540353609379783472929458413014336368458642196148187097821019409499029712691107233687887463676073605573138948005459486807269957077746847708402495136161439618074301394846543737050708099175378359143319434851996745391603413772015117429304808411125152856901371103841604490544146491833110639637551155781708480888059726469602066169310091276662225262349860810470219439228736091835967743566342126522813447425959404112915393620949324527559411974252928559857725060559625263562986561258622487351377423722237669117858152399102693766751807019065207717891237011406204889689912583066872830582497908341837506373168983153254809903965410075992218545875903304898595867491341763921655534019037627235086722960599494658917782063247269043023276500002112934511506269231875625107769494034952848099317808398799336646511957925289781499189779458406409841071938364755472180253571360356026924875898224297672302397456598862933432984485403010249035618269394445895353609600587021147211093220749678632777884793841672425180277867625993738192619515174326592428809648608934114576765431427504171441459613050371516832730858359085226549149554216222129062733432651928131469187989016098720056072394212000745797660159884606160580056762613009483912635684807829760483826007285101497805650361958189378004989478456665973508211252496278270851185042386714700467692739175192902305440594875687134367173257033480025547808261978374988706827386559663038239461649440298717415992128417595781883197579181903881173719129535357065182795319753170875854961743473069745848103327913112910559574742692690915920994072380914055834371298199631348742052601126407070955843224715508231024991328265093023725028603525561901929549783724057715473678413308593064398297714744697618577436776660871975551635589601903188793310686577450739404424906088333483007067771208635816642170838691255638230644023376902203632131819653869194397941807010382386334477241981645123145452784568638906362095273815626016464965389089083819378767387635332006310299439736467056261182888074297909851067719599094009297272094640277745295549150221167996250002925894234052233285032323332023119076554472470813698883020550256618307205149163337390913710193682350320533996238996481224519370992379972836094685737605642712200606381918345632170450025353909399170284131814587559533933907031770439770685307880741021382171066860551961069953281676871943095891930697511244399097021190847008238165998923546849927223831217570618298729306685841247912806026389936179367410247369800740373032037720192672021776491532772128247227459882394181344499364237565638106210045457964787031530897176059693976859948271287691536080446598737064754891953719858083445695028678051414554602345188004254754624483978320256491590644681664926665837399758210130080199242868996613649919762915043410365897873488592898781764354811377874740389098080888453554480288998718636948456254336622794542481010096496041480117203485913392865188981802618264627851569236042090039477708240432169408067403172635347095433672752912574252101209659564603615599659129026681794670513178751645104042637215884486757938927663329514412764386197188068858122337695201992798123632552268084266577768811326522860170059102576618506756002825366795493214720520048387320947082309008274680090857789623386410809753373339833850410688240544399442119238881987487207828075150798117891086905858430955564653728815857186945301233603440512304396399239292088233403027278142815669933344014423138756644953743500812441075088242058146642171140056709166009727988615223808960288812630208039684593205695222400488647667509398896620324022806840950527752496407364062529866657751057055234049669779363398657812838735275809048222870867229201645764523475802360294885520740286096917720449952878097505563871038852988737704461231456575895247109185584617980293121964826162625992715988571352041072128545040637907115399033725463339329146857480816852036234382798171000055220243089943601833173052635325206724790011077490925900527420447523165864465343855097538266867928544598331558447224998966917368107952222804748742068401393902637062777013509733584944599424068391961166704493431874752058397010310292140960758408421156060021159581319374185188254094829137401688631910029515681910963921970919596294724172173572447577793204865263188827095561370283421559357543023472154852147488242997582654976920152690819749509836420648594125556787394136351314896180416912895211129373869918899320391768607770181106326412707314044408515296103055228087631279655589514591948341906449682932635667991610608593393442732465990058189658204410019893218359706530657067795179118866467442932275510181342133690565689044935259435978054124498720218919208496235897226351420844073582071225186497945409979828197798392959182128037335345096939550514903801282556339903811830332819064795080595191164229174908721102240081248179234169563818981358583289865335941751688291673342138239745093201688443809596814500711632912837551882412293354276291143769510829189217351980720607404763309088823092432207268730916480226779277671943576663052117664119005966321789282351308643057487766369567300288191852798701618810570826964031655376646078730509767470004709674893016783757519943392089720408774547221755985327263675626165341791237898762843372533638335117726257294653492235194248442305420430560557059088902777309525570495106573539163929565758357087057102649906461753971030193620809383461537462978757524458765636000515228642094828289465470677832184461939673016739175494706233109158456994402259299722782953237569349789486232800790706468276755056908494190769215584091686401456324508322902667344189251838301228809287617631186133638860021576387132562264293093600025960541895203848618204458642446250151700497418193257300750373768388733673980985666382574600471178036245928413412993544929885942952771864894096860822240466279942611758734431303530139584466978519498996182789659454911509541335581796746570398634836232898500182381351905724363404907719228575805418349647733531359281630076033565191743685375503861345325315469843655090078894080353956558318811343743161000601789520318628936168595642432940385805998536840917400676722624439741019434991726278590286194868081764581387073949799559992890246291350039101804597157215192057084148842198145838508349718591002451151032456427421284906189613038360832737616173642795216583977018447665739769302354933093787186968648943079959654460104315324171999882664574079025852920197437681514424138380290483128073076877179183889624190148550346233241932796491027578560416886738106714820674418926106117636450139588497094657345519008886412149089373604218939296977198722279204946704153987864188562337682711803766667824731888272862811120437189891898897744833303350819747407788805573650527244693776611868498931643982132363627849873150032363845153279105318551930144183894106475507244716861775736406721427043782346909947845928847342487580920908892117066457777606796011336896620667436775013024377479937241873478177978164897340455551549429898536276326297582374162069372080307793664978824441017706052875161319487210712587238940254571360869350774875871082823224465188952119598097788483943329298883191884485484623188296475176656553004148595224496988334462554122306763024517109708267542456884429536428651174062472698814303011730191172651685575450743701257833358018141751210310330701430601114524121382394370967891843752961778446449352534620827664660297395586594535571022778231917989786704344683762957517838332323610698181519614492895563058744274703464620657960842698249649801544627605583501469745328684631043642102235604610550514946091417565937637743513024082375612886876947794444636532008814345668072768184818416869951481367045232678539776294816915913152263271897083942568244738583170355266243733769953413417556213620314844067497595306369370285647268959631535474956027298583460065828075620562143038146175635489738509160367974992690299245044510564428002709837632271587154477066348283473913240929816225531844396079355473256967589826857798125433585866570290589741732890479978059402977593648650341761873716212542046763148970883932545281166310716069644738434887245791466182126646014433848166918111103798414161636086427207717247281255778072292106457708598497112336476179980888075824029519529170208573290862680258299070677913464356268861934703402767041762143974691481592731016300654884392827357639601993309216902446182066816995076247274927933467629799349030914629949416106682190230846730112408026220478031742772028528183028003113094192989725573137091843420820657276346410403495372417895692074001204814265110968610583636458820441966282330439440915925844338956973453074589224927782187842942735397633106978096655235650646401577506167333836842149000459588860015681950425348119783981157654888983827737933601713347391050035282689589236687547331482569233668716401472008879862246379820315715912186459579288724675719042290105337532941627812456120527285908170528914121073901506791393086899526377083987590108901864691063894036315513961561520270505527052353220529169941008433698120847396065950586056322374271892699953242904595317114130364091571854800563047516804451239038721563620795485874694902299548031234123448399214169892918332148577660562959153204002060830935748655890008193484208694077413471878784806267305099902721099431500858631812471215692988711063061529865909342183500010083940549681618729881513549209013969134460194225479178212176383504169977277982962520398724810417799215559548462383830737065788957956538337496335691363720336891401224266876245495930150909692422206793573377672582196074093332735294646076507740553555941551991123950186279190100315309163223046001294738750183223231535932785111705572319804887994727181005661751616285581291695746778695754863695112471334885089303584351924574079468407235455408250218777002215118368353579087906432754835131732919097282529321734459280835702606052318726938555533928060748006519093858909662049780891756919249281033750058026463814267689777547669569158234550133306760972180926425216290074706926316665559471727051786285865019233460970002417097572994741512875173118941060752045281637344499017816186220146289168921727569861477115531190206660166397349934310108244689324037339890063872071574941338394750132733205501995015423190634487121564490520062569840972809050999044897957047358669618372102714657215553520763511535574908672014920667163334013355083848514361835649006168348638396763832164823844483687197755857780844700827405642994367657464998313039906606597758656625107809709645954125197174598033543410827514186899490948553081043365925948667807717706856773824413586525882780890363593376088788695554033919071722749557449553037616092627154826246407166134447493522976357615197586872928020813898190271851435693027979926419759957002326738148609706129327145089669852835166249776975000987499313981402250281645842968573248041772908746482359773864563841804553234197742157573307027867698568710632308630582981403296016394544180204629331105649884371156111832396886751614791422406433955708536572057803212860634193415265169663766438595171803720935997305448447315185883751573098754637579099507956922086061352866538862342813492315331478962029892041829032340983194679653453972291436377003858029083519269438997305979800602336229431916463439066230744922269831393665340789531518812086980474389424962186984380568415167174227532444250467138710885018333829540469609635228898882485290224725331782299212568433373906698431845152172909410536581558596937369543099057880933189407136950286449913496595044658701883385273183039706362162911353557428439897571185912576566335660326701678136798659050941615294165795682340170161866465287298017915187675653552861302741613950662493090266850384602785811238658961765503934333698641608195654070038768311821063386320086548848435718083087932755036180149479019655926283905962406946959917735984954854903851434676977340616991939888959191492701247653747352267306742616797762829670980760433616133547047401189129461835871893161988014722760125771677873508557293881693046742640259285522191115160112275613643912127935322797199324746890127256256230775834980611007664712193889496997240709653447202554605447831799970809764183412217358668237138651043535461341464847968128159907571584854964940890182402170407218445193830188249196556544163572902586165548944929221196679843956512921360638529855966870631408388819374330690278566614590475743170870705165734793953048783794088893401524878556327633085900734622821892149854213829044325513071951747804274568633773706271728779448176020815211702238566145673528782737647564421372483343681643997857413318045562503669895718015589130189774769019961193391524749219577033490717698181097607576301198631287884626346105145134544241651216569522779004056223221059376666272042116885172661082710573865905479644279561230554284071940931065944701138022759784075473295776254147534148827783358581822681479171604834363319165553402771976171501381404025506734879679001704952358679337077630451552818166961029642458702567050826478226912987197978999210985091983732455992135607522382377904166849027560077982742920690770962151538312344195916667654467508975925599425588283234573774075208980768637132223251203356950557650295149134064035371641275655149937950163672271338451274410535159922602171250414616162678973450783963962633081940093412877756586882731989055837894978519033947103201591871199440416166229398157213634462657122936151465722246995296624203166533071149549432969505212276509907704894839268918051688023883245299350004038750271138833673679478740992002545828476541978619958880510125184072835419122421926605075366560690414524296464216101377351329020912191266089898714245307525962056605975828720054085546316795931618098000331293261825028213256883969107719823689777996380445902065090662453581730870803591608057837221696835166954014475958466371999153117694389887155134089718852140403952370157747946157594143585273092818595658839301867669716932434369821974455936463680296481829408802871400489779921826014030314327484145241889107249125377991380352241088135585216322099224722145828600812537072084721176806454697140643571685191577281471883990960061019049157216077816345931765050023405529020562527860475799985275567867275038627950592823022979005069646364844858986008602800958028654638885837208523611754997399867939884899777183271298480689994848542605148055398970155987939743804066384450133960925066604613515928384919835009596155285236805868605615286449818245763926411342565828180853648648775651667177742742957033410129806603198295654068679614261164367807788989040459756356291204722493152369595814652412702075408494697250645974670575617060262737469168222452463295097260861864216134379668734167523408688625880482289790052937364981329168115711708425869365169060166026798343589611315211742271221752736572465907836255039680998539299146929125113939032341568146145951994219076263233181460241909842319411041148495061771400530429130212058165907529901808279929276427644389056953229587025682539910268611606303527571565612447435778496032859444206849393413049746460816673009330825588615140803660531954315352536490314523618818564290673610922988032053111534003473524175961469213730458974859327556190390508950948924455277485749549524181947722498618174446640142296340839082371153095321596698951476425490613322809411305052150080376195293167302131158078307839397400709698877925271439607519240190661796669383045119842150748253100867180906671179907596359467967983554553063444953270395748186503788281194860189779018274967131768163336826265694452694689647676692665865315735801585874994262372954666968472579076602921244943470107557735866864852276339948448812088889285538470103494366254700523136422312302599610162387309552887209979929115755883649620561058644824223670430078534143465224286726375421469267385363174424059410219222497958475664039234143165469978013011779057567310205559836572195339124279138933263810127159014784259827991109707715646289384238454973504717288267896049168136579339954239103246787036684205701246906245144527162730133118802463923398692404453347126327929712326475237129606354792721960571295140110076575205747265860963412865392006502849744464767886347431350017917058562783288507330978406166687462035591753169006892857383773793466350147120611626066929002903036434524218987197270834086613489342516420705654581357810876127838945106950632140380065441671615763801728928532328947491604336952598766739138871321028292381802190420531706386241167335197210671188659946311125659496111776264559882752798940500137662539297157343674908435394320236523401229390827092764117904280236196491281806464560882338642820581210566347219852988252921370165162590297686890953502000610886145664911272877402739233189677889528850909607771817304237566087224349859441749646198471454522678718779345675558514461739154910740400172536571674478595847991263159657560261279299340627025960010128221015461960702517656485265735560267562104185156410511897033417976359297302827711120045280022423348339080869313116703769676214734898039674498189359406640729714509630606986737235948858419944238811194214507476707663097755453918705655700154795816178203097809279663123783298335207400281350742384287766030876960916941355763821171095963252485333838680519942776801334302157922311793412091298244511284464938346975494829117112566334934193476406910984858840854446931595618061897462864770652450973474322936138357888271562166936797921648057496647797423554765364284999886108269690879360222939195836487168874471618571941167794350294029071087809954410784424455742159972290652782137758116976356852684443969386096605474571427779230916404377182878771869282629806651050289773549674562657418517528717030656969298909802601920497848615871419524272269789728075739243564316197607034731356098740477083486651967603380170766552629656273731918930031879277568059411440449642148956601225832397577929770014325008134265107559222799935139140059520955776404031189408392463753285533570071837002674362119495347142653601024084255041792963218754749434409300996737254157509175659558053572782309139812006088251629548782826735564960899159727880690556694492455318981179724995443450766049438132886808598493646739056306442246582739173437298186190719300811935348505794136794492552623291629553863669457806832986583762321445625105977523540118410625874777385420823053778572950442741958413876912933079585096725753093232001684516815825888294316824107004015925042369578827712543188243342761819656210972697366809126590411253217465063125510732628257624145231730472207607988869925910727624752249516535661762231089680789051295811346487804202092205381618214591073769502561764901053296849378869825147898604621233810630752426874325183990852525711217054738279321602113152506501262740006475164068233640414457213873175138272175601794552118515056030703436267738607590964180659553292043797913754872488084341278402131141930887059405535423273093688926669123625825137190594994517319611553721273562906938805218940884917187075964800905779052893189637899267808287662472378850196120639219546443486403894895062083707377309617439916557998042122817858953168743240214119347544683269364604662531094816840746946208027029505514329679732857722732830194383060776001737314688555363780759091239566265296917679482968434816159665213845024709947254248609939656225324517397514491618031502389188992093821587596471897186148705642584003526049972488935908719911711269303285124590507928242864604856101178018908024765299470432206914856361078267493475719838134132010195740921130176610639434687731770149718574989625193274247187907325761111244268941486684977225465962707948824766466075070954056756028957763306594770411183685185602428535620937739706911918541646541991914375947685437769837125054519206870138975564224564044039686690724608349717772967754555630619421175931446736876299864233940092560558392409720715723408351702395948156279261659182685727339776828578653288721394594738989610178866417368164918622592423019588765434355102399805163415439997073805186974933696045533804935220925484718355371604985276719706442287027633752514869968595040851042349879189540948887744882695744269449523550271014680663348764597211195642714123182122889656714156703490178809863797169209616104957308054392973912463943291364383728749359367300257166632979841747260934015418396104102230604171569637913517397528923585875804476463970636618360945506767519362878402193964200612531075177745008916445837514509556332545409587167952913764646364061936704100383813404533507498717278617854813388229424638643348955189021361880053289518283834533747382797027225240985001416502979036051476553545713037517077535530011683533172647461901361669825052170753669211185340184483044145656690582378938885129140353619522698046808254610747968183973805455318728142195212251336930774626173983922311471435523694627776745233154108325185021125344837210416398600769570052560067338368131672880529204173081077710087880863376422295731752781114445037873933080479099924705854375817500386212269337539410282718108250230668379582516799046659863466235043105640536910824132066463312109922453279686097190278715845574617103673636293393250667161154574832952792765785261821190315421942262711281444884739481498169270049443324684677685943682123275455067633272193301292710036433181520479043582541802577082013278402021194494162931676837210729952022584360985548283306705486285860142647119691976744168072730713766617481667355497209195770697789494870542050579550491052871467466543721185397746830813959604994601200499713750146881089142045763138504172188938709632666996625454758874020842624703171637789118978339917106756629403073634983506168967451316926435753107415775972633134074966692358390837593467774250634850193870342978793413104453956688975352922566920241980351155164497296971611194639131077507763828028866398141377753469271783705630997528019747542674486400754961064615042059425807720298772403277135233321162508513941399276549943694718988608281137645099421348697541911854256407294468830456046829992955636643402858736068175033181838875167569183983529410590074403810564606189840232067996418585816276589541392927423094936953882435792462655170049849268790085477487017077974475374782350037116173713605886512326863071331742768861395439594239474716116552476421606547667823248328624916471517816743637921685863673790463902336154349190932722962730501931744096274557527138671233476011555534076705174027827237842471316614314279884595841514916580166736991281559823027371817638639470595182870328803241766479714755176539163114650130347043108462325711938252570112812669941028750248358841686513309339596657588494748365854146325494422064193340056260975886550627036290031835931773370628873842440821940442055681922609597674451375227842651894166861770086475110728547968790303028538473016715117669149556311907267060691189786948163066285373063265863363617516488211901240812373805544226949598533094858801324490030902202699567508720955455773537439411291895277020081137273312222694161232098039758398895353248237726673990009589825576774393739368558644703532137420649786004625751763886714210040964863172825692739865462213304314705992987058637805189563994885068726009279649029582489354378243814905301500438957810307480368586604556088838836231334008148862921841573871196579961763049069431241653201722975641767854020874479406742821372800790908774996430813525754059468243282778439741980079720932459071009074120564833945590952673055541995209379327281757650018294227230703602634817922254217182230304507626713717369861856206631288606186057483572746885951368819943938543903839301341145053899682386257147426767586273984481442620809511307273355964460378367139473717640411988835394354631618884074139850646544598682321831415496853272880783534172213866021973959662752724702711147965102006036827518227508686432598177358374168969284411877540481042110040225304968170495293822678877833685040984151553880427647597260565293012560603850565047821181842613586466286995741671960584808068796325532982161416470659920586494222139809432880901215200946768484495949501898950302002248645808478705007344547046708357017618767072833557306569080594435616774966329510173604608353737367578034661505324439746922615861420178436803176988359707719657529481298910833111008250960899527227730097802477263327229462120097020182973698594253394898537066070867738476877821379523834759397434074898831767762298361984387786200196579939018859465030819419602480469672145264452904675399859918096026224722499822659545726704087826979862767812408880118578414531754848209414956890071149508211746678869496282324454767259477278951746629902647851512860382594440514483495529998129418164025264154777831494771031841130610076374278940006227670695134397833237530009330047105759143972512394030100559119856591819701926995720667076268416760484516289326715526251239704164904603460538278910378265497532608574449983507471182998041712233999473075119720309309588398797637188531372331014599498538597902643149316481257682132923897814466108105894282244528060067977266448455232476446633404591345923155644742239186525959901432497622387752724430291983260453493502465638919569340725172380757831025761995970753243939676944228191011675628926124903396022432985329613694985441371279658971196942826714801725734029415033441891885999525827370886368606306064752169144396985532421609827277117269198383010462312082778757719550516152982762228398701085791033545122584476261297092092663160349361150899852187427697571080970659267936137203394719677042737004818949862636790185876665024745187627458191353445099284358559363009951072305391043766150874082064780458215174950929661647148426999908806858973619523662497945182365445047465632369005088305825597428214310403353039053670120944743036688129157256938027784429506355112711972188159753030590542137195276078935420573877469044289276927731694853632114556197388500476994675136084309049662828677451470814977347410269788126248346914914106951010548618154985678920365416860684619817354946685878847214778716529797108464038746324426555454485269494346726512990030034110286517847198643821542774047563138521315784320453671335221812289430796660283075778409543269658609440871089685419257860938265866724974268225732527641418257394591451944840708925223150477262521946983930286236705620245293686262056566636561187523632639829399697496052306525618930078429577113391960106488375085749955334393133594366292241087181606685123477010474561617849282214320365480286798464522743346822788526648057221874456200228986419890147846665924115966602156554409965743743146315775669913411403652042562724559351053620664859891218084757448971558987763728449070435513163097415339459789969522774314567825294853079410366014229372854306198090410350684357680344725594631426108627547222054323911069632372244492293205610835937938812400607457155050694386495169873283812018440557044676740488724736779781015948134833862569826013314370817468991809360794935526128857378997583127896384130923068837408129351164785100087900229229978594355332102813719616267355323464841734287927109773857638276403579556286093455896584286985807759952282008636979306627036485752251526455664170123209426678901653214500860376764778827567299504138584427535927676034976455634946191030393198334597530003940856378782656571384382658555659327907806882871596064924264370038755103841542531430539657708479854931515269966215863641304224431583209392235256545338838672096528918795767234724238921656299505275245573668560239645593296175273714322820945243712926839893733767562539437193281314373389548444128899549268827783560175684896633797115415106180151458480277386654480874091704223530605269394316347749369124209691401843139866035086365322424759043034817486804716820064106956914138728802527282942407782050761960407413849446967716575013616015057322787467086269293701192966680072677013850666343283872804294904722735561702743034880560489039517007981486279149316419759300870905484541039859302086643147376717184004791978509605450929133805423680465671811740464015678929938673453969202072484258255783894285550182474813972685455913642772474863484454576304563139324249402915231649918310844668298509502460105146593635911801978042229649352741207721038801723570394056766388675418789700320044098679933742076939450022743919418044706433925949831086569156946841680355131557799783015935870367641776331458145288060187923035336260236205209951629741875465366647726928354510843833501375133567765255685891047612770425123325990366018644285051772896744008699225380884655053727210324850359638561834635321421778330543144330052490324507288939476496547545317412010872876496067650183360541826834257547860057975195690127329616830457436809450572022082033535468343982689894589523595013192451172658287492249380904382454365982913576085412078203061527138310086961675250288698697929114532446069540539925906952593837463213468279108390494331988428106636419833142273226670208000132489043766917571612130848938799197779658008620021911939010406626199219276048581256786832689692069066221336529672198554817402502613801561440442587248440633477429773303528047862315066711568964722731118827448004528883301961293294840476942302755383850392094118800142972098579337505411275776661250173127921114669615351716689237849002509373161923045315369961071388349849038318431657496099453067404449261390812401035643359512966091271586400951332606217079513001526669610174853313773288207789070657256999182795394824184509185947928093159941253112699321515228143001909920373291589438929368119551854712874349327443947421505141446792882083784567668596060351941900628263772213850321822206720691873439752843844161032631917621605592999443555057014225943731323468606147242737700156646692979287465083642743475097995828915624212209583312962489208934666560760286164980821733962046152946519009539394388628522848937243098285564583227164400011633873572036212818073663236017297430750428044408931490028492030063740068270362858540396954037190214970936679145191183520919379659541974600894855791361599740568949086068208925401291505587839313330031029508882181402927602032806009526967295045034895917541895633355031974352936775862885953715495165770250924859672754611676790554994604392286715360859733486917912156271839235296374046947202134386053957738669422233515500310410530423183115766010492887355121894252315832222730921321635236018532542448928509538155258418586739719283549123950414303801779576424487001382031962987760378427194147965104826275259436507163085147799513917496113216480200199415321620523752050593542153858631325592116977861857608191891539344949678649901719555770534772334626444055989695335350705730636524874902210221596308273806930379958880418391692303099393639689380679741101461952879693124028809295606679637687163624235701856439358721757376871184256659193863554304010019394609795110002522236776022812344002547654575795833984624939941242505006070505709226356122569477088231646128571309982119545060328680188686523775535601700266510331074556489673726124429253968740623677575314064694648763573769323865106030473183277282948824730317546012600999382424886153290309061296829844804748727062093354652192668799065841246987957978416352234392792102833135691121602159771146060849060760363524569122755015107838524135204939678246401800947518457148345182541194578612197477412561959553353560709238869662408794441941817710445850146290554766895311600155985037300188225091436842793039843178767792304574675234930926075776294152472592268416996918768413832082773945090054242502447973831692381077384851902529165608489596684150003971816724394159766540580709376983720449541226766317882336434235354472271275630318543191542460325838809693991623285895283066140112613522718965962160192427450019808545868620573804405741906555207271031212310553014438428417179786094795564160290453350943603489441546356576904972811833126674530557405381536782939607850228196809517634590111515539741442572206192723578655315651646215362965005459914942300858856063442637083873084625562841029333605283631754953229773797084661112072916655339993496459558096733113580721279052980722119915980116633697377332504961212301348335973357091368443386729139879253150122347959313762044902323595978578139971603140855065694955614620710645775018249751070344048909752092743467973002887981901835321574082749565416703302377841810120454662636192154220167905382621126892801414796724536602132611862220784491672422001107033399625599165660473393678166492003331492088901141179772664400546863837889295461008243435740940930338283165019568409651407399082246449600283008111178641910299227527291948223342425977811777920903972315953771617921305502777686222680277064173417701188614937093364254611649089603296237324592022665071325979882174793160654032186423454929785160855306433079720515232764330805407372216001057919166816878305477862634182200673450829845478057920762185388803419417691425641104747562463860628854922737376711859642110029676641970831863956039736493288151004343825269418768348469304823312509174901912655638251760318987022964598541805042660354884654665245075786463442846690149036396511332084829569908970883321458152329963973925438885962844777485851990123768869464666781938537658679774516969567335367527904558360640191689125502422728412127049916555240401636333777781096107267509094608576700148592373793319520094696461638000167269093237015098694776784385048855697013843868720145380230360202860554228468772647938913669292001198479984002036364791421490699162044470995436529177696277829761684034400195336712948169828507530764437054962329866303975457502033078093206663029869874518990873111999601373078641567249935381162342082831020770992307213359494246430837524978595426555587835994194442044072365157202799935942914080659039542106310912133314813700643930457652687970817872900640684083248589603779901545437126888834311252554907386690579334211930162207230068321422190531517307578447747370204542931028224664668178106394517758174582406895809320980350896404517744952393060802786993480839396979970752320093099316704058569591975756956712815669601429199168364304339424126776723571308391248413862671572518934580962347404652865787356120966416422374981013824528528201748968707282056944500756150646401905985137048095598711143144439069442371199377825514588975705376953746082920480540595703977433902393292992190775752110644614505344219135608237168978350633814481336806664567441419863307701506021529410562897893918749620337745562154116459968230189410542370886124395954119478247143141157443813559631242458488945450539933180197784053865081235948465626047203105241574511969944772429501466861204483448972166700630728158621375983410543193800866258312916417775878053505596976633818047246864838113197697421668668335922117862681560842142822479431739787369570856930225458983784028636625641484989666737808951817232354231057156169674627802960351232369742454161337039652040091143459643334003529951246397378215206095599323233348921415869082059223385122950115285802457672123064023063671288177575832497418670510842500504540980802170529675096173634870235812994426973613425259937321646536630596378905459994853069123082330416420515435056674521616861632922488593338692944149638199799581631766022484985128284061757521551234653621012266147283249517462436016595914263476372290967986709750316573276875816577334242067600986640707994753178746892953784653966526457212817702165905782016241269427926647955282317476215521058158152481003807609565711298098970246480875912443649990813472708250003722742808710604571578002326275815380474838301326698622581918022236804656246048750697382045815288034515578865157691315435592508157402623570876030670754202020689837841652815221390814907661556838468495165771095405960957479066610560702936277799788283248198372460144111473493456959511830370877875594975529218320926153504502821977489965169320390687736624458983181291813141213000545276360403555900083241202769142285694880273754286710794067266306745297464630640306536167470060195009471287113826595992961930565658112306850843337051888986295685182401877254173961826910374927517829271992493790166516786284762180060455924777175574200749553173289078388142557945249988190245304009983523911485321923996579535805533803418316260509553786496167749576602710122839791851559210975348151154915002902042619189118212724229134335787498186507847974563335319963629614804190349902655796184652204580150117849535707355715917115711545387682750951255567654674646676544443372969313737619650434492229334363827106905824504010360010750846599673314645552725542916496981192528242486758860734532727570555353026000548303455530688599209725139627288937358388518024674453931355591607420317003634533988912719087436586016929566122425870153048324161120336694149649434716350585231546948918429497752251427638996022084978746208817756320478285100493927391307923658805592004887452978389868749895330697683428687430324501483622250116500545837991174607918369130894530372611946061632894221879624581344732159721335693154649255392773206645075590836581032008500797607031661387148242517049974284345509148765805235417822764923545576174270187090695314922703180429317284564041418454412313381959976309074538984697667008833397453174168939027070104092455528754173589705460005876220020815113201967243417421354427249485856878239733093926204919164685936652609033465099355015756326304910111829143503166821269318534343825846686796081273297153909448530800272574701594988021085307173441372407510697793256903223144455782681214854038429589901732373518616293646507625512807802518992155770455446119628027480592572958656195321555549340175556900390604051863097496677391318021216019311111853459997787449800490723469437642494480584159093173261412372655799785092921163196242704279961076083058164275604896792787604964492748571962399582796775174129112358822265664750698957489071840776370173858933656388237229410176151509038657702465206370852591736936632090275245330814499918988045419157728378611067488198937438305884141467063448856449252986839917879095073502753836630563875661249884879859435708039245562862161025038661783094488997783927029278157607157319408979859299297221824538071999691108912483360867651382837035367000956769300391612473974344303640552480066213941050663071555347162107963276673208035465221587826183154592238281892923320902196162392668935468171670541205888500834865348644144525339283265328170005222942289523255063813017200832605865438691251358249014514188051059056712024446055780347829359072935185004808879242471031711556315351692650099087201733448484806223974927999844512171976801271760340578065425031844142285246357072381100219867799435837540420182826354744110593379755522440542607294039316141842739549239266205926350851657796382188003702776152909551588039857764726123080498987447437984334401991980852258602041898234852182361729195903860269665174764252760902155501001418256809167847201645218536511851253879641561581104464989728942135588878810518135587626319192728614106891346719220193330886397394663916583608198921447113493666154363774335392436141556032147820378539486627675301891420163652909912732594527389280069206869898343760905075935354885997676382763644778520561054252025932682200520266251295721088677638472091003791051653203581868304291118577404626189275083239612233840602252035740020350534915047577061623209726309760687150336590679019116049031286193572714800593838464807782000474521520695600975743999009396645872349208109253396873611307459315060395698723733837608227875687257988240731997697818156359287070907931052176302543499451785934936025005503534678685445926404220838331432629884049198054052792550062552079054200164058932203274635204773782611591294855525684236105601224389495806258167678033938658543197268463183758814987738177014914472321226867704719017863307799264568604719201016630693170041171374166865513467968210694272833000106153583930540679387124416641356831935759970079955711436209679691752197419822940915966772366568480973934004384292080905110540555205135748344251325345708781291159264246309117239662081990163118015887580032567800786206999903616598366801624509719499428759955664090210986575543072692833899488855265446733654724840459347936114623193525621887863085020284274632596920820789919309515694381889651889820737425876220724450284486106944683487477402673224548202122217408502686411504250283728281261262387234775229948907814426530846856894335529495502484995030295633023748812158182368737932632764107447020970088152872114132127028746041515445725579178530852428152878746948740930813547241256276566271961398880874077885578857745735595712263188099336894163608689137156176681881860339236318091380712103836886644236076331758844058084601318311992666791592365172624082563312356229974003240817469196420600620478013264666103913000526583038342641771860553027087477333270574429123571875743921706817222465175818590364399788141281792935332446633554410479189691159583616861026587022768949186046204951743679378702269799486605197887221226740228976462729337677063851078654537048280461995403818548910245051467013661085465352063761920141082744244503712339110670028942234266892815026590736155796805442537950737814704716337830491134186318181865012095159615155516808690749234504893393014540965804201427102563005830661754128482454869587715093079379291257248318715307053338350806653423819755353483474388123805385399609874476650621034146467633965060264507095088416719937551436418848461056198249376586107576196428743518043486891037632335540537478841135061702782728681435392978337903072805417203836842506935338600552569435940432416157227998674508643549427016831688210631054634874763598727206984797492149637471236384023208009156838902426708971345666118622912648442115651131218970712235154592721676550723769063669845126030280031768962875481555899441969367901162310030204098356246184061106247965641482685254562002950669310588601055724338845032472477592408848577135263021145318354836670963377615022224196584157714080414241176158485013300695783250387330742345208035948586341313547250636442632652183565266248076895226304313463756972666221742031872794423274778498698572650436030371127810455648868797747875345571723774496741332285966951442172663748816179046305850503513740660384881525679457362998296345453383437863895359332498615315465351408964289624536467874430434361437481173237562724810218010763274941796162786298782077145148668085776155842539589581753664960062997703221352032352695970792540731372773037395949703734229547527906785999320023013207890547693835616718769882548877065920200046502680915220785275221884147380773108555923875975266590089567797646817505239773756578865382793635772836786373199397265718914670840197494978910619881077191470221785580444570035357162641737303907133925351070611015433659584484632655424631330679098900593096228889061346641004657958161839142907937923609317014088256286283671959569459988559877237545293589758692854978253044112995178145434600586305405191820876354736908669158072894144675865672700819568070211874634870621513160429384687318062754516279189206278942434995316979630400091680901006529976664190038106321711127631947182508230013735547019032793471576636395603898253477705870656007392481375171909524143753784432069989510267350021785513829787369387997541449843352965571642838049737347234997368896774703623678630957260116982928290667448694939229273777053304366448654796312466921803679888396776754455804878925342471077297057711244132842481975292534330548570729993729359969846602623593540888462850939030530194594200519992002140298754257295590340637793949969790469412335206198203953400251748425260730400816900715574394021321514166584082717137848557396908411650026701117914577417095855247776832984857777693881066626120287373407877342475367943178365120717532152765812309562173775126445005817993664057097914302053015933858255603867399041369069883496026363226585810041973696359257243807104652221745984412599474030634127516656436768107129288604176620561159128511116178472597742468788276867687595694626170509220648469278833416924568458249351036980055266226726377167959748336741709231089763909207978814787522807037776140282234033608636865698514801547427460200028975356914178007616805757662554304533007010691930107266837507105275202439810512724004538537279206813263651524434666780367165493372758899084519851612086145869324177847748878248318939133735867884692586050706104222629708362540492631492759190066250413879949521297614119729542090146295629370819026951027578486064790074502374971690125487044808122804543992223815983348462386482083046341336896792067901646371664581676037509672920865016267970531873281291234665636531084927708202464017765705600525400722212151573252208829741399272885163092609128769731434379815359771069169515686498468251236421891382641124501624859190039433151063453376935099545669099988225990534270499375584666698606407045059177819346325517633982961456839413300256288300801781908752746449273446756402010195446439165139053979357414518923511478592677914285939508101451582126291241229536443155894530674405138312831404867429827991352952840833958311192780817968775242782742647686690479304254305132975321464080068694388322038633495486016059557129892790593704301588979448178389804326475083574564696560547886973545618194730437816657844940539927220973504961384750858994208699252945455536168069690947085503162460299569463957787176973765376973580280473625410867840426209147092919540802407411014548725026741751035257729920304076331089867521617690153931146335478695039201381382205972404155589626192049854046901338169439958504093357078519622442523183936915267193490706702350540224496785047095176338077614437203688300973942853136977478881396715816630614893588585463834719084830262263206624092867275059615542912924922345336411927211224962956840031141767283517110863509531165481232782124655124663374721180704447783894099099647842722245654846110372157875631578801432058084174878090972031973184076084822824041844627344127513452494523647057085666758092261151961461115981065234380173535900165835524675161017056834713077813299512936519747122382401566795814899996965283531048447393162925853604602503704882088387538952717439608653805009868920823311815657792498482015859663404055627268013537200856409980321081370058006527557692031986185733227053922257380862877414192643149433982781422759697881421087908697314922814547466281546702484837207799283007518592018440509541290657631749213808011776846026886092252744027412683603206278756468870124657385928420909048917439264123327491424895770609092832690276871361320675975521792477193704152210894858177691167649672137342888443749721765378609662080349067136218485318256159253210538633298331162163697359603415846512387317049755645962530298460023922378325844440308694014736551909053136066596960227725248540047906656960058492736624136761439470823730247172474827914884622101740527423679558055943640479504557976951353500995888948978493951955723153799554337303036422229510924697443944440129606748135095074986254054257441267526388487296450667554490345330599122375608413241272736452305176679679688411917494032856228250948013609881051104911444340983632872374729546501284163875323588543648484120544512751651452870936294485702668367485195021964487684937174817100551185847267327149457335009915529695811557714405734298232185577588561331509393679667806188909535126059888969614527771903625588589016444698412406873486305630723257688319182924964077229874132937626885438010720367053554861801946075864024502684233083952936085729079423066519269504639969931375392364541742888349697577985401833476460998523576835747372725325779942033362145680099917158492279432391319102613040184480162659437037811833404175859533816624232704974308116414032704807899862476809885969754275545659270201290547457519959744638285144896659199639169598926350487268347397312228574679187560429697775842400255108588032423301855822727499664148889296456654381084397195137995104768061624149092311224192866348413891166414941567674512952813634554583204895308166964471531486644205219220586453288419745220161739278708263346385948058126280210428852671215769858496790983579901369156154471725473544458899516919828364480824043760224703022609143560119461699503717678206274184663838079462636291938391931747828796754913936517295883575421765391056407879452815252208034112890767736778163927698194035154500753193118955322168393716968510805909967323260760921931164060589538115739800683900388861593546094249121451519626445120803133156321069915703071338678213727113955895888205450932694032696787832448218119475817578786798009861779524983475459462892744866356239345658562015709563898768363196293526825779651025976611489423886415877497374612296926211577135274521194845240598827227281332311493353726595124191902864917915089147876098550754098521768208032976587897819715440663290383567114563421200781526699974127947788801410355614276016018465534019325966345617037231344526220917164403306895436922061332070272792752353151842979528738909490595644735056182079912919291235355619269592928053026191742399817993887106561250172774305680257987232727877824878675722921708612919638577095239916652095189691594852815395901348942941940076065423701348430847576273913220494330412218032478795459652212389670454585756566423912600729298969929010577955620614946177174636113711423020907450051222500005240490638169617322696544618395152901063458533113457254134096672569692023463416436466909402528679216744726305408122506839045897421250246191750010466099819559819305006591902225062298852941195097129477007937680639038987887695211088884080252231447766361274945291998511657875551667809678798340354322362071531705113604782703319522036095923993546512360046908296650892489620868544749677253464830981200191094913171656546071300834657466754837082990019002756248775080946069124652518198177859498994701546155153791983046069722122362186839104885400520838342254830433917149323867604832485957701551679922516018610625104121812150128342479035506354393874227325520410038880391626278554534470443313202369909922178862524842788640759154605857392395960059954088172575813972139691731519778555689596473290433112326277200655624777519492561171441868296894089921583938171218059916125772126542945373195908268017528285761106464880149632699128617676860046185101941167941450843403553874049317873114087331899954106362915709863431125590609740139056330323041511496574115918524232834016458878211620470387061493766190159409240694373769567321223672735504079287208610764049879701005415586713770487630540998663177965920668313425034702379270284249173954051769340088738067157031712520983521106324225638199972089382130386944046304973595704847402334577631629414837032194542103360173449818022646035236062283365923320375744158829167956466812927944869296073912428323907642211364699361451117802463180211219653372504407440039545885187556099631937261413020069984347049782685158132348902564183983626857296340238965004285007309886558432306858712799409131130870511447161492497102978937066365119345779454804296744205876720659136031346098389432586026587863749026047083866939682870121661022549468125610640411040258573042213805449073361798738409645794271214577568667432886068849032485112311468953918630798399024263090871744910634084765634106177276341634853513956264650743574558749340946056397379869875984020788049160607056906224437903264604672045103736749597267306403012998509196145548977754438932074539357289820925351620415359379388336619395175875751344223880142903801510774614839845220065192898515184718390183243185494040161166114176852721717216470570191713482072410694198609226750112945434649211910963627083476596794808716050361361832385958263954026315952383668312263100676164196591223414779165917065610041869619178443613907442470600495574789473112395190246924081333986042216849036673570379371525623326256139812924660284967390109581401796536583884923265656847848913658066072499571422606135541507060600715671996760058690805481005061195400631251758013312882337396934896127260317049614584295444968574819318163689272478366559120702984004175800656993203826375546052616140470123272364835142529902021064129045611521825472518468969548035736722696341880087266150866471257128939636812944544527262732330660670648928091844653376258168053618582957619224168796718441971754590623979197561262191154080330404375324882223831130827657539715603864909220042696874980471407987711777235982296140937896632862899646056357115043378053930185602571686311134340104018500439682366460717101722523312849089680759286193449808297049775326463623559989940936532613031106386373581695061122272822307986242700838469942775806137518156810120064685120781252153723665249764122108832840151327233861178277020735174382033251919725278153789724040016732262140585484200072405236214287369144201546889249175431176000626072845013442665647982828133988449122104064937412271629269264235187075418994571154539841679700396076514509485920638561087864703955081286830989894272327994304424838777075341713841064689094547714189069735821708637251538403109957218745244266671904736734504454000331031099058093286798356386409906024088368281689781469195084386972195961790039663703069040376042630453581631981936045984413278667360466776277081385766544446587801263187480724325339622238853469645097370328406501494342801265098492853451847016034599018767133971660978064462122446349625823396019512587161455706512150688045677288121553067531692196146296751488067582431686783709496582004585973415825209387363622871154045462230908519593942045842678787312885844498775203114692881418978410679938228641525633280511257719364889038632693665487718280219141095952770525383344155155788742127526160540430268641723520804812825572062321842002915918041326459100277981162891315214797858378738647776649361450913761974664104491062639207049797021251780233788080072589536668901262661416859940423711463832666569963838299566283573025927937003381804444446608958372248301329943375555447420131651136435323434850769308611661778775793620522648230847303907470424108862530860789555965444448778617521112273497327289828485603986186640834713416169121005863667629693726014083158782376509531909841391315402244164323510187145205259928370175193913949533489340237283630494320601758877529240293774454348344669103083001763735697936548307187016796649021724086971907942750329427874899979728171241676905675851023966005294186558548955957640063223689955681299990343190332803501347874351794039846340472094331932040296534062106757472242180868526625611517866728296408315672824361557898556747031112055714071328135995773572477158585613724490443593272844020652064199439821145969509494465376074836331590357291039201722545398019995558190529806190427045643324694508158586416122455280254113996438498849731331199902874847540579927952967193533931747101341260551940682968307117106796122439156863371673471071677144793600204807082642504410916033244626478116272319173847128915276939937179733918622189951908667405223745625370716562153100206455999762203519403272204651344045363294375630722914250560322541109588279424516680638586076268273148440577054453847607324239465894338016678649284726870528135694277916555397873086188713795934048535430951622986243325731518155063335156658748748892353438153172325936792713690613198158073608631227436453284980757309124886653139724327713852094991083633267326961175073897416539764598889574394858266761803248934147157255556767128033965406201481011390070936833934261417653834468107460851295257531731833656540024906454624807728368242528951840103409059363609078640226185056760371240647544567722666379997676829909996767242631267449618921031286418718794362605991440865609487842247464375687790911247586602688153922332029888599942842109292806453620792649574638813778276296682105948684496313694467765179993005398299600818910461650274960816218110996584242454714116949833999673614202028770720190435374839185822704553682125881744356932064653303561885351339350563631242860130517235947774170836067143031145909712934810721723686510675800306860638449657163482007723208603408776247543126927498219048010382496759633899265586505258190756832988644394906400195017892350224630653863632408472807122829389627152882816715367333144764247622814423911560961089296251150665217251686722770968022117290158087623793032295179713981903848118401778164000393066093837739282578875260729125255600002682590370716763803973485164678191650885734420153246697754401763378993949712236865240809501064404415972649412593516109175131333038734142531181901467308626464711985632399976944519125693833565659342985060785332802972196348862342439858394444013615775324724227403718084030183512336308686593939302059972434250060588291391846559766957954466588136726929476326213737442283466297780280074868840368736481763456139033485255419235739035391159652515350728488607581606642705606970082357434826269232160044201695594958872221422582393204952203015145033179852292733965918901559301036934137877165925503560008820172722218364729077884913241353996997147515908542595833347957925488816415479549616072825338234089911137637443874546621808795394042019842358576719056275896692623216972688470129356029174160596937361791641494034710105997346791355155772471527170551651955980500581512720311535901570647286650135605453909226212851830650682693316672021894664858989571673616667455050160170939389691927608474459248075479809957743459013670124809976297312273847797469982086758447847284145905980519220526953090715106311572843640326127207827565258937571350219690647602142583333119691137246564168348465715525457068262887659513143492561959369217014141689790782101363010376638955553363081053015648570470335332156964370519479212683524742570334079844003820263407062805983336196288416585123758987184909107385303660710519508883722249495011786333336831878802512337901090834722832320314740116882927925522926831988060426990163241762407434422487472569436698802775223386398674424579782528575610873650547784167220827942862176751998307962918805785895209148223468885775543749795406013360576274258269148409742052150743273975078120856489682933923403359289821581494090862296422139342765444168752604103952486914375265672940163686886339766390868170897537377092060646224399067618453099613055996680806811377802895622418225054775832702653502645867190313123888840496588511840618678874762967345906736246058743044567905211822734113099228834723520858033849189537695435301269868807867555562982449625394680293241969896866599508777336412539320651753176454062300092386416109767393577656429631055237612962690221138884423732321305388562490670023706362005338899428042668021452288294572831281867118907204440871345164125628130316190714308548100051199772011186961636476764901374416804765976009275824678532512384487384239258236850301672405407893656325680906655136447723491847760942780835589102631950763923454820865072373449118467408599908814161887608323195646398754355663635961720636089374518694735062715276651815512353987471985269153242163102345661418098315890159351359215022828173920171047303407464648695139371077352339601439904595765363908908994987086802924862046678767712201531834962939365742218094551792737838882915296015516728304911506469973447244174577951844342762934793419489388726408250675781709971569864210251300093055820651841716564373122202213935387843837474845513582829149961717855639163849524312030033218005365411181357442612853868588933903313078300666527455400751945398232595269678721346599572759819243935797005863482254584952771399911483050375011168446832327749816778655582228682280043393073568528159138003129521718218479068818427057605876270771924195365551202723018988786685643008096748667496819833056954995454443280737835411297446453224459876253828657633795208015473984779986334768158403128460336475968311853003459049024510719589714563096412497401743229268241941034947323856516428427251112080812260787281797723735949307129025403828629412441880551320379795334022193999246909552986792446584870082005791050405667690955533679279585281022945423769123801151842948970125518199608067835016520540464449150727893131188114432422642139766482441373705937981355520441317572631636882850502421988977495812421856440335672414129951051570672841204445282603101685650565731612511746775032463624387458646344120745561499037747861704404262892663285275724493792715997110003834104371027884029844343592766890104986666160914034455125731990000146256438388805553181904073411862253110471771068283481098825217376708218261629365741808638184144265517762564147117435312427097998425636363400252931806869883750932784002918904362861352476728681177845576013874528777960344252821638519881168226082109656660100005820622720498870413225590358278122101142017951819978816865576881063898126850500865184703263698924981529110824001630501527738096768377766692060181996890090440604662514563049625626693801411781291924065393541897949127900663457639583508625357971011182491721319360549176849284970226010585798884487728562417856852287278698247085882152588710711195066901491706139641067960010485528047160593392217600624857986047895077642362553102614815805049672337982004013630893583270059998657582215149014370628628433980720344882655859535535626292467774795945311817868213333296720979742478469090655472556250492939875307385437210312573255336751563250350847318908650169080327378944278235194698769743540530004902788793977480430321462740977955538436636620891151130144901982362128350242280113900051148093409669152983702193561213439072545762844111631438578674155576355364427227419263472068130243615354926831790585665166369368739173955428723480533352707645797500456919053619142049086200469500067005610327497573974929775703572279457426622898890241043487742214456952194079446948126564701124947714015283594133668394860643630238142345068480469096763812761397271182988013420552625313048320468263818053591459240046628762638491618445830059268948567267384848206065279465828553260777493869004103707746919128628387416197395267772417865149157336720739938900364481676185973268138933984926869617212881906257524575859314982972364521507991573991131218320702681226672088558209602041704354330211580591811981210863175601271767472205893539260067929073175492421866390217456802581473511725313472592276194184416657911881940457871479617622223766770664615704671583018670819718074575285383313968419049925622262138977110883073831760626593282536031855125098548463679082976139628991039382271974311249191661803038225916319800095486049902162350901375496865553763640087964894411347585567384097382950735204224549480195450709839686197809387671561463218777028689938911597721359328076943907177483180088614757362860958180211579223240163406258369757237740569506540127947364460952070800204859952089500807018112140602680750025893668990468092851364770389300327454108598739623924051395464365934183030222216651781675335236617184577571088838510833749093831287724078475409239791509293736037948755634603373587048538282256707615445391693661829678873102697841153231293385847096957190472659701164851995113928766399434338947178747757317001154626344008402453429717503006113865196301294617554076629790672585299148526110501621892286959915250750406957678134526138158829644758574585409107298989614882278983535682192657110381268813613145173887965931781011770781987758628887285797530800992453389526780793695491077622764565656092950891658508730017800844140006476512856727927189424367055649558686199783640999716599472414055201429611814786229263486283255876443612222721480912772916253180122829083555531788098432864286476019381446165545820486544657643875196986512799261360353286060737231849499667432637404533865604936177902519508327299687776226936889370500915090270703235616454476218401891400487078456623381720629501684229711472288735507963073526380472591188819214092169286056207303144533056296054862754169977358066501463274987623285632770757073008859971980168183101122268930726796219191327549123366308442443909080839345427417808429435765471782582258762378174813034462668199585308655841494714509430038734759789468083126393460575547564044060413810819891670858957655132983574455543233729133725544159429298045570324791595945879834306158199466087895138615732471097599812573078715643119294589625212334572744582268645443130822640873206390822631191942544827965814556142667618684009212511123608071378857643238548749231276832449762744090154472488146806002900858474698786087818982766330736131689115185196148118835693518694863751970604149645445748523854670153824283519767085075287488006999943298042239931491317656759924895171179642253483686108534918598715403751925610610482250384596862380567308068525215068374574064216790217817407511011717054032366653264005673685040421740188905134051502505897233579493014998620373365020461492723713320779857976429821223598460382804456133367377785287749297842621220602270272055587580528903120342656392126860101210526990614018228494435022612661443185872351224946237998310971556890083721344050062074168761280808634641646153622161226213924632505121478735281656715562389265007139651141567623466490201912531913781692946659640276080550466877433852014309047868770980288911096126040257282974014446673638916309489988259233460349667651938571889930629144853656521664665623540169570394432547121529358940088561845748730463451575847106610159716998446688144513337773612846387732890558210583712258239927152481984836652285021526600143890659754222525701027829362908102212143756773347796707950073726714916550247731909756136734930533014123968845938465765832073223598025915841612220741334402402407114376058264235849497244291478869094700218524362891313498720834104125593075430576929491934699560591353129889040899114405626350682468339155477634579840918968104334985472534258720870664791344142773846413926351830232224716789051510352898124968741335262199298563200921879338368232670529545599083290506037915133580060467422642070296975848116903448856631058261328376866607096533562263752169446101862968163520345841345639764686616482080390241820834956598269171004274818072000992949622310740987899741183788599301381309452496074197061571193839045939071030580801686723187315319893657166716187332001825754780531362665148359667189480927878668111495669981153172671875887681486000995101200304116121114128016897623393298379756602929941546898072000645633615904726157518596255580225944073153040987999238287126615217686095556306664376741578415197106557031938871834603303937482683608650422463916576218028333068850250917366491586368191157282550412422994126446884032768359185460659915638398113095710717131777761705382139081505187541672159744682372563671018768938879417188348862910212058326039138965225545108698121824315012132760541214023964010511761095193928538467766903805099134662787357223967471046351190995597296077940208032740096560501617148821643371599063479472863721288329967562598234465612660114886974417149660741870377267618492749470731613314531321879843781819779861535183544184836218571162319019483810975071149198358249333046779253079323227746295841160045018261665259678396967715408167671199358727468020938990949182479238225040952202584910391178022537882888740794752841548796456487482453867471912500154427900561727259860716512617150034282975797608674679162740652895918323556299276608566031179873337910888123997307054522313624595304250908321255642162500073161564772760519984722076106130365091963713879699495753254200501369398184648203548376961776502619141057034394595082411279207349629953633104230583650386762732683883657658847907949334735294550330445571933919510275198903479825821350229468251918806671998940187412225312639939965193043708956331071882490293612231756609570840650945508877817121169689343530293036833677621470449845712942486381412421624459245470428237109709550224410653169200145021969317237540423994032382031182919770934045079802148273687787745180991150516694266935245805380319396225786080257945754104324011936500828072829091738367543549808625295393139003007715441853954769065606580330076822429833878189687870164613228701326750182906992365383552355282072246065091223247327766544659018360426936767587056633824832698012998514709487808236756408804157280952913709248610590860644717700550150596054835061187778659011198904094268832995941874495817000868741334723671310444139645253313224008305427159392685456120412924929463719164556162644724193236483705683851269053664144693845477033672545798850938942701379386834467943398857140401397572846899748752564008320269791305571462569988787125296007945136721037797049866026849204987670747464724004497653978960121967760354622169260780213121262938684573954228419432141998342312986111671632200363499007775555126600814939593456968069758869479836802639568083328013043552170705760809197118360811828348339774767138170023466552030316281059600034509403231426260754564719297317005203296142817389908587155052231435676717043015452052290215770739244188712159730907499821505144209845194484983454957973771463602068827753673304208847444904414845534966386612512262193795688794462938308205138577562571069460456013514311734687211868691837317412842913929088789310454858353715515013904918481177095426928971905621611148883576453100177578953545424104124844506994302063410050462339726755641636304226805268746378747820287932012963072197591597949791875202120847759604550591629250942111222394958333970182831896278849745593432760439705645054628509908561704199944978590259652152210545224004964976770200092386295273074753009631409930605888069033109845716775534444387296410977394479592549885581151800259913043966326902550404650810738683115093044450168586228496664450142145882231695807150799826633066298028846961234356720718609066599534150297463822029648188380700540165903910518705516214524028224985367691423192327887661455935732584035335383778124188972295154193816958232892025949192119953578371283413319818344440391808320701695795612290714481171142769014898544248411796440664982350383320048618015621568222015806915795785722552404090080518022604733041035735616617408472859689028097668424073174654287211149221948642628452098232570227318193591765870474329561963484824296078416031339496326725928276310998811249731473012575537261443050388204900249557785078596239030592062059277469414747683000049311326160407401055708176564831004389644351435107194657399204915481159970104789479616334648209615174039633396105424793415422641067127757918726916943397862763755244412703970100572382694904283614996872783698906707850164946962167200731353677346255841125993540809078339377037739481090929036214492013611245390848712746099783062401876591068851202804579181688700654247126517746030616489629824193640834122394683425354609757354462176141082495658346142964740188916954682537178604496301575646302981992910969812014140697744873712007254470397507395141080186712649788231179589853111620469807097534481265342539440429176219716661565730516754303643979377932749674243175226024338448811581318772501640037204227741797685647775160914374938402461386304425764947898245466353853210194598540520565815975562082956053372719883270208997918128842826468605589101544366313038445439910910115661966900732655220059653113742055632981268472589978869322753803364385868345090987310928503924740276687849729247172421357256644531999398181512472655939858137909294368293802962906460421734442819029735147353176587765596562496240754515828788907237095516084889400960126416705440524831910542276898323157450680271782112488460428012927776017384948941702487285708140351828590433209407913138175448048824637598238045745737401243620806166320122032786008660837684895306657772869882328901978129914798813543143134874750628468547040138670283456754594673955507452459200195792574458232135107845195013009397130250623304556398732375566407251252989317027896474204272296936499133484499546467347544355564143718369471009624662592889954523096958533001171597256380535295802983173058705422883908700169133507588654493304680657585847576937031239336077734539040909290305291203766471257791723008904861543749817655429518074034800760660171181747743014293031358438691033326731013355784317953306646769702876974324706586738033909356662868324732271978325111093473038380962257809618973126694588891136303427169070988491212334379226409965979441768128892829329820091398779433372285167722541853892117664148770619061910422407314364535275687666804423996963791192028083544397848938954475659817433364722395464365071723906248174376012112643247515739875238499094308010220388253436690271196754341619938231682357814466282362496955764849179281628300997968390827393520387204218619618922348038008045462041952867896823821065071125239386990577014149882711059957579751075019550831859776045120822535631626345782833831663067430211964412152093258780709949719341795264172050938931877476890680674597970801285370159984159714195061439722241299438009252248230468254060511690569312633181639159186257239360444191997355090859994153334962771754066108545312535174470249261111790991548509042894381802917412773052845221987013034418601397044360979383524920871678068370513302943383262114337023494715569877085500114890267852849547602779024094960036656430126072982526283770216215604285797429826660712681650148850820081225156325924470518492697462233293845289922084584298193196546816256573673566360737573098301055478521571255087411296098497954500745702302143664013968188633329502925412032113847286554774664647200625991012768959113419158105759885717384185232317424894783928981871649116678877223058471021917201303323809355818099470920291912204823764939425415558574169977062627004849487979492354652939055541005215938031494959692317047212639891462967873998323924148311493011770251700708142431648511516320824039164365491632250435004759399144643953603789880633705379814992021947870627395148325213426427369326432947045033851791452020788742756133441069954339603991161346032407154836354124365390760897686993395947298578092805519983745877138950648006667155528569158758402361458511737710496492497925342631397465876289786656791688103837284367561797477029849841854419799724638896401930474185018558818939228752692744114064782412756825691227016243628366295739554600875435858900293672924357330809031650570696871146403084260422771447058480300014130700457928360027161244458393350349549725002842442270416083262334195947437257285746304265738165903343228195994081719902359087088508643367992542626040729004368974880354720337208462167583204689785001291617878929374387941074569480310303498333037829166330449817945009404787052067491378771974013462131776962897522853675430440410373700249912234066179941911813780938304737284949094268323067637597506333720221379920199533572188003939257470905913728540255040691718610637995953487345425149931106836151789121282097074996307109386638885212745578683393494221111420994234011604496267620033161991680429827407530044534148337923376082545782556805333579473047799830346798973449386573205805625797179383264748538919906628713124028857154722722181812985591968698165983198173689524726604875014760767509498571623657195314997738771934459970768207367683209502017754813401088135310556642111350032401886073914218214058029395159383529735701977064858300759608233637608350225394095491126421581662696418093621845570896354252221195495131704414976478505434100381893365800790470306537353645599304445547073078873483618055966212954371398226575551314654488694378984626325671101133863783476869546205861539519117617893182712950438505317242414125122474256324919254134494483807034638051420835737354541629023902133562558613043108566935731840478052663029020479160158513999279846721240062289436460814553107157968649623269194279316244325059411729147292585101092753001835669463239062962357668286778400035456250470361429383480335137913315246746086612769933664976889409615088458909087861413611617516029544856386793614848130338383622051312006354653973360308066290134407900029477817750375958919863465558655334305717293519887924006399693940633933555120663873108169822154567696620813400539829539005474734099435279418462645551863895601563251289968405631768382525708102945652903067722762264777538835198075414641838188220563386006210684300111816806032867634632189693497334620779957413676397522795644616825850298467803194120295328387158443248125427697313938815159466909756945148560427941703962956602412568531958446724217873097733387570811829258766489602032431078586648303483019966934775094360209974808975248621872930063380350601403117823970371617419845346356840915078402272049207355264555411638925578554631965044188574150018790935545771945795483088061718398215396080758561428692093832963062442526150872809860220855818329846838544527786839983557316450155314903148922919611933442717647089681716812059257892548677208637095819191902057319606697986266943943577831025408651359039426499566545524514872872642964312293003072238274808060687857314460136331573444073136885132414061917306264042166354543449774245877024489822281145947892162606163816990292463051867174711112125896309548261525028001402892006159057891459053080674430737381847849084995285397723644529093507638795855683543085121414905004972262523177057413373690424368981637051286174711776318858624065719274043554854514612571961054164114875869773617135191635579920455071018905784549342218092213394807299367475414463695801887561629603995484241457501547409697244464964976348756098420495110136331517151425915366845204966202005490306408437130260598582292799398160729525279077300338393694059783974265797027785381796613703684891820942413707902697199168876750268228768274518100579283584939236127950737768704598448104682112427840938755297704053582145848143125424524202230733935237730517944624341609144208761107683993235956160240168663069011920485507396332647297469014126914290632683683390450356360610543226514839161482542238667875019934970897854630895458029681871623120901406996948102779969168014451386652920706596904358271497771208461938494057285802188169297868113451168844741085825412443121873243284199233017142266250211153098221518512994916096599164737741552774145808346187817835443111550810755989237275521313674385626265245496833239023262882069346618989650271550431787962267563266997617305285214257810127254319602023504468593501432171063577865234438453585586214088187228157918812498946173221903510811945376818164858534094538876625123339716972796549875628445755350156046459437180997447352472572632185688712882341927948346438621142781905885981777666340012757012335928348651334645225052577805751737715950441860864485930771490628269043750871455599113431228282054574649272981661003633996816977525131915516995234697408926002162682790300174791211288394685108331080269671487711384407246664437659568956404857084818984935719592119581185328374700962035982675104646851634983500051142031384147585792386432732741738013178640088190558198405470408213751952433730828584706314668123752164571436549093178712125306930662767428888795677314040266198483234219300593505143017185432433346732358808521522386445454067759199464869190965522776934191008718595247996403322839932321533063324217932298699746337848441831846251307696223386170122240430001466901987843309949013530207853146384971394180984317089295317862226940557814170254665020216402539288893307707004114789785955092732996751179226234373223247561914163606544901614124487798738055473416432945467227900971365561885744128931586190369018863303193900908096234203433444669021854424399006050777004599434152577394551488219801568708867337213203083435207008814491606420996368203283492916983405398407418223621950811289694545679021056229078416700480890688270079227399760328668749009442207367069111899442476653973226234661903160466008088555695950302979139985701523524438444263024189116781984167943866583098601499614027835421993650046190752939922330697214435532602385151816185587137364182376605330511873576590881133420079754806677539673571238700529350468250249221114429538442408812997187409427484047172840010674619244638275208322408405536901291160205513731719174582230426935738638440823637372775241362570676212874877276868022936477096328441197583888810564252301756185670980660908538859062212679818287149397922211523958550529468253159094012835556859308318452068462979912754831365037998942161562705106541282606574474519241118647060477355762007064828965104692023754754282497540198857317811196814765433801112128698549275424430196966007339029709406945490280460297460750078758708948232354870620895388369813879254931738811499565797864547301912653741960246396486556999802656417045100755498253171799409691020424506939002620970468916072282546580745047805784029304158134757625225220837980255750698779863092727337406311711688224942209095611368237024681714021703123984436790463546796949348233515487570711496054082677286442762227857929107764976553949631374941727358200003397123070519734553692827823022717626745973951649181856257156023003425659892280295638037656539092433362226330799995349972485576390781990999984829145750915741646535193102075488835716330166178312705035607760424656732200079486185036294886536931075963475772825619733494229552595741517678773089741861452758161847210652966105027994736743916379763910001649055534724470387651776053674535234634888519846766525959179141132784623854958347316617733938942779742697381685221093169601126485423275416329842772955493498896418385778841571999339463692480961552452137005306503918076637474502028697167168529071940365587424526079724837686508326856930082228411707928784152125438088880319010673859938964480759981044740665545770058753202202559785480401756761863563403581949826752031711850845055994186445443015747932217231229364056487540301701487275255567135551805955479383416917793162722102267545930028611154352637643040758880175312628846942474236066694566621680610500727037333652324502232666267092501808036193820659527391912841741529492319565151093513693787605005726727422728105569315769723239796409283803202022523416471875909458566039085548933626967151566912114524724708918827977077102260448812711765472853463078252115064131519508533023689821739219278673533281543480254164664677004978146992916724183887277987823098707676606744775801988551388305529466501402718543117650001756328534493881501831860065054931880849733881169804858499871377288542595577866341593344626103666508200791925081533801741717782197883312611692292995038664816113240573782087611033798213928555041140722504350761341304344841854576816986753057109935507253733212053186802675625028643162367489656025263974686768778077889591763084398180540662008508773351867120319541345850036834282428466002976392352363957322422279427610384660253265144915960172984079413601293118672657676778987852709702362377524213170303488983481974681758936440276849548101129410514800984245310437661573824044356398822185791071191020946778963272563722115489226672831006874905639905682332669956489625129414791952059954455965451964619892634472842189876150600788079898574270704868632459385719192587863562976407869855091017446380751771673933752550817858525949461549373362029436601249261700551533436175289535016286768375770945775415813305281287772853932906023926443930224020076421893468012938012175107751814664547760333582365402689421324835620855845940592484252687667947801380425805381625304414346285962799554681169363645623062898087178628263840863793203477531280932862964054776124419758356190479028254253589685300875303179158330746745081558438185485906473372523752419669138361287437848524779506525446900403233890673918005141982385488256168717940367195690085291391203274637254582814885530790068007884462857789947309851346908996798671441671392928398672665729037810658088854169156206443166747745010246342658094446818163691525286086027050799442279099174494760590502386247106803524724467400544797663470358015422620305943853791310549994622780168695226746659084978531897465329172360990400594120072961147133934672785858396677951102601687813873242380084699484029061145114289292384128954440146136622767725561574404689916960697307183014493833714890091066384918912831771983088241593554304016693047879834929797045792118545120342180276730051782641173859348504817482491781071380309978588880198341186517432898608066030674306779415137624271505251975471251805384400270643188561380852302440469171827599086530268752515698832436747499920525832327132623516683483997774963644127097229318910904083550892418410018177065393115766704587652559636477799736528402518987577562016198962414914230545434341688477821543709463243418867872883665976112075350000816170878708780820761852809113844493053295225655304802423820500555170348348665072100001986495061955501419414261021937357539993376957282699305522894800091673623431787469709217610205274067514383837711367975298620684363257011797305280551806633459678883543350795094583149844108161704543569689586590442450928737560659521483098335372139037358802778284061440775266977336549487736956918676566770466419224781190646345594229372941782746982670526392600493383099806759426961803126922396201925879878554685540997153992746130372238169012176185077431915954802749461311762512933897526840243110502390935285376021982291093372402598096107662923396444850772234435794486809316534509728840794865511349726726417277674399895090311115216460355321915989785201703990288551998753868889352856528195509138774559034744908009112691632549594550293273021636451082039907501228638033674018741504340724825488183056315037566404817963783086583281530608958812795792908702650819077569215866085879146293146801181927030112321824414327767735361845010408157177554830905102695942158189608298904532810701071033890434730716044855414868218014263694445586650487633870464119372396619921263613989672402517490051812941967059841842885061594933804532595302747856765350055518372471265206403854399624837553694171964681216463759145514576608779121617456099088760258490538374041952239913768315327836766444089883921887951049253130918787862143468659127827195308421251595708518856583005907802703046167055130228752831108123618328174366979242757956664028176334430461845814856821004772669936877008998212603140006577037155356283251269451089266895560409530993675304136661690638234062951370582440960749335351128694485350506025537344366388715116661408399247577384511162015963975681732084786809754691168276654756307317791489843018720579975646105592790356404839947820728735046597262498080528379729582260768614909025515026487877333815977335624414774521505234911782928989843037080473169301693979259754109165624228963955117243086028694648343172193598450560449572416340273029461035789494779174899213308082823604879184004543113343116521359889335668197431383776261216334781034805493943160281549023008434142355751786611098895890608805500233098224475386897183217289544860779682064894301482280219070263348248329094037967357156627441670174471023092355760343503383289431489299622831827892743509810982854118841578705898577647161768710948757727014483600949286738910833298579800257319952681410721937891204367367880195557214692437622344919297690462811765715683115747858357303306341430962942233619537813098194219645593408278400631786928922615609215310767678500458476263133510372350284315000692275183956239495666336401556820385033949690376330061679531392882455816467512046121956921618205380031612572874264883064610892565049809932923171167038260973801031365390438694227131197276226848470389944909948031356088643964681903518063745047884499448479414383065358794178865833754690891652315452518826187584051665944872646525492560003305416992160519429037633124737478942456113191419916006767800214300353148529562507996578157817939804410931268336131699025980125018555987524198404441998443131478818219148123442795718910652001383890866798756413160135291573950023242392608808950524344204496643920337918792634096746541360882918621280810457190569238979613995512062893178140933540956655756886327099876655165119313958924961276436163139057499849861309609767264838923981043046237024003627482447029360225563433238688863888907666171201298344791430332730274472003443165419846721048885315423153998814538133745804017051335701244927145288456648776593515101011346114490720412381303934855891726276173328772313555218899269735462441183418160367953960479249906869504217476694038620534662100479188861224488628416029101390975282216698824747288092789123021336335120491047967502945435104676424925752859064797595172504058871083786043277326775494371743033085000382728993114063934176433909024989364096177027783373838029263937711409102064908399222223979109102212946501137071094325533366035203732491180688270469270969013199087874735605822619714973451123136053309564669191122971083339261112600913342603962829576157742883604699783787596874161491112389605897562453409939952271811426992781965580086727702092512549697345952422013997909723843558692906912419126365351925773203402556748670178769122578916689296719171524054342992569280155645086275099304573838267292550960056203321420351455981715257750111399583470095744579475167889460744499098072555325755550530360868156400194047557476002040905431908185323077403333812001353999617173368438772510973772445596668897461866721142632320946365983170929368573765081200609393745713213222282416262234538722829429654311602425736803755170980694680756702784619179909787958873654224727231767212208521700696704953869212430561348201541320421066044364546216665430114702192348166449886334442977442146550590363804495449819026109670165047371707368259000015078685868850868160957096245091449469367710964217151835575853573469978379481026531980794438599688457689429583843458620387742412126828266949761131856468444726584812079262568439159756972847702020744628289266464200212877583767659932924536750971313586651160936125446444066942060691709001440689750582388222141068787821709810468095716234683452683922089788990603831934229718327714536991162892970002278220458245968691463704764609166820583251058368053264057573820283520745815416409465331444417510694432506518455558713397144854255461034090911870764261469169382873813936172312129908923135168146291501758601728226312017861258278020067377964255351630344581105299610036531132841182547367278185425313986553924252707532784088248264096620610485187179791209206689360377626821036813733984474296596484036577831838244882258871134431930398223812676290382011470217858062147982177970000338140803251491657361995250672537508961699547916689509790278374981251888435371592132587470658921849408418683467921734425219845672386948806637228836264989898352163278210531923722741365981868809722223097344246085304803234248290643482624039568725900167913043475719867245734323790057733648046689326285077017563619841501643069791459707656437269412603246656572146690218949679627659510045658614630833280807728805191154554874620987328183180896630521975280703165405927253224806788449674433270703732553883879872789981663412991149301264574016249151239268859346139843509921891295386557862663095397505282682415619568412105293506923683731281708577988692019894952573804391865838784073023131601954107178337584837926711192388912960012318852308439703555104853475217302104539554323767029019234613221739153929716244788417271549511315894347693580581226440651280507481550998711449391890530765172502223723958674182975321955232620477747619734030761120159560110700332326793863121243810340493766072628574840978165612987467898637888808170350895004615603290664758863534947023633230656674018263641171948870458336441873542876830523613189164926960474068871781257488222261958779686200891131618245161484611675801438636864253400125680980361910506073226630425793932072678460499582332847720987179648954368547902953362113642572117050560050246740728123078832468161101815620941195735063718893350729886759663128448145756718300330911717447976711153681260265115471633109845420550968743793275686759972393748846225517746567940115719924537562502691016405084311008320786857604240029606492040662447409250459478112293641116002207487159600181431597939438486756740996150803347816764613827293989317991008976737246068118919939063496682307029363458240374291078324597993941009737313153049537238333436145398854589053506260320143357484327975537488499374145594548479425801454197427108806146676003626158903803709841207367665975365160289707767773141832607988862133463555017063871528572112947275636193463904048563150863663859510473236453371973711206177300274512105192578166307270454348516686437941370976282872193325942242924711100620674781648264627004554589614421853223888722856725437332271352745624921972603258237814463476300219778133356097277412861881763768425525029174960756611423553345114728354459223305109152239475127854363614650430152092143380715883136711933141208359569497526320962155523509138312298848346274164528907627817506875661594091478142992908982956438920197860805682082158555581316523549559376077570590349814647471403428010134067200119374220439677840673050946552064915376618080153891995939107886547791337410254029943839802891735619836528204276960554471203787659659748030096169648293037291836871006342598766824767840734508978928626386272683639397274107659724118849560355974882245284196368365145540374801035467320974971399064793870826115618526159744626962495100246425618199825455940728984777119295181794098509748802278852003823753182299935488868443070088453997752634785340435639407685689646775247381567873906560333064199560494852636972736549963381331311721032263918055605293425090821618969887163339886626078356508303906148958143629475043186923575222689164279532425593227667805425086658414086253045800715544045278800686659025533604654496678236580636091943054567812624265372439558897797775346998200641612073504422098166680042865211354955729160813815713599840826856006466651757177642628754031108913064902821846712508179135149027445826569915492669992111135302654715028031792240528426958082972212858676055656391198917812860604801980886180425113696037813267258315851287261560913121492722759535259864784832803331093940201990403966868580550804664020336397522774976753489845645004550549505049053301130528976297251894205206672224285663253395400242963092849343945168328115463045881576464048848713414076911977571293780704890913238904938891812528848313664148009528010789114088553791421614641418010536270416244961557707976510596332754520043438706087058915966433336237734118507306766721641813367969534744531060493885329830656805047041781449128405413742544301075824034733360352189941868125193929329052150189229837008318724401518010994771841673115389961563104190085499615950839110650292485413526090038081333647511647257409169293658272813059423671515834009737955443209408597655902084452241755356664030020536227530089413018172137675265358176404471314941422433401193445077071590332085894471370894299639087428947217737843103455739010241051232824782633800609427566008465163591591052199668111823290561419699717633481463195678339192268462944383027887654632670958504955962931151033484973500750802774436032815355821551169359557790851736371039731459310384706007819540447471677881038942005067331541833861705632161923436331486033862591122427084915028230219331888627023309355696992726378167708374820516924369114916425993694840724296419795613561419247375361164848695924668580636802661141209752216530273667883782579630583989391387041578700505289069138995962869533002157946453642915142036365980827771818233622162698636011967837804743654579624335747216872668342944878189330391071265522068666678009869595496437571134509807031835061344622614925487581215839697866885843231124193797573966614179925325513860173856177578455025129138415083199778029319943292367627874625412471305580132997310036500397160447885654447397113766472838094133136110694252250941525577179296682547989610455624126477608323962567914692708600659569884528220633845313808756951769651552238755055994744921756348113898656315925463585957909131933922844775498070307547738109714574516525793393985784316169833660136850647157732654617088563161319134482139013609150738031269827805169271882673703860011421132083719211057962871361433374658954524770124696605556484856786819595936373007967704787742898282567920173349280681638191488086843055947803932717064403102052806738872117211848450642162520284136949715476143183232816306333540071841715841960506641430079822750262342313168479825613039661224722900622097115547242884278086170194741001687675292829350180692765359490919030572118587405351663836382521338052401701088874437617237964570743017403088796998869737443366372629876589203523052664826997546766492788639946403861623893193528251317220557014701781033139167859958992511917185912774353709319081462182234248700317287709810489148369697181093692555270827318764908904906262074271974048634064869462893013283803524099522559797600279814152158962452330677122805110232488450002372771823517662425035088599684133840487111642735633813728532179818685449949596173593100271022440482254128358907515254900901375111309456969028662403341295767381499106638473279861430083407175717055486284658746598171511352334179150025807274682820559294215904035840983218100923142048395202459248098652708401932762825847871280088800699832509816568921196400436367086876760944768360986582572324131349406558057162469113560900610803050079907314361752394543494609539843640073077790047241433207302306307411281958910420123534142346023548639927224384697300979437031198331488238191108395743918705560064786810229487550054917014309366611207169127435540270731716162251186103930639198574657982951821692069649180053420667805023432775585001087900475957597508676989189481165016652175118524282545141530368850151060602843287655566915393210856091291729332276426692816424440060755263461585342246773905428627788897976895517188946980675981596082628876718519772444082147002218870702617752366272174901631333448571194921430585925892777218582617607443559078528575097433430879321960839644314730995049239777505515773107001005300960084458289862406268742449443955446051920710565140681752450655209996165917523317903144780559081378548812119818310566829417737415776029855706775441939257388773489185867551194984983123290405730149368718577634465045646299651345815118717419034980131696032260446522201634585108675780208123635191998196788446113267059995142003497036050795956948701570072388981386589829074218967046067624472666814149421556731785491933071071875663234236980514598162922161632645987571976962578215627267227704945015031229450499619485432930040092167874839463574573926288961911250871713116445770808199889308427040249059013626454274493692887955304700865558569001770688992189947821241475303679923887216870270698696618343626652836366308400207801047782164085764570342951012504955787141410467159753405811292911484844591562580167990752828704482690689259617263861595629005818447416452326548624781053533366906188616697946550048843218498354575948358339732578998848527043873387215472920586166542889348204512888505762415013705822693333239514635043315290667962408444990909103653508971293845599213263878374603827313650317859674864288848737632379211302915032351445093109715487410661613970768078873313532088641633846588677793571354252155988149753594481991909257935404678344130256244394787780013708425634514665895044256861631871741745423059371036470781065208021636062433300463221720512735825324130804751090467003139277218970350081331108363323213062948062577609312934582402015320038420788264645257242534556217137938192517383524509931284543905456724211895639402975363635002992497188466794194727350584286930741745350146844378692186920542727051732621526525309234761130051672088818148471820755041088915171687834819848270701127423326031539848895825801201250020121610949106533781075023848023797850400273333187029692272107580836704181970082497919074553929480500810808942529417090306109050222491585941197109449567908202483784477879613135844988935501974606861022982240933384091011718000377168199026805932951799505001362218832580157556701818570400396732670541416607297462059674061969547152382549188982391969497273256768833489588139937345367141871281082752579942834182369617062839156035338081902890085115171654605313343610227323343739939003041185764770712634075291701767229346231961712713636195614512910837665312238761791422221168733631225464141070308229484126275919159007586638512135484411588557216953043252993358868008306114118004198731605463402975287524916178517232278974477761522796656744356111849768277927389466697649461694333539083330805229243780182681319275755668087881237601319318486749747596621730185825959230300013703445682654102863802817483884946688119270641776180783872224867229485749069612678638907640181571144217119568659486871597665881456805075425806953715962079456084153720988131693500483631448298555912162645042996536517314480558577039126442594475906636118544130641189744372357073157114656018077999412777266884124958277061162984063343425902510803047944967424560747820849238371530205105770959389345869607609979955198658746662022456696705513217367474020835345465894195411153552126156918859737995442285157198293019214581165851921313966125635346321398515568405166022399623877534845580111067045388719788200763829198732464405534343406508535707988499205398579667258091657092290309734206305003138651617008353792493872141690134523650540427501011866102830358872375958172166719811165813838839577327718109908438061811142994252823967379180468200438607081872137439758763903031883925491205043389496374938056074516761514981724159924693098898722514099800424705089183136757141129377917570060128186352274168126918694475753443754661651326411526338229800676448146079184011586716313781070044715993768973389957883306924506650690237390376132453547656497546954728202532291473036798347941461659567778071897546586978658513863607045877291045078309547898464303816727167929706513982769496466344298309161279262699960096355005974803749738488389873237444187990136585456643250911592705875899136839623015259061697972000843424317760491440521610454980694787589967597789291224373521117635700424568806260042401485222404429676125188304490020934968981300947400299140627025854850732234900745268564720752330299529808482294763294415586212453936795618503669943158108628126130968201207134651417625955971257718291206408329816145011847082934220179038346776224683741825670796864911236331142801548527551329163938550486813133502008281612526020358525472748460291427075991675790523649283804933163926807191669349939008066351212360348922627442066232095703907091422134941754674586023790861010140011120353343379715430772127849013923997977547970042398305134504090931482616950710448762380572549954969269462694335328416786103086793956831884764302857219246662430128051142117325265020799168095733294783393202409519488204260033826697464529702778305690953876943912346763430101998241557392231266118321658403790915884235249261757207039808706809046447159840997813561266714799643209387184691784769490254487794482635212729895910628784367220959257546296754141229188081173706923118702356855790365463854910753641998604854121033626368870945509548115379069630391424108764438529613528844415886643581361752905155756371178233900640415224246272498124719446540791057528355877871753617164813648550237310761111236734833752385466210896630306163065326732484547576312535162029454892652895056852015527625307802312771920233619493026119298059166959060918500696466611336981184259294836496337064948760017297056364517927869608746294751887532221663096392263423654538590491905309108465868678519570569614908416260221381389152397468797379236590969457476691070173617176700230430184775662009682658521861463753614821792594743191379820397900400799192168092904394956696534519924673795523171283818670626327058162499746624122298298682347445963593726115296426203645043806600882771343938213635748937629979302660378479913254239115560511473888437759288631229062328924401920618632910929702739588022292884601448165886476664982319642610447075719932175692413645575513244207257535938283579316509955088706034350014718137006682601704731738726782431395474959594949193965857417574636611378653325466123985883838987254466065466009264352730343736344378695567440867091886419384934600510809358507278104441736202219915852483078692440619751186709851802955872683860352221346339013860994037323360668700026983125683656471654488090638694364807378124122576041502365143887609266972947646401922735546128268960533456321980878672620178120343051244067448801321461035655104798342876534443673925453132219788625390869726919436095477187356975494761393514825982579139919061385973272419319646472728357061047408100712380592924706091540127175827615461521772023334557575069512084813729474569828499849015897734006929366716295877171751569950316317953226116586694252635859746237690090329954174577514054181977349628326394848854088789342453002568903642253978134000158984640548142526177289970611827504603189496483985424202939225111855475349602677725594562118146911851088510116014309358080690291202815521533390514990784272907560883526433908260474161744214446715671798261691436449840100821483578346141712604873423157640212765605934297941346909291938304726940070552578624560033335001217113393213998489062137556893613984468338384575882141238621816661350004712773861696550797258522014804120030002664570590462566745082999404686627666593549168670895892083776534107234269455195147292687481934024612649664922323980599933384653410419686731193666792159614732836410292073718584270256390067840569149475682551443626970500756781381233727283192344828190185724390323284374108607062611226502575535393263472829136815311690569099271951638893731574670048904854558579577312648848833434544641111492283715778379242605396028794377199370589431195911189972998865345212342640047035511284754464509674310962033223108946984547353130061229709364499774421885635038615482840274584898778026988196995921661387958257579173635422694872046400975395345882273066447188991350152803458704126735111414625956712283313897350779286992915967875621597061715890067041685524573168193964637392488811247861421111297105028558506380899513835352661982122926042832274568328155965038760145425341800608864685892041251337140533666114483626686406507138133324000466645939581803222523287476567520369338101223775482345828026604791314612845137415201254262214450067706215492803818471229424035846466181627428712039064336301918980166867763513988297342645801309600868597109637871862482200910945213262298901302832641460282478814638415119251352598742721649033230943671916893055798038441340069737618279043483789702023589245602966879392320629950364183794962779621265873196561197242137055128935734061591581894851468614330709545283317722185402144999314614047578794676419418999604684744799080760353506801758477705354719205042691678034876304242968444098854263800262830072972052477610163164207966738657672053910555385956589216648753462489740769319684628780191226929248644434248716495517326309387271245011120268501808804933315254074574553696043200077209595926986109097046902708071143417361001063324180512092234060738673521414893667913195999294683100986757774786143926403933029073854833017148584778760556149783027860770167625850779355388836352436277532060067316842917720054485879114029218420475193975458807230586062601356210964190120152853275565777052418875907815336746077399941611286817434782071246432468604650362685305476399112332507553050680355707844183339760944435516797088206743028687124278463999425815803849397299468140394015965699458160644371638540824962681197728669351939992991746636983902916582081627322102723327605067417834139143708021273998820834576449473674094796129542043034716917995213870850367488732779637664740510848437273057147503042390033925552246791494929855106888156525379435975912603634530731520658544582171021028220738699756967065640742581141717400217465400686711955189873343864344869559480578459872689052377033422958085266460111331623941742516109535753183996489829338274090656366435336130119623524646696135599521248756923991250700763032385654834808203136080783034928451237118283529029028296879538590673351956074258183916323450245945626336350512393093017833356791838973344487455726868989439636120657134326642376927021757515928383162789320094133050455933920308855169341311000551456067544216800885345256638553044523696181955665669681652456572881425008672568748924420272279482400590762921345038751196705002239282537180455600615409295367303257509077374245475706296637339177569144526901232603342737686675440874881791295933421748460096747373974841196136551399220227389548690714118252350177639890959622563625793624536792579499687307437353262226841182502675102823946030385001332830762619603046045875779247571562539565858171736333784984297807677225918683457388720245242744186619401000069369595402399478070270094372872254233557369556221629577940753961875355437517736923334149478032230760709744823625407502669049943665112356804592800548579665029221001321931959193580646624267906197764972759132256463363906652731603266518730217094707333325858600123547637449504114825617363588534095405127589439600737324007522247656421918789915684802702001451084643856479187523945386537205153465848589196704630168589494083136995504862687918049419820072905037785243757569934965882857254109458295492435137278157784801232277602647777303273387619587882397323346156159997414326260467546087412680579700921333994056883969057931351933679322433702632093702847753910528351348688170762376534648298568936941758409166620444912308996526080217036018443412852620440565922970275898218926627916282082733401824137512389810190233709562072621700586902116872147914729109409649249405240693564364750979648039800036158470259291156293432369478288058163369476878259009752674146479177661722740849208865946379945572242358351543938374785212815033052337742563309036473603367194325805158125765896344046544078269936083726247940590443044628706386546694368486405029316791758222034047274702963801489751596069663494272831000027701181191511640877612711111917611086477875777798750934707469760827718017939692104314784532469119588234855472872012019831636998453056700588745739986568814990698006958990963426140293001876307824552435252827528016173250814677663633527796897796965247891183997320403257706677170905904366907138745771192804478994612583955554757953333232056258828726402711104378030623838925415720968746973264149881187615753822764260350392312729747079365779410265657151881897922966903054517158382343711955175381989136412315830875303496119142091411825912664835083682220242799313557645142021618761326115108459357773062322313855455836467228860098833924348904586527765013494780565886672631833278295564228262772167924839512986872521763542829808852059049277044734561155020968552915468814207438939653965826138439073807519019317731001569962267924191099468894491881724093842994410427311248414639189558580500867100630011721829968603465191332777382610657313841073540725503867766406856318835575755648448356473544494002482311676558715053944418467454282827800706012185645810097899935016550993357656805765839715404116797034965284689092549368101410055018330421827490644906142487919625988877127645981295954887564690914206243700475246581726489250472187915960245916360377214814899403491237598144607723522949286979690431497380122273285586223013636872497182923923628614868073532965493748491308891859057577297053813751751683560342349215426061975619183295682512892343438060258799704657338677739550259024090684053089528870075715492764071535440474281451128817241863649982244727038105124645539158950659111491079745070699577027772521048410967505466767660782016894452732693046642999446532055994981766088637544693598143005464738868198783048983717689488711813463729916971468026875586347961395195919114476314068035343007368703655173478216671335312603739059550767035476082531991565386743699935480157517723141593487004340870870794706076624442014326601787016249336771289653976349919216591095633621321046052780679866816607679090367214777512335089026708918438154637968634120747678227684987216166963924028141671256916115979506722671280278483599761518905224097365514810537313806822825672970347851034897970649084370941414728882890240195936056595580220788063104354231655933962210853286312089732524187327356044643413282543896797255570236015435279781626570014753998632974606611397097008025458125857621951807560275836353632233680495013180189359509086907369781467228782599807408619118158749989450002469439011698351738512549083310043656515833497215194209654694147024491920058939063114391493493231222619931531785868419857312543691864941148409505089891069246112389618069988195724012310778158539814614288973773383469209014179482658394705383362000507224238887547381582706153757696443692669856688936166124969308478362731416100850684418275064372643766387450319603989501095199975115119728430880630294314681680711867004035505276137648968627721161214102329141217595451566510257045341835316674818336448857358986902987859767860986604843598838437445429267741261968537280589631057503568535760238827062835443109521062821700092243201867443766380017044627704689202109418320453892985615800438088524441211484622728812949762620660582676260909947081542353138241508383686355818736594590079432333123274376159318347373245605225881059327291473947536813230849213145154266013839252074940546139852621610118681130783215721769493812560727960577665807644894210705344240652549378401016720593455289906234666613241718680763297710599784624152959825274353861569873634690617206289708911706257645174821492965042812245647658104743501571475960886511311068506725551935566538114790418983811878736405742366382332719123334448494549805731633662609303191476433983889246123615206570921709096744425969614810880080720477817863259076372863988714509769126810876575983289085295464855576031866695253784628188679944455546620064020357458340016941233960513772005906120759848086610476189797591576930175132927940524698031210630151281932014638522758593944346702544042753634274756602364232598378408136093837656667362373292128914680093189259178167312309097991181012934536026506764993286537184164451770565169061628245562949262136809781175150082465524265120189202069540573520096875362075908987688789975610116419293246183121123642234987329475861586926300848964270759749525126721363926250724972560555258247897876928146617717783282065727363723675613014763721519491797347055470912164762542426423154389339978043617508845562965961003208971194723801082631868212533641361248309263498863836848230466312369365812038159711904092235737375921389253896108705058454669311222362745016217583370457042942592058114411865400939394422037457179168171665078230758687344932853490682542704171640762316281003154028251094633639088687993126110720816435435040107031509888102628789251568147263828169855108887767976223369581586954404333592032903941601266062556394520097450391674407615522413668477535459876648449477321529640966935337374880395275274389193561723831803283558405986419971336451454690789615455235352511278346402630339301442601037161445966369610355126081485308918420827656811197558380869298019135845433013015049735060600802594225105057370636940925306451221670938669597942922143627565696000505168708133472170645787182498947851958919663137355072352029738524587807849601680727696333251619483045817014675148253419372826906000291029290604570803439608570688528479993200510387509674698423333399628157441924313128439773066975224230856517029400484722920535733926905613023363130598666087419391342150020396804779867598980174203481838738918952177139342072004615718561869107013102352735128807859186110639873538985268620968679134834268188966314062850388627522759139113605845412218107050079767879930638673994276335719446901722275997448526532951279318646168623642744684638349709449984644682344237202182165136823925670508166195305381378015616583448685028385397863358305986278811183992047646529467442760126021402293375334159370546845858843345513371506510927451922845100707146382448730247375528200981316505765390013643755138112856261655905621911204833307896732595252351890098098820750880995903757161464792906698020111450728616472439400576882627780269623991340700114038286534860237235830484839285897839326611880932445981843842877225993354240006877827884116218889946860005511925619833941197471197542939599587466341261265912215646544377586840298066584391444643226420387060966677937490923231099944917257424751799980019842410772991439371500860367731474692449539736394613662849990898754091749985853925201316689533629128226733410929015882769960388242349516471574332924090227422449523641785904407149100222885396165456877125748563094511368099840767579700932345899232640224621275259259819907653290905607434932132288728228260225575803631431001626077440030825964768355862963039938661634427166712099048880157491479865304420733378676974815577486232801518997241876565153553750011443747524243699319803607394114327560338582570241326760422173884358081982710093807215200508479030748588868615892141484389510767230849569206988524822125376004229297136444435640238254795528390993979402430211083878334990168318581561054419654568753355344409055995843329670653339402721189733191745692233017279972889679766986748075259644082442815862098583167211587020904752456584456407117603550518239824339308035248418476686200987499551440221543686041904878782845435482113199661722209743380173374657941124169921285457100130019670127266664989472364160559127562756778524534127866006753414123438830157748987119878873737282373957162683999034468448188530564418546734520085429511894996684251267280357041633702244479244896105907234414052282207477064782817885333021190315138442974740614349878832690474713907006671456801523960741837812591599832202158331576326432965749189489723655832712112486042113538190831575345081651932198231046547356615941936932974868756849901377901952472120937348072613335310736898018606256682857748307572023922598290695030784979386721367362389850294200159765907564686024287985180780415269399517877780687681844386198098458944348382435587359562946439166295023476272342487516533231236739335767708289500003809656039872718602716034705010634986231062839020494097242910350308742444990477402697571523250318279606715919329597489871654415534465217087453883577847542860184805434743145551855668526149564182734223027310383266617597397202459160494330226022214071855537868462659258511600345029883571827303326505636801164057194312359578539056443848657944786540657684710613582015005938408944323198138727988755635442887299421536475544555208224046293670155272486230695684008313858655830614891822577833936831550288000467293287301039349850571186855938126633904013971787683556733788750273871876423045007108412664311159253734887457314892685995734884114852856712261998113332386223686568269909978832805414268105530496013070411534998191392025130288268377274615052818087479612539089863728428833050794542191380370718335014448045415749143520190703160275292159226211144176145132672920290012975334208393561253064560554808702038909709905329381787116517958088257640794768241100195296599709279981181212844176192502457316186003982119012360536081520613744394431397295074333322753684114886098604603527464273313692206451012419154058559238635705356242143635820691154751275872142871788204800535132377609669828813861292612396176284328362571565328914938816020646376586372709388024223759964216263336187545562027483977014955226261230507783247617391645385999233001786278632002846027026438570286707483583400651642254599315977366112865203841756545628014401716852580902497741984731872150374835092355167848306422273209647929788189022292386351615235501985342155804850348330918930643234585096907292259065034241324383394958023796209746599426507418376078641653539905852020195014685733113333182689191107501824844208109168345944159149913159393503986958302590659660129306433322211086079240950065617330855938138742966178717109865827756113380210751900950495446116496901802458684353271924357963517201156860968856812118194021162235089212305841836661882121111215167409120113507041909118326674380689558313939885726887737477977510064588293493982537123531063010329614078016412324842206683335337247063507700252605626326568480225739309931466048640602683479654228898337057483181603742799157969028558119844991965448702813598663763295956880301771998397890235145165549324651954338040578759367151935816516776366871915353659250869549305137898250338371620874302554056006854278170553677400942127480034057285294747457617241458708459653267908423807461998776413629166234137760475211545750425620842774585820993859513127808239560837392089216014596671557463162501441868943275879657722671923743697361152549117581032696315927072801196900478623683314364827260570482989784754799810577542905853861878681164324416614662703898027983009409724378423590610760987787922981451400210393560375579102106523806348775790900605876807734749628796621742646623760781613717555690079821076234320183862034174756936418285318503281858956755498430563939115610863211765951596583857693949771310988262060462749212956846885967923706630005605258056598369621892995469309411737215285179393662630032029949664858861789741354518229659098096426588061456060324553354818318825709377142928205848228508002079475422222522279184720050507133596149576131406170495836641766142134526634966644487235761407630355201030195205229381256982675412117112509824883826668551631631888764072888799688955095040685750582180345302310925992869932774599569280677959237370756232004271527216463078697865471036690494964410800654366037435342268815457274140756838289348715399310893758289783120366664883658375821707527566045160515144096631821030552706697609783671430316348037321609509084858372541881148977013336467377576957399046169842062933506542405394759036217041870522452049147618597713381828367074324567676135130348247909064753547068748456166850397644176335847028883843813459428876804018676833787970117595669626666599496298626724409854263640717098394941312732783334945053388862978693359566967441550681028277981202116057526310624225756607640038207756600317306041026090838775658906236440333336293865930093113656628210193531761098028841014446621442781052104004708108185115281613566410589862181039230824382951640890355531491458273991709985541283588256039947252455258849698954349886934978355599607740727684899819958395491703818414127936182981056440704943525144306627158995771477828988171208775586694739910941368766502995752562060720469273947035310110398039785831530017727238552241330745696007263480364689479024827634848828810813623115861727974241381519589986789677209825498600845374655139379401732264653015175165964321849686890986771813689471886998737333060805804186792405924609665012904873319025928210127652573217861886130508956008369800942844439642263148333683507733247040645915229051458499045523464865421779631091339813630882820950505988268846190610456010593886834204476149740483000113059053806839060104780489421400586745905177660839595654041280774369800876230836575974270223911418550887592915955046856606062745112358406812620758348732905690808840591254304690690325912994555668216423140521097611054155744307518307415009401164493619276957836590122830513782364372034955119969034537314477084153011184203118903803196782139093554630102267539667209330652801935183214818701216064806719604486419072674505871399791636961438889908572575624504014772476095950219659934635330654530356544649742945954532929523611773723183686804138679480383307791135784309824053339236582868803432084479692391897233750794404404154428282427485362916777568759991557565453956996350143010981724024251498108426888907500627237489782752880258949486856546354472801865235183978292783384714761326636519533340409764299085081772262983328140818501954272377417616144401041295510452465679025275433803380678783303418731877441072965627507655731188026826872172291348574741923299973818502988453376392571806537239936647815541852165540030563197926101260765684593445841670055768511709740534981556522209104946042712147699000730588246932551457320848952678094991318417586213678723407551362057098155068540746287072333079123072462124243110519409468951739225569390706812275861829476991601671726730672879225715035994039371323882079923076545519179283347660637803327088282502163467099413213449105434224650658549436502513844579163309616304437463557789858933267784713145839067544496166645645343229812658395069008447218568765192425074567386319102001135894666265705825585677231992951156732550894378867159166449614154668673889801116703567694903505452757628607472729615370460062573130321281770854297524784072634117681850890928975578250003685838087777306639700539345750279934218744632746668611418919691030458222742404556847125880045166187764548192122945254378392304619517419502497290222460878268814670221774400628295161914132673026159452020856970778149660107347005904901302487915400052082665616842483475391040256154911499112049808221989975789293806562630788868440550984990632125024228566282398748502593461178359452051718095919763927605984551186082930783283062228115551099688622033945444041664655242481821338456420209907201958033079342531944206113438519904399951853115030289239034459110240828587757270061849116715214923961816237918772471128498813949906559199716772463094976985133708719689356059452785661838128457073863695376461339577776350540769327814348097020918963866962220493515382438579438776755132133132041651344351525967378852598088889505965769761221770350290699956098079479965037603234023829937316383997450093103629521605740933993713899534287942187249783813549714674994916161511813500499444183311236289952675761551017516902354834254731205223367796792363019929767292552368718851028223328293865951371439948881037930758452424931346738917316361126839418793262961423566392765160826301481795776180302587778090592219499320297481293555049505761204107519098904406888158930685313652885758031448433220582152891867405437817060734324687342377808882341380291613600366813257158417894233357557463150148421100409738773394660076887491643918201722984620858219163471368919304961927151336761448169293434968520496904850071886288742022094879560864451022870578146433912205028806375462049841676682022485646890783798104600687420206888439641414029521650673008789887096619994354158674556342824837268640822920218779238195125695676556155907073592618776387165332692388975548728490715388956729562830242398715687947724813066568368576074098084894833747442692143665294153109628791460400451170896466625953762622082977733153594181975997365844125162987827213223854851979882565477780124184725061887775947585370238125917527843279242114766897708248280652016177178216724609545352289941144203102456245533050272991141426380907189064246635312655679752972281499998175614201189923336202629676313216700630204406784840727549048855856952904200322004990686152660292185554682564011491852911412609089453299255448252387789882659291306536378664261806686612588826238455206285733859898591859719453996375475670054992550930838620310475300681855721828892742993817469208470973444152924146120911444930612188638020167840993669746124627327498779833940540446609985342131840701824277884069486612298998543259013331881299371764914930784920635012565698659168001590609706023461419517501223610641666705292328579847808645993995418376744358127350887206921137952472221246764490262522335964652390973258037634050273461225755237719993536074314698765722949510788671972973344177198673402783288332001142244718660026918408302334072041401985801802005822521152220004695138362356774899359676597203899616887024583363268999596220359468722531078879579287133996163690586222905504785724358947236981015345223035397453832990666606335867982456728916127780259653570946770296964194745230956278111031088550077647477621073137054461560419436784101537869775901894917713063095652028454483178760484584513413716391346659587418394938760305030263769696085357017162958855097895931976828136666290042074568263376455818288902457463604117362350082357149979396718844433762471357287728949352999791001415516937867467877386467315688175593945460056039611800088542656797418744289389814223345467763192959070452204234713078490370770796464559055374015582268227863359591112994674196147721422400827022823136398151465584092073583823135618859797349202541683903838837310708456940710141124086897093240789458484012474525672771132734497135442652698845712941509818166692563898354643365122934848537161056956111981786499721493871630163764765691418183884623129273386007474105487847420999589296515794975991120884796131453110184673916574842054742402500845848120776170793054770026138788766932601825978834961525502018755601097597539979469673554321401982235203242340257352016962316465774626587039452502120031968950780572497784865146286381116046838920867411460194951517861158250654517567205284349755786864695487640796121423226440575181278661554261633165309098156288340199449510946085849044400259315787538508162578561716453563367496642401696594168872968034401318766885299107686995931136798350265304029720692175131237620508759924027639090836103168827530815018368311578487878686805874477868197822312500127223859765733767684995425311872818171988979954875012378420141140232285639925190401340309319390937014072110187250831007564970397366155526930028175903121799961450670287156437988658684698945595739830670167040353538743425287598159921128067983295754070387294085260595572267933463369414709448583838351648226745511933294789979417325293881184374864292573624274131433300213545702113820393380783889206315537428497518707319254568374316004530634676469317892260649695166093358307962391350778917462571886377641111456691688901897236712897109568252374146867902388626297034516525669761178236141181389672510110697051779774423713680307819496018760730832055648448135585268190453955811262329586468842439819889800585350991352134968344207328193674912351265500558021645387868621040448119064074199004705798061363897614413392864305221756255311781768797446235391370936565987833650520473006157605171460264093529478798280748433378468826776031615816603251194268767471117999520989840297002905962473250340914465034992077269885807211323391412666054821712160442250007609750580105908268010276880850404039983836879220171059955182234651590326902028067858967872856594993910432091782468718330649607003867712060267939874444981349651557660559433920160604870206501624387446781299318352430983706253667062953115639453536729951386215078240163328490200547411499521183524836922369840879975992813274204715120472379280459253010321153025689252534206048628619090874041551382811347306192409369179809533703565273012746076158781111703056177202345582559445028616929992186513600056264531564009209660776863888444476784333046901264226145147458546264307097487819666077954935961138650677875698261129212385054503945954795577228236672106644522927255932118623441141761043496248083985731930079837555096325372878606246272390645890305247459306808980815371173923834751327242694158041816393936865838995006654966515956415856631865825588101100500585663272287377125688868127044564986571079576709990225742692706490910687680681779414430771318165341263844821530212933608376076092302041956773335223248952060935097564604002910604687349873881932606192644082402676029418374888988763079613831866599331398923240855620753099630654028401829363987423540003252827189863483770034406057082078993937472523185063009280002896086781099645226711471416713853868303573775990523679389971041361016094846309577428144949358657297152377597713546554394743266788601247832211212803651248798528054385678658436366433463809728867443212542269773515172193229665965258581683484638383713267620419046382368912265392528057088456254886671929383139474104854946482975792951281922914244982507939725144273660389756378478279674461564524256611779278132405210608732231054636484271870251270256344897286979355289269671505635682951392199552067875215794679508707715363695128246057475305739710988656999799479778789959370879011096049267943721309523630262825338005672534917273183525237701273213278111040385422504965561135965559634411170906723066777766749703572678185598719026055845820086408485559948944223187678727862322759588004313566478402046321118293395728201884221592570552217778855659551767571623720457427104986359903862834948511961631012293254947577062576307071458411683499073464922378799586134181813170614609362558362711162925373393526741114042220005452714429764853511874612497024452016080847256017840550279447267700492210564869107176106517390847833777847149213371103951599642246104728623716301285094704869797238723959219094663578516769154831607051531296199807425149838012945361250862284020659685104979510740257478674653444253694020074612152789237614897627819064057837370735232432685507137579174115677287314476011717636416506757035711570270868952533843897617878657240256542617992916414283406961344043975399231476588301453576568293291340309275442697517821812164616374845308499769577585414625226985256296908821262056200249807215103104408056189506677445084850619935986017034769603302575046945813019040319506914979839172917640458340738040821153055353677592902746122903819489831203210338261954044081574103191383291282672528857583580979012925608473375550232688366919494954655330391831520435358193303064840900771362866807297069817530448943524526203316687465779908759042701602677324773056399848113432165833405485836534423479620955487485507210862752060831683786825289146021897873828659548727320816095009350404789473933664769947821599190762721966409145181971969019685962520149581287075044334785412059388952705346029723711027346922758965322848308539037965664072538077304762308014618876039349208982992598716695115330261159013443110476956396767023066880938996416591218659278625760449059021744733453849583883983247961620892416907588042040500060584686186532356868958870524822865881486868024674823491721409321592945224328663797067133776815960613854187623385109529967694619801466586946011203076788579921316265837348427433496174517748771283282684420980983594175524782456652889057495224228010596774020719693621689331207308857971670260609669467779324839413808429064335638964128037238806163945215043322688388695857166705896032925045311762908581781658068020875435897807627388855837615361957353148104932936958928468903543770944371605594647075320044110065101170143551378425225993972192507268068474655943555595610338140679018701044467395383510389538810749222314153967351104988399709438443087486377730897314060029118807358011658345686169930665937013035022656488801258903454781281930966735519401642210580776457878718423140560251457363171517445753636828726940130073169054133293566442560074103148043611575725562807874619753774376383605458289441066980618697711334762510351602965223509360097906610806281813910477148268893249548200462495300146189926127226273628852653637910962741757126988175788493103996908377717567218604798916829096393295849852945112130930538677822414622197367089838742781716153384280501983201392789274418622918630271710594486015774229660907051299455576843004458415469254147117097954868645237856016048421104302633522635090728738685942759418935196540757325419246847339957514794934977768312145101246350114249731023738547559006074978322427505419742501573783771785577526231917971983861364150084750212245638476450029039434926327304223115670951367981163337204745085455194325785732712435563956265676739692517251161588137832300296259583081885459818658698014392085117344251563036945963465984995380578536036921148815594944541029378606138321192939875426120546787102688513995985400986675485042677214813527552744515151709928969820877342979653768094981403197325741048596408681599818047427985659224711285440721542964248620717869399435954428559323101895125200476877972105028014878754581117141719576545622342240398638002763305132483733171959820376493249065771211895506975804574165095700331624841912286854413010000243263785810674462175638098374104481319223920105295965871359340337561634198706581315679311023184801751323273345437252407694120006162436749427095072279750165236157700135058915050951728290600156568348306130490727242587881198480547701569048572238764807520765693317943706623317835074799151213967496572278858175175620275315726153891990272253942085544167297753856883337323804447037967722955195560719203309056552741960630166577136773720247229095796146001334108999878807000845851046201544377471275518606115287375456530861564913925733888989003735356717516667900089705808441216582442881279028545466695190346277300732639514100839243141347232556235357393555988511171913264517333998488674610197841648613703463635127799658789071732143054365510886540121411350179596740052731598490588719473640150837625502000951211874923827440840891904718031813641218049240563036474260654829034607517875611698941551443445462208651552549846440038210165878518626093162764030763263201577708502857135140431941027849025615632425689815593223297390829716064793593160942463464715059812847849593284470368747092284650438543576809427714078206360279700146359217822646463497575108839955335993389644395172037464487977513498403919595401419278394652601836904947951327679545433223198796785938485228908356844816285622879664026044519409776204612832194299963577637710560572417537647217839875066805400048583943122897523819586736218057592441003314898304280400310543049418534663586440327586371948499833069985517923883762013735819312254172263153856756810756376064469971855234975526939363193615949129663866556158558971028864445511356877094581561890346364046904260207541818731630829988717581298170926669047135845371723116293045475092785392144858783231935887023178513875374383230297978669770511591525604974913586005881637194688423837275031440729081831713847828732386854395098632874572131320997332083427407236983695068308290631443446153969063241967352405802721455566390706104296515389850211360797395701745828984412626709180672253503137391075904629982355800598880481659610683501728542747545013494879654728438316824175804170220002499599571524390664911483344153643152648061501170641691362502812317225326933201711690704651564891612959305176176450305729605151766498614809822077756564003145466840316853950468992608370148962838983632264336010944840417695300280865846470483216904623856160072907312823568351012703658760670357331549824346585597094217146150756490964720678593605125580791623137250798700811672392462427994560449110113547864208491049286208670957637733075499582649559799110518437914571607658587173048775399663708105794188498723883417526564127092502038929636481179571307207489737249200438276748434680097158869667700926364361528167617521180687148408200832512064419992279399234572451785689677072476597966481368591573705173071447522671334724114538551213256023446602965405708905730630572875904032805330668035803950606985814655565546885807485860422868080774536509517096424394462360240432099354698487416523099538549629648925362049445033024311211335303588684205242405539072667496940319074091265909630450034328648443918730345570119345321110556832722146725161022916749819262032604156909376277732385210738506237361831217468901002387079788134578719695345499983174126074083887206216125627190788858351376363784667719681728244445902686266330405118278519953567519841399245126024985931732046265617257755982592320612189949618170130618277418465391240932213352828887705548339637432928473490134004478050406705329880787479115043955837155638359394216602144652304231339463369310682421529110355794377409008094814501264721823788672628383457060293240058588326654855327121070495246856036587687902931242022977288343699921381180537572005185235512427329831781677848544388406144769416724119505961719416009160250066207599649242414996876678967110036834697944637413457268202034472286020210060144540227082336021816240944076295252855167191811229950840930816011319553960064319836764896816813322319744101611162050029042163698558690329087456752276503727123734035243227491547985643643061488899737101524043163620534459953363124324824613849294688688986068203592307265995859891696517062751032944084874239621552569563662340046358235088443507589925807867182071788066232706712562655052941735484962543090638584681763489119377941295724514114234948049115048441151982675758578788811474163656344873329581299443855016795986422816038596534442235213364979099252901119515821768186278536538823834914803645251975922333822609022913151270137861950885716561870382376281928105605126058187445154429434870854761832968011436212168165120451945147727897003155872848480246255326405070307573063081414140675534137749645625141244477192069261429654015044853903822950553358285897167013607056923138591372390996050574804912839678921711679389545870458006151345467666948875383769760958870426146722926060618458453307719486647269005577272108417104521804213326209511944137553273386281791871079122790181493316871307698045594666974557285846331971793021342745745284407428021279601792282119803044805810295458926546749777442149677449638969395586358769826687676829796597786726658060560832996983101475047034282966646146374028709113988268161152924715763598517818066292153502700132564897932293597047950004160859693465403965146594600222435637993023115128032432113349371068792505005643260493824981275718653764743460962598704490810079952984052205299872234764606163310074862407910985217039926788421903312712497218969101791427533937964707881516296113855573548311664374634495856464225509971126895292799731083691869152540703868371389272863752243422402700826473059716253743757308611125639850935270902471224198401114852129436756708234154423485790545528015915146845123194330959074108221766213015425585266153050415813242876553013992463895830857196973991184566079104959463093412511186165483565220668085705325688460450503315800347758375044987050832524270166484103622748354554885328152381831802276783247748984264316136557695894177729395428338745112369984380509836918047465467053148430072909500225575285129636134097598331706904076660179140298616856499830845406107527583822176069316228233509749337884906630936877455212701468259875394864737727032793766387118524036725893764053690844619661949192941075722601445133133413966078767376270102503903111747745922101013507370377092265772531489077966246479710962027189824142179171137853945399683681187557484972304234314960662265734525431736591677763718165322151257799668446258428379202044295032580485692764603846103800344791055082181296585508316593587085074846187184862467261057232918722658363046771551173844824498614744327754909484280736535801913725112422510121933276873819642466790796624446908584778117763437922676784685479786445071418800214380932899344741452500001181925255706055333478038112186389779873072930139924214727110040032066192359274230015048933652361903621910169567895531523182982104127416186888154568859430120593811461214933040329582613435182689928211089088118394665365311261726424720941482872498176331228746577765426011772266577325796169656523868555855220466463958832586263441932805307859516054042287597258109841458806468955880217358917310426173100717160708736682010716084066036246530976968402224582032657695432134196646121581332106147508194240586392497600704981467360203563290485181807923854787832031600350488194550667356536270847497436403181581110444832102942892828867251929024449906153396719337837748094082033744084906291971274876637683179220416872143560059550621787475093268037084833577779397603104146672393750557429179824935912152095233549511561809618713627710034440559019727999455487073098079581319011543358998502313436582606121581722835532700132066193705941659069814590613113910886523075223924770188638096068147600291534259825480684705105947000058834062144264034283636211261787443698058245386958240147123416377742169360177937997397431419176723929927358801746719337434332841278859355898179036306587347056164729646236672332745080154200748949812351242548115765416642165910419493473559911546498937057590514843647514959355816617344018558780343388237003844018212966140880902448730439231873867134747950602716031093473777098878803531880816037386129385991579414710761374240247738240948117284007389186157058311435862198012752529440165529233110350768072440818643409286848913330824602909566337233224005930980028775219115767903581276379847402009657600506346144584576454221395858614231022321570520164139985552184901316240386510756879311046351366202638999530481199524617609118643640274306296272253366928809274165121288267888878309052548785295852392693292158903209813175330351709249111268855686480233702145193392017240619006635871251645176249657559032033297339652496908178238320566721528060634672636510794070220341688184761337639880374508212687877254904666807815323940399064613876632212104295967519340464573795444990861052728823370396725951952417973355981349255126380657083300867776218649850269435792777669740926291676901642826783631089230603900410325601545066837327868982682680480947578078316550227780465233197203346046083306668792861737775027440111766005964165251665047154232147144379717511100771225939988183181081092618159177302652050602268828671997873183343453839609649771008364878473335256783289796639231906243771417974204261112757136161922909020417223151735757054260601386266940768295576774339184494016108636695981549539077214316563584955985737937625540553222698270538613460854783646565883244661058550163521600394496155448827229193554279398934667119925186322632711082076021558282447823160344074194469904488434640111816442759440664530902476763740586899644372726119920479100917319235349542416633441291550026218061973541458167011010797711794436231235053127258627843216298119646310524869538570755609566017792694698137845739451447305268681406661318604218137970144129703674475620183049726580484965796334342344666772197956883412116128330398952666230389209784595625322470542215470536330384135882177018480464500615348412542310053842779672214667312064377638766948260286037221116918281535715503691606276593502728926001500133924940733592162799853370522248118978962264569452789873745066814810670476227302716977462511675133372245000649685501962135107929217121684804659357200655524008210132223499827848864843576335843767330305865171101994177555521536134042403793699692182464388758452705202372609560787162753676750703144425085073408639263927396086022390711423125310847554969980137399038696819178752311687287540530495530961370353418411362406541514423318533582850731628982670006548865918442742359270255174760034391704028322066614775723350113824545625628751149064903879844272053673232728504555915701227033239492840549444784364218332091676458081621413246801585459903945496313545330127387443517315609278618586088598262498870817373638049890771811731518260311708460850881908078471014199766373605215571049729149424430878419188778490922027506494261698517430245084013588142650155598154518635744234844775647660464790600710312325724386615504714628978669320066383766615083942755623966442925063065090696065786962458751738391538480221830361608097276434344106833041248784147784719941750958696454387816460929895453411806023279597148184715565200292108655719345703833790020787409282674668628012096900676779617147498232753129791092432903728387424742708775068739065290704996414539669713466963806610670964066916148605747699157250294348595530033623608325974877197856577148276477743520364828853244732263246104250042726873437736262070267991891634285633136236977998531920685602808391238745094618965505924349569085118423017637527377320379478233433413748480876369674956466511943678651105462430033563050456198696964912075393085808845570716438862442878069380705375970033125339415286979245052636076366928985393674422902339518319186516551197178639116136070751590035409179126102681864332755020793496822598335036235049254555088164689732170611023401002663890312042524252927752047648610013441292104581168351724478646807054751241042997625545949515788664738944407548864246120411540529024424425172259570618006599092205532375311035114830743062353650811145295608716365168894905729928820390355645895209228026932837168428452381825177672942961422207092708000883326505337537955180876341582992181950115385397206754074563158573758778223722838515242004326469137154450652399701925877079649047653248137250355869636163915714830430257460076003595041548891940450654646807255633440096018164628224268253686064972394659756428490015765157875389717741844941735659853092380911230540956176852681785882651021384088141345479438545135031078564991565344724056254050438424296213721447869463075262645715504101545002759562115208222154772748633115196202264941179854999835486595846397055283803424540111585098234149948028425271934301913980753421169299568460196669242522747467243800382894044516879012542457130943712126482658865751438655141888859320563434568687098733238197790510641938746545359027864268993227667628947904195376426854464763432627170983118202076838694508195334468420439066275779885433486414315806888087657381014979404944384830803444044729020042401795164079489776522787477188564974766771343350965855378058445602444287937307845835536390834317162825738858849313159295277985241754159787201102453251110479985923340294539285765447176397347123222100355205105699479810115942381219827665639668089165217859486961047941631747873586420089542029313772908038718767653153622117012218435286595937081249077130797538234374028147176285987975239509409127494141989631201198324206677352936557475963302080412195925221197123624627576398715381192685027765109932993988528633339639423549394650404764385374378521933389572437896239949976444357286689998437873929355810755765774409493621924993127846059858227569315429356775022703569904450298941329002157278183758345510798524650501887278157865163515999148209809783560581281720360308132325681133384214387292745935409885674830125203319530380829448895488610096623266587706146902614440885441835111861977827647393951690297779254738844850878548024192305312355313011986727652548461473876070511677055251895333112509620482054529171495073809410835677726241275026019133254475811545123373223408188092001728618308145302762378057806325103155562621945353303204810678561865130487421214481075914673441399667125663300518985692473393456384119673933133674809614481090657362775962200219309453144489514681188114558355903697077018349845156676972891098026093603790631172666591883631216831135476619796465912928659838707841621158673575729527012833903564692285134056649025132705712394399915206199431622902022024188867195784049967157916581914962896847144927172599502704043285787842073244780012433079391664419630912850273670802338249628116391513963895002620241960210800502117374839256762228645795086519205571442078811837102305602149895251020118723590755713713648150271707847283392883059181285023217687276687764835331462918131096701645068312018752371853040476032414511016875306363208248319110069616286663845858086434646729413391991882205266445528318470050724364131397129691392917411717508906158978280342566817486118953774340704589666335436897203017554586517146543359720689887351293915390892545348342749234819866405002643003935833090575690032141101705993763298917458862154866643479061085949232489229877831817517817249361691116408809975575910869271576010502810767806753694336861238884871821600772041863194112283395457636000331183346551113768763280221286002814713253380388948909997203232594391181844847970336116685543288408007174986063896754107174973765914831500215210429234488032473720791927160539130971706221506347387103866640459380558043714548288056028495037214578409690926553688311726830097077062064507340657138770347380187919956285938974400771734235440960431610754583890069596554106715030402140769278045656016143448738968204791369353710346711695502032686886246819289895381774977965138528642860457044221451007247194897089484359376697717488237197781105632549750602019548960370886794787415349097364049447366275369636343114128653634991235132280227891551875179391775624258708067051775433603615337966238189396864029540948455767519733432691047766786035453979311749687998421764949784534282147641215848102092681760605751155320679752459688787097117554087218897762331333328874855474539691595427478035645792038029509851484415213615796716481359240522875038773759002725977728248337548478711148203434223668164228612686153579666437504016291236451635128117822665738231154430016565384749434930978822478083564069928467265524452875316299156890332514669066482977968044777345571470979174317829447055491903502268111547520411394049275768742217567019390847898550229804906054747174770391479244365520310735422874007968481762998875630406128179131883809586405813793789704424569434480631151733051728925209126059314953460208234727322220300427435266343360083067768313713757180787975487205043309135010358179403217433562221783903322020791601524857872087347461297526723389951393703352630675681927978992042518699101666367968362674987210896832289841251702727367293079337718187459044821222809754627700422129383569540160188963866904814302460375474447029537577663765193351475297920281940013618439882126608450836742251325052988088047252166559042196592580615595140083833476103674181236581522256681942379999108461810145742678441136909123400744280952636850160759379891090974195199318918941824223908828642133935655027422239340171841680075861886602082943397595785818950354856587309999705789605944522502790422836130522272351931509854067342881725017203060383783720403714702458930864478965402843771015685284765292522289054785412255056238915318293391033439976913834512899913549948335124703659011302229607333148591809061040678366229441641526467232151172941962711894022968998086211513782224141377984324420057799674258506210382236334882783198107184385879702143645064864091825601765381970621743662284632103842757006462462003371755541207920974412408087496999127522556269663065405468233018286838869092170631813342817163732395607207510241736195079514337178138439172567432422922380655810009988108895123362373353772790402720622930007562546017637744638686158182114386173947148959974464469995832849311539322623278132693745590904074123322484668683111625219729709580649787586284757097118908201936664450350470351970052075463189154123543213598556165301950079509981384058245653844463737978556111528314311088159938974835932553675504095024266169435080245432213543851121429775299073130269955499844681539938889326215335625023795791224647452902180161485131135355918357005211535145228446404585301866008820361804121083156340032568463552867277014296209888585803016644026535261768198412640703476055346348671973712325586565970060021192891968177230669837383346037061914368378133562965306505026214475515129912244386209755830264960385138232815091359242545016209899375742081256476718804909685260891280056481498753801521451616195286768829441563417960763872477890249185331084754659104684876325636601780774452626748866816002913779016307541538836890337721756275231059881640469186395191565601013179128905570061562165485772536693782129771782082026546163585412651849476680205698815410909635196188769052213102598205206419458303553892536680723901966430993315139932223113147829016308750936852390061174220561094553747869602005684445200776092318237039692215703191616739049855188531218434459573289817288488595459608654756041648841137659757698456594901811792849637707302207958797532865392070537450357238635342250592493467021974016052804962241209952056364240081052879916118945286033513514006157583257009838339100598894459476454396768330523095241408392632743936614543508564713289102643971511690892201187360848839654055758312294918564641643535318764670115119845291328120806988102778136544899688895528184878453686410898711164688586332527578862309254545582989394972570634412380573255987174178360397568131318200109221115102718327548394673657582723897860778531153930619629143056754484499690614946689343787566523920746680207334987806869106215051659222774118590115831587215068482091740102442586239652499196104182563528921371270051866163894325080966698480718322233639291226000215847643538919766364030550807498628089287175698340184076825368936132869370774110262660528779367436072722166873357708798363997324673632143307989949983045848822401223027305684410962628519525657773266840939982727555276026119538457482591616870404733700456228057173480255122117894816697712714304492465633057604830284652035710037836789761620881114236136587065862499270219812016411806769227345467229134101905521388982893451070098223409252810269324679057951244436601630969858923072704056141914151246083833783445052563767716085248759256737890814013402040851605549807124297947688133071227208879948503145247654859024662827706729818757647512587975109192563011450395052426409314642229372249657618954239990425512521940413137825798531115942568723443203124448007512618277439694404799420360329704309958175428409376688975226233668624170880048128846920458921101784764049122084237696380733779602119317642205951343770131722430993306565052956602731403358076302551670472646246848290039514946690239082235552059223774535268182932987623917158251786329978498426467826270600486052911109879322543425161349751443776734411066428228147522225833393206951726614800755258200306360051932816899688569710785918242243901200903402675498411947127251601745370703460545450629220903568924234310467051079659723700165517078240484699066328141802518736046949921325121781767295691257575238774136563317654765403613547433007130265982822112706015682880913736342336827233447960920914147385789348653196560043541780357060278907623038567727891692648515342662981289358858828663442850510689181490437356549455834657381255890913838228409636461152089139241011288110418737190412631904898590206004248324196785107866022222536969852826295817047948934754037729038246172279709461143199149626889893310978255073066991713980537124702873199618899038096905610740597341111255323149026058241656443530078820098842261808988248833621059867334084632108842872906896255671760247967609580864763607722200665995158946720712842419946636149492617504181877444804820783804267794704961608369757325775814410372924248823234896573958064493238604842697372884460195257347156527549107604710751418622666909259492917236243360355022415489485608731233185041235267393806745735088705414321649300740487509935437252665428067450674297226087731286135438599750619610136589298095656503840905127276629227566436333756213759236684012648915362788832356818515922359899493216609600729180758408239007732122153407978254149833665871742608968030041061972529342026621206500519544911805002435480954678420590905772064104642121992625547684517191304388804611752951403461205269056212473778408030980354323701339611543724439384913016304339556393627219951558600655943424115963442285277797371608032381797617623261188109700869468865620710570643588468788134150564176319564418254656647099895726168427043849043146600927400842211924075818266893618673467823599931248447880380652649127696272220778426795862262028650722495752849388631592284103401828272582355421237673774319801749251928351348963244069677815039262170367311582597715212733184977440180459706750688812525004979047553215520966050312399001495071386529556246798644493211165582656375211137532751191706099020564984006336275461643084526426114914917524083705068711281681170792030509867602848794731684717884860852603351408805957332554957492804291718267096798451903639548516022945234161142599599503598841732313271192004074286382846356405694602758472111724991500876433908744262893961607493287747418710588725696428410409134947856448839225616391598517876219380636854323740748627147789092949663965063551537989917947042762325143565350273009331504292664527202071810376563587743162861424983614389998267599099326592128442234408225024111418524205279231344209924803907618099424135395486646872429471675270516363577445092107130468316603734891202817246083077861713884728510476012291333548110741191954675629651488676009195747748269088312551997261563413541985741198337961695174830325023789347997552711624292912800357725283676261981445005516538738371564030311206489667009269962574232675592868496169374682173601363681296684546337254314085186618315515704667013405595426897608392706926657230709482267083797909588039125582052971293416039825051272405672600991926172084903179932156725288311300168934026744486369490032711571909346983277596947416343808442098559969982312580010006002211202840080049347445318131614961572783595503490498734519318087792489468927301323475751294329553533853267759667190104379678188042008714815445825101190597311520858176857329145377227827221547160691356032248302606709079439196171154233407397396155409170965613130379975838687415110332404587014519553090225018280667916590382657522019400649833247540904796348000620263802155948976921287606028863321470070131816341398238113361179470221809828047236411124174603058259277737941241690994569690243216155684880317843058521527845184197654352622651419517126331534641586141549444853498618429202817852973483312744937897293815565844280328104474127128275196793039880076276611632717832076348176817533727332595707131490610466583546913481700550370946625025623872516055866934948308550523299837730940803718414080041200743838810178055904910417747583766585453462757083230506300035768374694272272685570926159114189493378634355948494104313669796996059830442517118505523453756947185276273660867704814632139003097269792605994023874747503438434927065899779806524379832724218192615529088099140863692823765213225449739251004811247473338968812598816470485267084913072410298193705087636608914453093722858026489205307735627690552976468129889805299303100968554006390842147827847720575988800688490177402462784209583292511168361726495359311376865247611572023183948437329163155229426738941610353768597278156278334014007766537129412356167065390723873111400756476521606581135919685728910650368704343528362554023493598861623803776391283279846204850893649567365900079977824012438613916694217690892556800558316708196684565168817911154258518977420911258496647189309871718783653717875839432530180586477041821553170249466841652800646005932669062910337549084461194648175944126916890578620210019661345090196587360756659992684523717623638131066914456836438070353900505345906021319000638411712199381437048828040211949900084083545058417498093583751923779307852445406707111568242752501478243965176722025550981337903808627487858937778058659624650096257071352613820331574933479474683127656400079073660932820661993835500872915869591908113607808749948358756658073579997303998386375576403953299081382867066883981717459459855504885529404786241488917920923712975758466975867197587981340840262439533314235339353927199932144078821760516362744688970328341783786302934974794622919129273797668602538746341325341885690280383180195693990041121569877578086368433222398316049646407122091673353930696434423959177726137629047179201252355852443130955084847495703107155200381541714090785902944576127931312660401313473751766905478316134788192734328621530919715373147781087762410666030618642684705064137527327798671226717426234046578741682390329880371663059990193047941431929864670591556940379583864088317349598602708990078115746733904444983881606999835879693369012398642708092214787016062115993204187038465995759245046681190884426250136844882014143037690290894495506990264260609944749181806863712673860618928991489812656945336339368822430773135683260323820668264673683789390330445424476724349431146328698027357364572532412700097345438442451310699735505330748311565866224138397374839691240099334593517454299513482197896334834845831504044069050354386187969964822820240280283807875766773734372096881998155564471230489972590108840499599199022941715688770503015959078772066725115644146820156327130016967795035879921620796476497799363815455081613645610464369614940019642971319112024006819231120596929334879900634659914231327587201633168350831173720965500235916847150041457574311013478795252246079852489031205924550248577415163130006554664146062697963817271917385263749613257500619124767773414706466926558110646924510769938930211425128218947690357586786273858172009512180995162684455836052761971616699575562161627057652630796906717186070345526959871537098053547767530064556581888220751319288809123005639956806383041100450195670263263880631483589149156848702155129612861757338144475649477741752640838707557512310124901664295777764411372415849798756734299164621475953420263999894621387947779135041373210359383616155224474539054783643138149801041829594291245271783085174387030188320916329319306757082257932224319961110552184639010599904950657493472148530374486219431026976832092458624859759140522062004819155841033819029635151765852631574223268720564629958983726330196855769321337281431970110240852269155593272104457262267415445751102715182471632234662396813189865933709777312067960785040619534060323285462789621262202275051563178109076349804664559858910967752799151723690658908495390089522802658616462479916356257257121765389004837825646780600373538080866023051830852438002678332429315666927350312878644115576215117323313164072927902630696756666794526917504528880004193344015182229528722574568362196671818664176134668573454895804557010162509884248687125841028877007146521262793853168282847111619819730724103153323821640235992156369752469876261847869152099234620632165846769285137065552215147790380926274362267207295234259311099684208446603221800052807000274839394093600276755807195470366045886278408397073688191309241594616838721154373802162794049236823258796859117819591541194838114836833084933658815837414036596610276320083976645876072578164377351482199307434984118678020858578508949266468703934259621879713146828747559570687621307661145601424444415314289959765389524511153627780211708417059776271748702000516857730843275410066151264504717843618317331456204650138690779438038480649430995591073412911370394564863374982128565236748538019976297958990727060359805871966789929528930784102523842186724267768636461389574235354078290774643701530250743269240322207124178118907468778689906034863936352251918026366693248313317106049722850531475545715901383825973689099763808234357730270416222749805867310679882981532677749679358559093264565552523332486187174852996688420897170451281355548212883935050406970284143409393450562629807662591945134812436243662445418785992121829378688581309484325025773118440537730525636622697519791131522075384822889617838473031758558926536550256306333504713362287861216171443273471282269413472960885484102642323421326988620601120339330396502945247381284791514281256637217674787303779970679166713270457812638142392998790791687781108279686564479567779632259771746035285196682556675557243963265286879234323304240426451039273641087536622531859558721337784536632124491428151065591010379884391992582233877940640775639635549624339939966025456339590694944449208427568751098639938157129568263709799288328960456415352076969521317769110959532900028882532948856604654242486338583499920047787804919365384927206081021116012245591201256640753834714875596490757526386020882053575582908734643574922745745605535730884307897060172271596987723414538002415577751938848369166409481800634482591640665398806096819450214849284643609312914879746695352795239914008605780874307547122906159047568388035647478562832678500694254512059793773354247035327478489507448586376463450186588036463400460886188104862722938653589412837789468712135015631075878385305668939736281689287999965923185983890429312521756761910153392132107613158703371145636779973779030040590325719526413989345162802615058056531037517834266048713629517873739204262997590853217654183510639784077485658437583722272789267425309822551569560578933279175905360794289264274447364097479353664388420555516217420368933345743869772867682904860114076402464581497086178930376293654031182096403611733615233030728631446872983610472624378987430936317788433037023503190005664027733578497781971326928374576244586464293375845415080088957570785803522226779247889495126107101036336037121706370997550904012092182177092897073917145162348526535278700363935834576995412827974206207976720929258682197011979306265484915393196605541688834875104506053824791726956276486768849129280959720588283369291651409728482191555755155934670969006678138324185734730835032969620823746458825623329124179974672999812013545863867609681076557624400614593411946802985495821795878005487186225011710876335559645082837556006672607762571316431759932853871434217772188959965581643091802522210231847460308642840861916728844634210457531191823446369102631094330769040029221468377666912837543638141454016677682731848726550036789068558932029591345357044065616720624304385817846522505455727013839063542302847098900573709854035639165320836633110291669118958747199381680373306280075385948250828504501483828660718534996548673218742904291169669915904714357064479753442359289226254487594561819447689942246904991282901483872682360409555871973434069839395947649119928507495374667958603444864435815166032345110123540738023579767801855317787789259825476104272802483303185112651717201805235495177804802157792947331868514208403022453311828304916540616091707598745008039377813567970464107912822243332297879634839457229386389076949418612059865006309078945379757667666843145271935237567715034544659535276641792884060307616439179314321622794117688021809255566925836593308299489881359174434426536842351955798991946601349892830184976162721845426405999117863757325607425846021518243089958513678441803750874325208054541948139216068470818421270153741598169676327859853277301422797773996496675394007982942151777111822698844451009264921691210857768493783038910567892789304762809510617557175579759487897766009330830774692354820237693310912987058579288064581350402277732756433652495267030749676401367438891680264462457371302141531287261856115996778926102191510079687783601710913381956047623766008816118194950792255717907513063963044049279777874438655215497489556339135872863470259699821424677470751372461773743182202103284508944735789159899772520871575867856239497409896028315392819585216257993301812364494030067580109630270578476425932757008500229299126214106634866102857708140589183300451955546578062948302865215931487491935988169990671114692822021548260174897145331832061027259027362295287215334654587803034141757580874383614746423919224985518021893540485278313495440541782974319711347904106784835418939463258034465184961701825541355526546054749730854603039268449251216601689433968856717407814799429080011123002231286635243488309886890944404342436269562337879374287433211018773736045294749927314994147399237037479754812475824153147207178062620155235855009147333890066849928855492800269369294886437109543933730441027820055585895341959012082916202705191750954104951669693681115210969976013754608483274679176458057901830052099059041951876064902485962378607745416255721848037872641573593518170411863100347843936059909077281611112254824876356098661972028173468595844881897145635722119312460742944810561617945868138498260795915885061518379001281236506772596914720253409555687559475988273375726263968486632464549184278448834047709884092725522364335309003652794976840673314640601967483688284141379107562277514734019909133563326364939505437280943690389070585819562080086085564335789825417277796638586354559987439077600344441442631898276653717221475261136367302775257354222813667836193388375662120516151783127527867390795663133505997297971205161020300868996050208994718318554920193453529061340574987963062551626705400278776743857588660995302506926630285217154171985727172394889177655737157238425064803237151504048264181880661330548327905679541488305186917589669554560898438818751742670048848315749651747342973560684688729547832350534229219570605296808680258740002521623411653973193548294073618582409539844743732066904285070185062118017331638315745330630496298652815426859787855526122585797329624167445186686711176704472001921397064007402446276477339025649078661929741476980160608524662798499321609043204727067274744154202462427796958949650328351043415067250910607057710941475372382640129970379433386392314168479281534408821941082869081116160104975933498896356413232911556766498328051205728552517561765333013545647723978067255230419754963592838728327376540959178847551410836054670003066828731325790507702627924973793871402555642860278370564875313043487611020339504846375894429283867935516487892935300928729155445857312938293071618414578675447210394652459619854326492653912423401065432872032489629108242544615172321992195213659749887362632730002308475908754367443723374396618111140621759465269870068610366181083341203968336351309372576543118703049366209116943454618051688869772115797191902672823825554510655981831161295693702980940573861988048078351098902886155383228890665304166914616025925506891938002442141931654673499922747733090897733784513023684402686874421168924435678564922185982998237159561488806821020275707110732490747028572584769645200430630393780922901146504439924326343076432837502275787810511040431196774436365543973246031514910179108679473579059814947307364817870278475710844264301723262045751409346830461534156910022314719514595686035976984430456059816752262777148308436723205613235696508201682291453575045781893841444453872346970141977083008364121492527840635434970238511125202712872464169381285075611654561407213337701473146723378845927088079837450256344641654989983522025339161917144168703008140850244914828482928538339690666679475909139695296678302266615215582535023437708924358411829776503703688663295116680485437876907303135740416627777317294293739672305055384375476818124617402911638109406762008811631508797061844204055801329352236955806838998790429810142854356028384087125443926354984898675385394042857805705232270426812151596136705810964108266655220286324814111544321360481919476957416460275659672767575373850936867730871087460359118864421846152575394449039799712824331443887392649386153891060068900406162754962720328726944626882263610431297488530400330373970156120750245477222547664841787523216672777944826419596161059048658815369235467362689408897406162185622749738392867757943083249078558584328904593210137560679970511796195723086558945628245245135268063265102874761917922948370826280506692079140896490274783856219978111242935952197630691161494847406409110101194312149676487832248908190445586854150608856136228809971759602078598350211270022072147391896264034344367210485430109042565262823937476636448413003573983341300646863865553041517414612535099824405015392914648804811006021609387587655428785450980340719224079401008531660374345324232793364945133962600792948351889689856995103526049821050625066451219074021799444455139846025983715765681065105711701683595855409345189227270791190853345040990645621637608205025631157933456803467021926681119737814253482144446443263578668488243738885691815895463326254335007986203491965535087191853535516242276933796893974506857042521757415126466614982222642548288700948718693429198263017122689151793230876501393647937375088241172389357746637545443801519786358234275813811793668159449773767363988761473556445499555364067601694295767984205886006068668536076397434501437764520540590124048877379574724270178042839291986458692178780495712828225258397126507686007245287336248955775476599339723413392544488498703418856972000551614883286605584260331733956413569075878028291359396590619468862544879002707490835589360585929941161955491190493757384663544296300109050546103257452428459531401514133485334871173282315591275816893625877418102554037289508518814841728998949766896386454380638714079485491779847500158317858570227447931829748953120419886948044158416678849540689928686595220793031716784832575937853836354537058446918645617897078682775608701275952239661714180095702255496443718408764048686780550409766014063011021939707693961699517114512805377275483568376023155734825163231639332765148233072452401602431136554883244548954476321650578710033513745584139180112293830990213178003789576365862147690148737268711728293009850832256516996177473395704389026892218700884030421297954528203197669029678323304481962850833165679634902410199719496515902506576228915141404096819531975744890931197659686284197983276045644952461115518086457548836553670796734571581016272310707405545398198886408913292480846389996501001828020116422263411600568999105922797160262581109198760549753922145277905760097840174292669949513473432029993970657437533988833410633754676281100542325246189176690570694852709129807903240266432780296286472528904978832083681597001257216295298177051223915246790349610607470752450504808152173435201970411433854031949653178580191326816360387719520664503535349708589891343073744377038119779244091087392303463990603705669890448389271170429292685100264989834072287630106983924911142253828269765705771468385324768416931063288035545628779042471482457501231830309304935226682448126000488341708026568463893340309898607654669629650590353341192642346494761282440237840997972765969500384904748301689460427668398196544152155021542986273041527961161327974805077431156395329331273883920532373729136823953922932931377595293463477407046132449752969608898762115739489066970820160554507773772293771139179013059537332118679240910083381628048073075873655847315488286819394517436159788353933124362383988046095169431712622011087427555616294692927284852313693961212333258267870214189060963787088636987848670244214308192184034673780607646784236686988826276336911176945330642466390565940540688168286324404083263512737396952057936539555770106990958650770710632110456241450981452816352983391996685826347204694866192298210053892960225095442248157302053957557180552860104675863493106718919716755706692998441847629607582864697842049492390479929303803528372559177784874042466209878851576688889366024707948178849497381006660735456286196024066336941590282968160900616806901075909131694327092112119162429753237616278626309901873027429778745285022370389617883093673010037977141508041532282840563636932432391240032510714029977645009219984163315561033379453625915536395655577864885285489051582995349224122403470016299097298795559240984733762588733829491568851691479633545345072050178395457168860726828304262933858790371020369173260848057383142654785148112583105662246634485251301856297225197441019799483839812929081572186438554553344334975216777932356699607809442992609382376237702757828623281917293683632726046197613171752482655081221269114646942007328405492186075862096091992448630621461626511489857108623340127220434246379668999221373541474818763088516241264290922240853721356962836578230200130873576069032546534832870942946674370046154074457686433702498394816100303839271952895789219302394015092689636161053039961620093310137394054480061946522095499751182500798849788748139432473866868675123267099756855993461710701808968363554719091031003105328083768918257690890557151338257915126284130026963227500504928417003404456941986479959728196420311741178574580449645355392421351779331702151013143750136170050326034675646145542121438026838690418287397990627280937560961913838486683646640755242863087732292755472273973384450971992216889595134928455530354204843309706166557578051084411831167269898178267347253219403675836474111925199170471561758033297100863718275163953803024222036230390462315572737642102664483915793841146410999964575493796372028894597951270047920746018421699485471928781493173545477694487190695378513178585302283190636835467100802582936208337976694570878639382575841297509008958827531653443632483963086028319651740352848556546161291446135435077305150842754846461493576350049472472820252066709024415213558427559639895163932156678540456103560091531298760768446396259490323567491095223201505324920733771674425720263863723338886865961401824572916124754233202410707584982175732964642930483256858089082327705302058598393861441096915675935105528968113815817063316390976645639688522972889824257392978922650498394577416690604361388064199217929925156037350827954158625202882690562793063055505979656997291793745047330582035781303981639598545143416399538577162575163301553434806771165182347455871764727966073397823095302019081048370335424436039148615708937266776176599860457605989537241369705331447529662756137912054950325566936043527651550871152320203258790217158192425667971733012212339028399737641424797834521922242942234800200055545501546901098353113505090836321263879716391736458728358330755714879195778804671155950224268632697446495290122712435851667527343013359217615884649790727804036983266896348090294121793596604010786691402270518335613446081395068103519898378974686603225214144279110303029293867862465094354380408692428792758340185085542524982924455618932443366163027986536462877461294967089529099901210529581759428756982700328381153262612625186715510257336463383222763053378263409137773947706648636301477334764137580719624238367548072252044691312383338848568708428215875715785632026606008812786961246050515888331704720433130688741914315910449267649447040371880578431090798420988260789001157887530657010426916547611823894499252682027495841008893514971990098745715318715773525212550234770032482478455255244976908104793102460236552176634723871993604676654719437486841823384753047834755798092712102574274794140975408511542909798098714438024190361334490150388565886742725852562859595839827989644799018430369032618976517813836359861564469090224378348985060804232673904325183032703553226741315791544362869572159020971252212449396212187185906374829355683722082635813781574921305460905273820585759067830820791006306294117262506548446381458711145290315462869512188963802674614176468705230517552841456348674609592107261639640411855164333013500855294906400517501821183791909507780001758160747987767772925613016015859165982644647728700331826070103767782424805831047377378698787390801603591052974633261510356611569444322341400656908899161055873241855786437117176933766883195761216460392081258243937827482961548308447630993223549875070518730026265187354763018294366465704668055752134717020601828717958876303581835285587388202305097495999566112147494603763394921864525632577341044829394812505966389304118712507751881930240763167333786022578569634746162799973574742154049267651371664785564254547165627755238266430021628344009585392105607467456537115559211204430037749622568510824779175791319163325829280583247166869938602318165714177188096810678391902496824210356926070134689740692915551378771322252369099853526356727361916720750543462927798104723401731014920136794708205930172369436740024661941221121793357430527154647072225889285388119968241602989446878332939208672191324047644219701735068670283242000977685369015750839224264621815322197553490543390335537450709074952742981127986934498053551712615723963754798239817920136085826127991572628626246869602242553468815887115991265388947256689506460066460638939606964924063187067236319303656820500848469439842535349023275878591965902907250439327222892815364513393600171395267101785599678397234363318838172373554273391790886471867860577546242150137992953101332156114628126931847845521075851939649590606658230477821353232710968559894793871185236314755844973541480261048539246689568807073453358586921170107815831202082524567605951379649002345429562472074350786007426083598838479473965020230038952252522474066904130332558616120343136381289021973449517891634509891381257873003495522613457730269515104769383417810747350977298419291066942934909081450273131724051185431714936726567931004390466022674531259736108327748176375006992946352191142403116317362233418783095741925379846105586505863022096050866450347338175398294739351618437814705850648229508060565126057978120575062966871800559703789445944789072414921842424453256390023050354876462546500137415598708451240676493743423519788930387079237460811542160502590908856308463121002960552168049200991568471880907847192872246920283446918678332818262603636931919303545902459230196483132719215458057851178372866229080559610953080068684443764055611710834698089372876907037174008484796691158993437842878108807242965002454017442093928674996457901755022233425429195033124958175887397274788873930688926409877142237751585259438746674639772092342562539861928347189422388746365625648701552570444328271477850408095955783807093009032864814059113762399417573384018643398400762804422190727150560766711029792862727333781106475648910840541288598885860060281011609326494815536693955627204246541971064704509612018073603571305741131612312662352065037130940544869350734955799366038167901198384151294114136340719163038949029259522052026298722176275220850730117282382874107827864533725283280589465162150647417930004418331738950900185962173937873741283154128561660733286255155476488225989530926224012434946830408350048098349186163176129752262023701881370530222712568420576527591036777184965193995544658728962330462303907075299095828188794385797511162550620179756005080955787071997271725903858558620091237580737368197593565008210286644511623941844114192508567739970801181126345823368087468581430453404081165399548769929732637664680657819583891013609406875134682278583201986508190890846742972847766520578525358016794136888319599769252254826503814150370094001574403243110366973329831574881770620544611364211765134324417607865911322926110214533346019638992446792148624492970829149585420143757628794445295551084266640085728888011530061519060448465505152479293360806406899464381704700753657496080592834047631913034793119077313994874247806730802262579939345268648722709010147117159708401125061544683753062082546315807435341111731377240153981723346321444001516849050358944885812427403195762054433814854789775297276737388359036371182547064095610602653548082359009619822210779375315130719815396150297395998163388581014104394845913260678459925472534594534653106962329034231122896296906609255682303784895479611567762999345124045058779525397753660503637505809752889046814443924848136332837174652157183528515199267530050952501569070626785031694061409918027909396266211208831723445930593731163542205562310701928137282232033791608538167220512351187043596523552364119803390058925248086284289222625106487173770986589970430806723864894778946384303470554625464502127560664652501362049876866348786258262644533793931007608275967345583927545706911697986600364717027806564884978059480433251792753631294277374117242144442835395178172177558726574992239260653105628380860909399792473365576143212752233947518249524630016410082871618688008194109109986451789355013905275780755486699551654710163456463232449101048595006272375359689005573457699854181553527744328396484474752354914789421272520826242754780246106962198761733702891029712621489436240511484981430419466374310299839724692235856619091261810562358544657477986390805082884493461927003002576907122192040605882549138154811137319831111221736262918335371460159417334026878683335771957614155091668689459350722829071760315457193257129364407752748839382045004607319577523741227192033261566215483884086207786008019703165637575971702083820934436289169785146782388886813967787183869028547967736715120969377132244836593175076337447098832065870401955400400146790298596059491618522011555361613821695176261025753318505371657589321213821382757687355433532250102153581388220554376798823693534606198756507111695079952686275721244501222814621326181820380355195282163327785102859147451077745076898731177520391244809903520699279667838148961233378367294265069394060118313997295273569237784582150524256847002521264808381566273051827352781567108461236809570804787466832004837328595519367788239416627224801363048893947469568671668029832114398024724281394494444478858983142906458393142238485475802717043462954128710667622637757930023011258293911079669247699794369201752703070743922794629401156347135723669472177043065947300848572147778674365688309657097409533748009387437561748619207066912679573086786022881765261692880843183090724692617368409014493505265761824802087486087316448928746212510902296227949543124781426302552579544630009006724921900063791512143902468277382544075451241418501627531116899803502725175722848497326882807937904513205880098960591516400001975264378791998019475942929004607379858228383372064233049495978037608769404808702822053514474521790382014337423071239568680461991313118624270541334129146038569142338489920463446422254740042785216203845077514200584273725919499543050216090746694648379882124549582344453466722764748057360059568969953665763237927758565766279315020513697501659665490046732327226145013132360483020269166502758684122260646244563524871229815716686146668816450933186216867444239436618470482275838239074165618563531245087969564618483969536824485736730291091573118211244964371900428493449717955656391407178881793702661938094228916918159386779742333011246193608393449376404979967508823690237744878730042442603352211421426721545162648767486104579447720180016517756984467395322050117444031097647602100798536359529547905566126518062658311842967632344779553284881646353224255238022501385629374345290744569362690881425617774139570983924879996138507769636562190841744525780953080972760350844279619449162799458869738769834364874993002303095750057450138721692292954818138211215813974423076690672697766076701503336694483910079694146697625647145994518125007705002759703442320069215053992391429410952977262837198780203354134873931014151629873487292243191970543904207411622132056412396998666968075316537485304848367874709884321677574779072518189488748115533694571355102525800592699407414798035204240998435715160426106540580260807548671759170268416694653451964963078590382596332106628666603796774399299334562694526331486844729071939643044621463501836407333613882588466076663909424949141155424989116794906116368938787438796344930730106175065606903203799344781065310625183188735192164860889764151473213412829320947785718438091390864829860569720066778211008233831629009610181664574956998473138023894962821260080276812203405187261520300255620440722444351882183439313606729573417955554545329817322024475859600948319120789515905035930516369964353991975411232407483147251478511083264415320698895889780585249125929064517640922891836766999477375392095078524857510622133113972506161192035704626241188694112390153520623137170831548898974372706251529758096518634491826495689480848206739056510791879050905767933649132467078028787289613881487255751030645924803791156150332403044319449795137727432388953742124739470591876625214922340920483883733862669049085512363271228644327146798276298386694503126559996184788270447949594841836759037113161788297832791229306474427907591155435544248492912860715782807065982066281358771723159377447583392623666187072921015097270361495820297265281337681406013545806256396654422808283605890440649168658005893770258379945768977632627581508188266023869373167608363754776855364576721553549461261832736065620350187917747993743497565400652143546830414059434179404772997615472578875548266029445569681046046294716472883858111801918354331062497278690285961486391046224670122770782745644560447904865419283852407185483827339790447699721730522564314836080387872327277517855192333723155617083975529775946463200464522552783601858405501937382052735654829550740980447671960258080791809792537486181452632764207514324246228720402268329887731347631327253983947711397465307716878470038415942829530468215370461870153109106495181048815445671588202633425907645617705800999025846023106620550945060159749270584138358973823298147467428214866124695747393657470330394628550640524852686512063050712864081066660219152192254812454542000745713264402443337479375490275224390570468841194503959116547949161918438122620694948709094569748105781995031157911416924718203382728835746040882423256243301286133691676279710401760269236091090665207329303290017007446876929922339090823084175421411264556714180636507182158755157214181164598118968961062125844680803234801199750299551422198495170691262112535882787430178244174234697651837101566967994012167655563251606085869331595096049774096428878248139428917426076817468749746787422129610990142500766780603677320133472210151858103973209673076267250061052843812426914828292390800932222333179137453984230466858011078064444414351969748818974195288487628964708119478710848512633176846549614535027661355092534261104443355096678122128324015521534758791223969447099805894463537490194939649122837054672762992016642087707366955650163634510798406042122919768516750198852027443413937051921097112591000157298160919995568821936554041691878654662049036747630960563337086885043893366783450034274063355817842687162533613026545892911030879619351825969627129493975771636312665398737448342586104039630453932289273292496422394668012142248274673704513424652727510269439274539682216114507078994883771157990628357606362332748233107761488764499446709087551542171595341047861343692441740089311191649621070858956055345483309369021202637374174483711359599385920232562995871529652845534464496964738424378835139833125122254934868050370326817522215701034278380724459306143375099696190192959849229805427340226243630068301834418898267561378985224238914073157056387492167335054397201016282806992291736468023880954604944393807939130404488670999960785595008180541734376841603156819545079536927432199520405907875287973856985601342908900994828691498016362871065325727982019303644606376861500375277602398036118017351836854874498467240774972788686249473959298514937317781306567723651087756852923457737797578679245112155466643443361772317498045049601062025548762669136942454168738992359491288574933499479440635475044209313084889406318789282306657403793915938181169464270355359819940304769466474614470894561697224235771957223373616203451571376714343284612012877511359296297039557727427127035686379150571858425525223311737260653020046439756521905473763081129612026538693731681820781701104405577948613326254048704016765609399126635726324574628083183129613156009699404539835333930094203372981955150656982468361409528157890760771084423129790906942055314592068547121554265465509999466776154910954494272808331623657212875545589674916706756063953897819815324954210183396475197042811385527643647333765402013342936130575935107115104896367763982165341744229140467281818997566061122733617606869426050246639143368320772148157914688003004011106499382897918018156199350553776224061151869365440431055690424020909513981687564015023205800688058082975680577128774384074148693358831223497681874725799007982658092809231786539028011411477544442984939941584790091071132126680054874492587571613789435225796402802012533201119555816768830104920668202518919395280892797672466680995355620115660543613612721092051656169685539200265046288799439762718149187523888994118328449924148642610798924110869384631102687846901811038831241913717957507794709414745422916945520139699401199049280705847742158506737882788275685455019626455870833091133945215306855767224943037576348298290520116922703480309550871758107192241084432585491134960147456970079561057919175637865725265081905218458968756892972627778294784004366041028602575226917215700338128317178844237776726531022399630106495447654038741976213116403756124885129830131420005369753673451851026565219242222659800816644385704846648076855004195584528874511146872733337320480574474253259427937970318327579895949069297004416479889802342274450212404041824655485891494933183122088495762268954536236123298115518187842993288983913267188406758952303331192054936186758588140208493609480081589776989948169258968757099129039651549652569602841189823194705638938926680034054062836160530872281639295522874319804314478336135265516168889108333678124544667141751520641998562920791981118066763926708060717291380033976133611755053587725916997236903784033604341840148724892328500041152982072790033410792353842024101590951130133370406530703152130144920585793219313168744490655655310444754988807472157479197084058978254525739454639778023376185004510024653131405895827004083274024149698748666902426081027415970900121865916715382881847275521375386496713804884524346606814176426157108753564345001793227013501883957755452343949681037278221863135366846987348242032045407940302194381681099601322182140322286068934085794788461539527887920631143910706463396943335349657254755613331630263494455682866301590615298557459715945327541683455242569982783475369041929349272057740667786685937233234718614941023468964970306076049978400084846456869155637325874221829724114159017839680314835707932691121364993614451990562162403028659354135988314422486484256428229253159848404251977844876403075407347874972012418155968544652135597183264491899137488517830349089046206986209540087173629367926217305273238718690854063165182261986107635423815927342626477305801830571835222444469312030337070028007346146860099722059660630965220357598670589028523790843731337242110213880398309597212178586393496287205920024672868242921692214364848804287426145790534961952767914331572621181518713082544283754372407769872394209093792756806634635244547390772370382846790291935792999920103914123195156296988947944173310015579651647879117421043988719654118400603809986022492169174433828426320941859203990000903282630089208099567622815155783661922439786213875814491503187132546706974631274399926504740327576701308117405372705175612721837946818820858999990528277747987422281480791785135602109008228233352400445865741874378653706374868396436400701997494017706228397758791217816468308659806622617738008610602498085611396806501809463732917792363223797012254240911596607000661107231102290543494735872491041675679436241107671329451265913494250002996178976176999326488472497259018680385158967725229058026278086888593334822252250551830163860183569734809114888803329272147910970242857599012442527368955903652308916742201674530997678021605688534983564524015953064302733591187369124663640555161981741252036938957475775808000662094489908837526907167598736918750600504413328771729886851119246670963532575590363743959155722579703627738399838575737852314761601679938437084787941065281688423920859309491261353585769539109278462968053085835451300216274982635084793122329817506662318917772001036002352470781955242274123979210548608373295643113402338902219347501984827218772096314909793572721983265706462693912461960523058151373368130383336397770269918584721455373696515210455403674595573697857959755325258382762747093625557372682468042695006627041433220254333951089126173799689833522325121820920169909918650643155020082074401179816594847577790959713126893105301739996318631397834109048271168699087164040496515870402797046867132061387046067138970949121731672875500800219655831401628291339214222051068978660500945004387807362082214730710508234639911504775969999356559453243742866923403295973181581529226467908062615422323770158621705867160527620077535950577805624493158057375862721980740312010576977945063031717103033122940733526762932381351319778861421767868714838518241538335066355629023372025527884646029002681066928017755584013708359753655333704309706832100545478064131289129681431638552041999991925435463172554633751569959294669701601810404122820909585013055436520201762785518171834334490072635760601545209498990910046675391250057398608291842983392460312519907740579433446763938845203854045822598400781954064426524110070090620810815657896028589342602359093397595595569545920929482298413742030071618732237751376447114520983434258805444166773933550512886183162573955608651237745002833700637792358620458883707902657081773203716366224696530629777531474292651137542939053812509075614397941806680217542342064471304467576783083282653965477676332103916895802941876731805332971793689019172345951138773999613673506536071979377487227642264321624235384249508960212986719390380764391782484351418290871923751144325550570381807108912513400904838660276648178566933472447510144116421759213314863481574039457290846515540829496866368652651730130609536981208201022145618099043827901833936779372021123065326110232246301745160327424222934194487329460378666786502925958488888211317679309784031749908027913542682150860544177726052679652040506873904937720583241100525030234385435685256586454473635940212344883663337577832002941505547989940073711577621550159476849771067372506750090680995738805782471291972187254383375709028489003954289587549370262708460494619494799813863708993321343687728595078395642664356291748566251345344138577768560070786593993987900196922536904421975343712793974606845676180483820334463624832888564731021477596047864895460285758120928854294948099939622890514161164342287738793258030307302874921188774157274065914556654821589759982427454944813022379481264190772511769805939270040993687979329764871834570524578462955616983675534255957375413916183586592647596638166356848831957475761385351705579396515267317395573931887894840920223495653252870083385017956239452118809341941180060501539487301679430747328090274032622314530243079723320785948810389458845898738243186147658331827058968871738303813158284131610876427884596126662955402645639658942850419815897260776952207986217130000995202003193080471853479491708258588495242428375245331384744976173621686245342256554715782280833349100849714988177868135709100308707374899393825500577151137899186253679899463307810891289049535242879014743271655394914344683139134023771816017806180357276555969493069843169086346813397086250068550387191756006278475877768578192893448232361307843818034122368567325750466034476323627647761650370256924967216684635807547386102767760224564599124594316300813051826831258284533688305433544093257291620161974954160646711275785261262588692332264417448115877504087156722597755659219231127755575350291300936561276409285033696357159177191416789946455792971004667392512547993478166966659108137808965498846630875512073659567182664372445554960686584980965481523910213094030007209627055119661658860013722968748564739794941663636040020818577371122711528411866270525965017214919684199960450096465691971967401567176454844121898900136412980489068004348153834581474620897430203537041175327557296158207900004517506096773173614879962030686269839281854363283547349689868177621386856363497992010902615715468831736365576294738233454465675301317871318710852809280527614834663538839039573606369235957233815529339813775099326544327813657587566279963651413587204650621261223226991273402597798304571351321406505089958725794723393128780324522089107033030491353992141256939174153594548909767816807857804847095725538801071976317676006467727165018369755280140933930712685409521585406072526660012390196056072866332143599216848818034721755566549813476049096725998890563065406582435481626349667082137256511368576530962866674681731962019497481624375490074612549346213901647778783210379675823700094570259044027523951419416880024895227282308107648278606785925296086284781722302508592886998222671186915227743984411220403000684479727400265917023635135248506430097257235352151772928068436203675403568239478194364280917315085664015899143602873709776553305900723709701351784897503453240003122353050481364185027679852761238916224332447793507512238467121726559791054755606258149338110717677250126741862935902106489654395732371620834802480909304603505502664291950771817454724523757329546196573709658527523970497885688557157853638801249061417342128450722262256415459013824804534484241630916006440704784537423610348659178908291525976645014741130133189794326071619373840335328399237630797356506155838834678451567133816230562340919205316321257308317895127657955240845875574334924423189634620327187449973027635925661253964846166287227630771800254617490220809486705396869167631786681450219363259219571104033823816547284838006650426131149686851596211511669523301983324233712778627210860052124931278063015619487823526902340392832875081014996974492608760567699962963612106615038551831885877093552352746456464204507398327668216381891061362218737243922916399761081773657797919175630546061205813521028967147792004122574497566288752263703304955997324733680496323991856266177029894461329235598541857973530860001385276932286076714803427740330847492219822441335029643180159381905696951153795811025582237485347066899124808032353756978628398249791248935444436687388020078136284636871283963240520616000081325306773867648655460756282142281035744091331478545327319092905486221535403851197784479811330238357969764309917495624035195773967929077098368089922822946809013615933514092059129423184671865948476118783619984538956200133172531731317351874123540751084159066961753168287843820704723047517407989300561148759689838477441134911202002684129957101053200049544142873322173452078147450672651806558787165355677475382944518894722476045971135847269687637014970333186318081732469698617760120278946277553540925732791779648119072316990710932883919400081419233502921875936895157682691384921659696967392034433590644079278718254929027961760754514204247631877558677696263949726137286265101189113963848303584658247779878375928374611205423961510196561099346685910761174645769120452102084151929953164600600373572555824876386447067245999618167477576964142125547504508527673292106209345454989046225053300378589756214693330895809763259698228108104268495401083083305413550036820730154003314642156462853878674682932986692816574835908588808903273633184882321062018113306546844211050949587987696491899868607738787144883814245185233548098304036589097873312447027586059495466540254905025451575310670699925061711013611106491809104844773420309533069143488216403205115783791837852206738917428383388043647625238443581860664834241822994854148841011650945390962310771188077158337067125066692503823194285756484944689919501177039837807352962433147755389832262501047793407429892895663443890319795957644995974757365971338699478001639259441084894074504068952522562436514800918016046575259406688480364768380303915028774551216434369457028787749160110713424394840831889470963911153343603714380055321420693784306517296545033877516982213308359346043962581284065257165815867062236662245515142649418545203148192967087040569661566270000404052953874394451679340037336118184831442048510129627708696104624298345829524600198484339826632833570686756092003109959263536201348826573332239885516970693290897325368560168579664365570628521468706390289806055611431612230703226131596530149108960533423237503212369644919214278879037530872492077744067749132914529481684890956525046734176601546231272262288396137474497833533234341309827500417081603324577881666191619839964534489474108849089041131681188768582569115981187726497347264813502446692884896968791290007820964202118606391169121481149030071089548233026576228867255804858688572508741907239348653544169525285579556414626205469047554073776753830053351041418188174059237869301478297540265175262612496925986936026667866868306627619122581528256045857713509441709655202021467333789409831644994512366681378668675688106032691741362003305371766537172579619705994326589180481306360692786355677579693839120728398635977071603317339773796548452476152754963907379786814687388450843386773029598107394512801120827610188834266642828139912013927451230876088637157434545109863778966051681181143303213565711108727008611826523389262041792926098802589374855588541524700071735824563290898393497294570638390975094257130597074708439697926492422444531620290105278225084340272433221936779072949904388064838845009094207759648624249054114660483928929876441440880055015696215035497561471723572898403070773757284832059241000402936652464738043751123108853916770862532956020283225940782927994882351723709726015746773641133005653193201908608161735026768699837379949891269501533473190800736558123508206131224375851313955997291074724288003979401962947754464647372640734523652617114866694473265796294644174706282329875358712432258072426181579346385887570927213058781186268548593223654952335623304741839066085086474256892073814737472407482268277042380047935697301736075296635961214786897577682950389727366240933478805444399815297596504192660613573049498692924596025909070862208442829732599348205716445877519755707345255941961259314786293548991434963599973271131062524093287479137172833441413177479080285037294119771222127782636696681848286631604210639176165048580952170307109169319467342529764982391070402814471382881182218236138063525178954271564812476828930764924684683355682621674802590539603273784891374014822491425616825672618392652146467319403897215769925035845843915689111600747688553542724765323175345404151154891237656279658539026239172605896990143569772029614954247646130283407617546879421258969566899746115873443854057537936815439786787847343683690499753929775344987077755614332720774214269122495532718978201561729485701274142978498224933304179862950810391636374595024896132776886228384547723349215685549688777385724548356121121420278356807406624794732982115525857811962844162615952009918301999615639592580863219828000769739281189299212712724898334119661557235649821715722349949827991184294483160336135107183543007991822712710227123658935595740111229667529994967731788852522906842895518303760747437827713134107627379826558450895612399991063958813597674112030053967162568069571387965889784051864022787532354032317937747484973967149941524379024022688500869609014262738044472237807247161842969178047879039560960397036995419857898764821971833049499079285897185992803287039782395897612132937930745944974023914777948323370658730597523364831350178627568873153127990423144003494606509155037736864971091026743181958982906550248146871521558856189152873775939463215642115144183084439989733155380097621553833506454488781443439493385761224709450842641064890978877537932167141031212225780649840730568353636945421635893400762433234855775785528845377906337810970748980904052373610966093660555497589329798650912856791150283854751203240446274939563052833779661807752831510488659620978792327894327737682701945323184990845641292733355335585137077901247780819533878318476060661586909841307294414264184047903485097080469014436353277577198917317906181275266975917870652626199577314575475598897916360092086982839750190625977733151139289585148107135696182133462783504761262527836608923248587984677565822369298345906112068390809101556066708700559504875430985334778247735281556755017055467001775023518656612867471519139227740717787014929962279396712614395988358890297105188252265266240612200441160007496716488849294971949008664376739477780208793317029867793000412433369701011142099717528570738008644700702427006850886156054127050169587084259131243820270571456567850773008107395874044266894991087393453546891690874076080629942019823608701972171657892501770921622816272475921827827025403331055634813451860517137968448644232573971240382501520363763778668734644832685938152773113512868492372679956809974733500226712509046333468745161307688555804716306864423712107878376825801801252231278457876920564488576068948665934315482172011572438605350584727223735124145773474280323636456449945683380296288760323738789199869638782283935307400042565969473439065437509120866775356166371514393729964931668256384286848515248214783256135312595751210767325152492813978324960571883119193655248601208342143808414399237869192356155864988419435593065572309832438210194305051079457626212078349283538142031418761054392828403103296843222962340143364886509607645839757494128810402783952822453047948998745696387684059357396679308098085395827059996380241403694657240162514999926147057941725398004809792045842008629605181240681012891284798786114041571249873276881910357021120095659053679252050132908712790051522942677946361887384400126623174636535398433993877565518255391370156181630550154184201536414834172555094330043861085881338272229200661937895960961783402338455181459382921089119517235215126749396896762072471154134177108132487807996220826605671645953137703387472569447747074180325488140285366843275977198506231926363902140444481141414557413354342896418590304862958788211644956109469852481095959620714269409983714532389841663739280815954131634224828561927557835104789257373907185958123521355861342153789411259733339957048993358602584639255900870853038938888787928537615041694319069034365503083807501621555787687662732458244545468783970987287873279622093021811566487711287946706160363233844611258330441464192697200295808579353940148189360815054571324208662934878167066815527806685811230466526918730779199900182459755231040950439256560365077706639051129013547588583897703524016191458060687344772168311529101412084332679804822464385530860392881612877936453457446043362776650934391517683050158078007309642146381085353344595792416601194996067108291369606204511973435294680089679455698467211993784828852322749925234904649357383722496131450197087576854364326730608960893957591121788965853520064293476562679983247348670573142707101795522731238596286146754625460555672638456075989118474101656823113629835959236600612790262911037756371056691352477184689590918226968349646586208725415033058043041174597210596618690090529278468477253300950245507718998130021652496695192946748925383854434285004689323848469590285692289810060188571473767288642648576785162320765272284107038195532967509221698573321065321092889056084538985151155872656086719440535456096913052557768423303643987775576893359694823717460761771714496619643484634452888682656016891227255148886293320304433492963757052883120450105888866258413871914549702971871557635371247284356656766373448225399541211435786898210131302437265068463681379317919472195536349648364559180700876697791547358867212431455593802829713181233154166439718902180468977346963725362997301611071067126001516573839460101910248718587406325586945856242725223306237933456550766281894214739015047336061980674979914051223119933704192607354295991729525653194216167710693845924077663844042602876628367211899140047739657076619883025954332929366348829668028861507480430650360650758825509816415244552178728311763415415123669061780885565859726515685597053329466229016356173526939326546532466007633038595363332526147398018732996576869841341369410973707403768492340716581030468705181770485364438941960048816323019908116271357694989237046035041938740883114234731231799683225723122704973494020423329524152377223511695283166065019634439877735822024367842474139674641762813547297883184690339886080023663061834021342809032005699317506688896838934187299583352116198078067426504359363171336437901773812708168675641644118013352217439549943321457573182293235140321495084231284836104542217343765583076754087658135791681618736892785813216491005551362216339578189980090440442872767913380608548220107112541365717064136879634194182699110179312715650192531668615232682056332434634119586656213778505375456292587000060711644160769505711304210056656102830065859764136222846570206206479478936601270877656140335385697338000708373989110954367031121283660022360118183561356605971828984127257015581995924501777157883581945658091027109570853381810301179774797266960407153926573595742382468127358618256242862680414057293386503695516936344460897668501065163091643301235855975206961496622944723476590604320711191325617795187859134689862910929344019007952395345965106118837149133339331192184778100114526986824856707875989725733544910953689417613814625303136714855025629733273495040091109251772209680696886227644431318046018352110484610244958648705656053418289744604932956326349081709574904998309161975457811875479980129881823241287168141216173160477087360377115705319844122674696037031085739720604147580617229076834866027395970011703670648276863930458438295999395162437127498756562125508869906571518805643290794546604174776230529206588678351288547419729394376202676304623680350714495242582411301819705840066350037654160441887722756959881977489078606997499364063296697137077092977776579348733603269849696188831926166387712094484254596873039324953281193659014964785551548008367554830426442243007694469813086884995226108423578752284684922941007273005402106989231927675673551199518846901163020944570241057544743743814650395755018333549970957425135951280132811992225700724507248884267972041686259257192891906811590109544769988368671266088238057976268727972823108051244219126645228655405591102165979447861213704478236427915105959283251013248345400049583896640330355838292204947008985608186989467972541742392378939368989038950290089044499670643654293871124056939515678003474132297011420153927346380051423929502655930875641479173602751775963722047722348759140976082871321676462281731083212861092644251662682798960604374145984581333826737090786107616533965779160070337901540179018959660455439402429433119623650533015057906348697195240428610862540351071504188224856964893041895910067734319294608431880839769038370708290507956071248529408771802482551501480390433941843368082216126413397765414132310925184367381573307266741363273368767917421790607211701738724495228397821004181837017495129304798875366708958553587012933070905654076361022679258024303236780179877183030124398919777581254583491368273068939666398853484091663173386865828840866376430107794117731769486630348517470453098230040895256995079069158929600718374131243538227390354651550052487617635451137751560979008120464408091834182188224240923681916795079176451072138402778892508663842050510075392033307628735471364470602840563415245162584167795486070307383005473472920332397214507570481137541508465419380926149061407084244213721530448574417534090057666457892885169803871247935144503618961652805462552164810104966836173065220705893324939372320069407099333102859269360233187414005233675169379791971258992764307769330928762397445512011592744061351440460488256202305710514963357571553908591696109418641515331276999074892025821990801833264580440483947176591165727030215773834257111172297004325942779640789188649204625248259514328467569169734437877419448724156906162032741488759005794118661931824505984416903360458243038929890195546476639821562467503918414796826890974291070288094564597342248831316256332251938992890018242057397495318493116642076626156091028623079209496368961000572388031461535873383418248420414127071511614168881402348537454325871707976807249832005241993401118478424674903449290394780048083612993104891295040311792154120403208801262570255354878502549725457358739936093413832583152675723636612790309970851724454745238869715552897015514234114859893047536428789813319704615274928495200101057526882018339884462905643587091303791152432458351598483024033251534567085387959596599725813769693118112016395880721342820091034427952768536765715225112614518601962229674299602138585617456773384079568261551406845585848091331093273754906258724014482361901069771079097807321178819795016565401715255776662622647622161725803206941744326678343729537603460451223304144780816152966325586282322682096627354666324946224801324912484420780270417589023085120060625943855112498240822019243926119081267931922560864290042958528056969395102929889851996876401316424694194405232958703638759802761020238139676558100349289214703198362619936354397557247740707296864029346683891586723835558414041062899160952459902283188679049783981402352802166382369029128872150336427455534514493952363864733823393566590457602532348233477695200290688978777615621390261706173926120915920592042081182784493716842532242452085387561192869513968357573901838244234405857587630314793784591981565983191784169363449721631821551414335172206089212235767966250251982319156962198309141284638045472443662989339017326968036165596425836339449675055000891910307444636797213901635939597617892569895133832088613305988921120467941865197228955001184829696202384377486749991015987995849133067307080561926385258235472066231989436392130474646527528525226144222966128681863438501339801090092499570653671640910114775250759022475137862797350541500157407956851995929122294123980505222353312073293112362555645095046636307410868460095829438924796966696724709688842196436672830994019724830961199158160830350885747138356398961716521545764262746717961051854192006094608600552270526834945257563667667201476231866030641148460744338830936698171392328257463634431241706227530044084648239446737229614711073678280217965093353015443424210680721810129568582386054008326576870572605882494701487757623698926127481521988483038341632347258651373134396642649467125272432704181280244469885153799303127218778814826668751355959502923774918684397063470559364923224585683452399074060426193859497196465804102760721751908876154325892343606899595263604346887857264693774953312663295439593116041851912736725057120937502840684590656071085835719888534446715179196100147194129302800422936826275368544010075190329173606557084745450375968954143668986763443505162780822165204711158269175966076116870427587567113744938996848421839357907935323447812185226379151340298870456295597346059765444808130628908850662872167254007361929136588469380932847580354181801174236883454812953329109807118392128454048772677362107019230976429162588998655921730844547406469382659272701070939021485452931271772018129015139849685852635681690354565320769995327443649554741566782652732849560008433095947395474992872830052221016834941035502254519747633538982718647166243478552569129872900843292496753823329943947894972182880773125139766358779735744402336008198117553909475721777011715177097963176682022416852905638430537974319109648083009293241478430847273655316875523013800395262036837574877139831860160508942446992148189712750161496316915166909061918047117225840403968861061569990780573337990909413638967624172621285173233746339994988865735730304544950186447387783560430365478698373837990685320807533219393484356890269156139287518151141000651543562146258462888850463534544752315030838154446937631022145442759555023409509675154919038990409123648672558450738433508578647372137337825895191600976508754659616948410348335969161705502471280839931603491353724559197347354853675590698060085697848771169032883236190437025223532707332754188125004410212094983804098617976544477668498701018250337190001736399826001135089107191667469732759139760450113094987483993887235005586854929575542821899918187043999915373224297985867704906647783182856934774391458870182031726701640027292927373315413646071842967056115154188488144787462205695487042013945038746910503347243513286519989066396282415172886749058563730389796846053861718143781978597100407255581737778654108700678345334895923803005143906466025976905496277904863532118053116038172280597533982829544607168743235905039059807764481714209667929627622433155064011722946756257422667076537171183968521637352916178709100524444549095292727244610154075609995683110401882291122177528124991147036123225432302243741728262738602318410464808775411723165274862320700724481832095057134274932655173564774844175711204011503488451023061146122989735843028338634539902792745227243081288315651038297035551921889196583581859559020093064890425174955560432063825910347785187020497984435551001170507661234667436894579770711218197643380424330530932195624412880035421464966469292770545079096564709741389268535710949544747285878730708917758482158321624602187523557432507191891977351187061888791485993596332637164287411316925449056155900829380258410554235545236383730425966890675931939014728592609460545399696775012758749340843574249777081046990432956682845778717147749100862534751345384233135819644230060914886681687587259384535286097546061496598863577440349240270087142004642073206740184657787617303978530822178012204083464164945823808790425109490776928859199155440963131864941233290059404399189079412751233634758317317619818355942647141012622760987501851446541550256296158690537990091277056881564152882529240603424102276292171485889222254635601972195257121968709356552313274669329901665179080248407908869051106526093256514664318728551556883544189427773845684888758961890802845230395015256468323880857853261778115590518335258687720703669188946201742655044502758052290328156312304689790558398739938881506353733668097497098007792670612012979880414386488631073610381213516640722480228933298754112910705148694610737395617479637112245560438012716757582894171996283047218545048230668060101455746813509535649189397554197091907795587470024178148597424519622320180181939540189485379657515086292100679288086550189001951356493516378518767019335929202510641388991134839393338728514258331653469756692286615811103781017948235871462505096995212212246618099373504740908581326603955797448315091400453485332346141448754622486692872238773439342563897949121906672154921935735677591762840564482067500813719145186090180036474078780976463824513705522332248127953398720772484178222652810358284133739503506052118539083207637827038685478179753315025687893160573831094807935241419099171911717793161022989505524809705483260844123253251316775361131548692025561864329894536691171611436317177465108783058489620070389978951132339067746138713722480626194767010757634848914460252701395047579218503087130690628107255122567078179594610713820414226207753473640501190308172094523449002144556260166003253782915611181456276863458152918275865039132400168007021052731800570365150265258235043468475268349853487234410574992355021746783991679180310704802026001723466200018729962057946768889708683793358777619338030114681313195905059122499207463443677320316688464728845606473610167667832459812329709755525802061896310254982653287140683981707422239722810830402283732685690547654913930049164403684805575111329972869997121831141610610135531097548900974604001207139578492629086201904023655710705834326233756601516583090863716207665280181197695174694987325439728758784578443841089812664916672256704332331067574793121839922938567661029827045804820188478784981131450484622790960502237540716176646406821361637140784235428842779552208440192725069283448233434528840756553942549810675125341194044097490464094563013119794570242182097778717526320420855446395967282842195320783955212524210969329184970644203587582614332678501902939201035308541428258914043435204618722888068523973692803479936153127925310847775805508046522882780838109558658934470344856558028606569517486160751845419612721757747607829454604270585314118908932725457776529656939796935398380664634132782130221507634628007456394385639988511728986817715707933723737912922449287281974141027007050247885878872544472213522958126501846006910649749326318053552746897772591199088096385431254522908740274421589459536079642032263072774319732110399636424661733964696600912296384529628351259827395484029058041983351046774431833067418639441408663148936606874728765803774107537702724075234080626096020203747054412003522716725129412165160607372670170235797915212802571173893663941270077306746378309205856478893883273100569916997639369797628047605502336824259460375458564112953271173545041235242079277315299914628582902183324416802116405684709464850012284583800459917118562620973659183268989961297755802729007605682266279059047384747790189299821986890702754635534508071829945950298118346714238944584371407364180960913757288631692368602371620846625010352905191566908797708894227935793709504341752988976294249503336733213398057721634549801670291328970737483463659161578559313084078307412623282560346699924582424278830162011927101976437489198922455528875041329086700354846041265455596786103928381324713691938956003443494012644423532310431315386536006894917299806051381746297562435220621788228457053144041300508838793779259802873698645655776215745163711876418173493031092325131367642744567192471616418689935433739256115642046522249872768240179524625498768199506423740824550709354892664301208338527692344445432569762394288635379909800559324157631232089928772862313867187411990559600915399222744497769531776912303275924628067435335739252476117915971173738725710247183844369848207476807516295160265198795555621133869764364701004713639237519659709560983018921730244245495431769010648386147846560480952260358957333786483738357172252482962240490043912620385771000114614415618649155098873322739660035400471262942306667960196400039281120172884782729559142414873076708786143146540902533587252764149694808141371925238502998975441995990351250967193553302629314451089973751312426243782292291626423920022430712235029286885121907396106798766574443671007065788584092893028583081298689008859532725025597452928570682340642598386866267584438979917491170485462272072382981367326714304107136716147709249515283499973243568165414464648526883328378505758474453105452850751543739074538484114894927154137406727122487993148535009509861504252784114620327348803938642396036959791060750827582352440934446119957433910779169892605669639152372395479467221780312803540780900038652609713021518083695448049345430540278285185868857416354044995627206987240603684125200135094378361667076425303533307261164082812742337801468624762162140988405877881824519779179118579823224356767355498279505820031411795196919453487777188831784653423247376843538177927935931739982792605144268968443002367788078665077266557080537075740167931418829128019765523368727401495291164067753037949324413730998054166233216127265710606556629442859332749223785070833286375330906189604632141275285271217257285333121456252293909477160311556480772108320817005746949289966829716686891838061263613250468121740770701120921161155697932287344908693331572782173666168608024026268129739886457378681267426307770612396670326219245269031270170717673624793478668957865499887147886171956118907418287825183412883369320001998207005930535131708138678381117000721556014951121084278802910769895912875338521659917619164067867706757441676822368766778818986089484288071888337539353793009512128684677032433948940247379305045906373127522097223822510934107751461028076097226980959120358703457996533249244747029076097473061063284147320770775086563982177749868670019873516240643589062681893670574294567828481758445325539963422903374142661526688345999729713643551240578970261584484052752708686286087984741082033225863688924919949566465776242682772738080492790432855287473246822953078804232018404404508911710506603715599285576937652516462738826893233905302424222585261584885499919005986884692490005795456115647643173281520757138604804329773755366594508222938738000439373690935156046132360504187115010541231071121238981972711294048650732272138164787396462700424221568131652070844467592462309704302029524211232327838933221515208940491364390063453754091407602391073501976298628118962710376285733474021722007993462882763615986907873928174019594470405265498551820468142394372976217032987164735002455416430934228403372359756991270053723749820287486493093968872294549128631260911065759136340608562995658270260937549684689798658208610685412376571304405376266152711451140320594423000109316682488278642491761757356774158300841193181976361166756136583139803264870415268772621633007327752836985320720187628069155951854251962103880964570756886464756946610169103011015477452680424755054078229741844166731676463905832460252017828399527631455607686927194037928059860270313513009338187802018120727984808801180961063413175634429737230961748170055098498867611853276220148620730314092513483786850353252565649120962135489088293410647602345649011228129159056153873104364410193410901982542036950966083750038440184417668225629118570640632439677861894831858640042697853091643795531392714481496204447499103090955113284938838736343454853592053256449765415011673586047013641507144281445507576270568868323874529229054181740665841312760215443456527813515947919464787667736606741137321609374595352123481186476716974233984969283954796625136540167690949722982280024626169775891733715970374739072621899600948886579893855278000830545816550639626324300301292463712331390429483067695706627208974412958527743252083660577651765587871072577923696862016892887164814451162793329724906767093406143192022229733612536181454084958859626250042810083783523256828131970131992444249738740491182300125778596575848949899932552581773700780882401709809189126500005656762805631469298821718417068339054113042892067296410635818415954630316198867178581021979552961465962279678832878417003045747246432563872811216923257400809250398381242402345729865257834766355409783054190823608431420455741059480391136819757286793544379135149596406748990145957141899793141441805751208624277083975864024376822172547213440103706822441839383550970482427458392158990668696488972840500666815170642877131520507147489177581837323726734875322066418686563715809750596056042756797740543742777947857687823987387229684500524880420820225786059390597231264253066165126863341793393305473021094409844811801180038865533591362733891226192639436742714972896378745901255384458157000342708019098272464920617859152542984787844371081943832214257109072054786098465037422836404649049816790409056891417749209923714044396257889121486977002012894499787269148179211437166212660646734479966055390746215411728826366882184584233273276023955362898549205523275111745762841551037610575118893808507051656524625221848307199124079765559383830087304264044778062502233567698327625018868313593426659689201268392895872578364760215444439319308641434624896461664247364671530594237941924366186501456633932145006257716300749806950411150591493242341400598607662360199533367610335871561894868766714369279612286152516355748808252932339104351111516684888842244628213047198460053974427255915328101199438875398185830797309426491710920467980612013266886502502227426126907027859572332190106784416124354042100261694866553662486084303271121316711433276529477762667499324579437678174341660610569781959384775132111334767567942383307422438740129176469266771902215526140654955201259950649035813780809817842803024093117311582885301479894934038097363570504981166557612458682840177642235559599383605804731467311370516151214410142270142438490009376857302720032055843200673775060533348073046748394201730887666226593936764737694059548501627005261912527564312960035723155999122587147374418908806675996142396478559429485660346537523141127142143667777036456801696753193631768885501560095878530908975643064973998950511123190524632096939063416064259031125115221760711391596703376704387511772029500849066781041931496053790589079935778403183065603636599314623911023473315798808422419397425330716468957021683829876299898174450933188498503320307201528999200015346573832870845026142415240436952035285613110199390134477848079554280565611456849295391020694106219622616630819383457350816004708041423702391657798704577848992129620810043890287607126762259537189838284180371520081195797822787742949743873090890545984682156649822428162723050279227981506385535923112982814455989228710666849316466907577976071365940091970737392237032736622316905115799402131327042542485848573491572877539519984489908102008946550071604737550935642900329281174639895607598497692608748425586443247247143448133772682637642485308405834039934516885153785652097752080574698600480580976866809416333399126552640217536469963950159617120977486900758976834904710038714630324699556145667410991685346978188416218396444615759647000645414059298991046264819518544650419680225031251155597568139974981283330861511180089478956043712026775048113856900966846143716676984941479575353949813070258304318615898174763383169798854453324031783736891864739619812216239731288171381660646591801290763743484348802484971369725226655413882947590300128180888543043182315821805629652404779493872192363684581787160885456297605817954727983015600859478930437875771543268560811072130305328850503140747273448584774447186471920115144869003471635246903722256394027169298134400082170339437130247389216120691294878941896733699735911158499041252014710738376132154027646232585267817669483827222545651082073140014827921906912348709393070479089040789466324791196877892157476886278513298569755671693794143634922768416808526615061760692536027852289139924134342848812651329982003674402015102106673383562971263932048443551601730099809353838711545036473227640594953672165857205812935354891657693519897847369496796855349403907879780907148680078083083575134259795809060360002571101291643508352489303183978454727114364317285552370431383201301311205461234971661307441280236372396095032221769433477204861789059592498903999640357355729646111437297251889223797370169844718710794259536797559528016569246867924936385401157787282103476308866976639049621340761328495831221162182991364064900227499847035885442373863906158987505953095516097426384054761755965664348987144262413942261486762922491073831971853775971985385123501199065080395383843904465152605191248257554298495540909103498037063965801060133674461529112252795341136103063793726711217455063777911216932284845233153569302434747343456673525682022411191688140113358748351671889527555600173341874764096883092328925770177672946959169294896379227845485350800974216215498087492839640948733130846182339540507234674890706775223410463806821442625119985217478377294067321770325055828353191462018893188655848011226073835042798063603191355529134926869403096264442876936702131560259343147083638783748521410399962848356130731869215140985086664965011547308568778987813588460396234284220997695181569439731936093162202524606512342521256835009424059720114052304464597255789806469324720320605076162250162155200541983763778405452573091945674732588158741615042273865031258374508453340836040959687354366351430308633641748439234312647295093694114970140603330227271125964407382269935920444381856771602530949210020325011645619222212540116644945511566091062129535282242293321676744784106383515218715231185424515930680195261730102189068173436382262624167484545220657399405121576717468024194641765945735879787865466973539096506755471562071969914406828263645854618887272181724074579597167219816218005310867605664210124726305429202747703617201734383618524850587136054482167275004834373571492050701671701372811131158605584920257853165919525871095799636311224461627725010534792420843324711443917216270124572694394216016893135113766699626153039483105055480032374784938592536939324144234701466404782270615787101317816160829707176409749123701207641737702054710280832230362662071207485693727269422212367116731231893788761840321403748819450612154682731588665520952312430311566718721976029806487202736978108442131981882122513864364577067201165230950561565308579641794870685786868716926910225736851176687130071199369531105228637488555069310197013970799442152429581000302195190654040297062111515157656420129874513982640984733701996524625681240599308153957139420125565004091003237635386720549828819186779996995752148387170578661723040144775258307751008606915182810023997277056438776909845918319817063531338117236983912883308837489492270971488438246683645017866031719808264399225345995531690526813705763856067021228045617851203698632701251460774270088710639913873534065829688603729329297805922974371099139511391836785192866086599790765941505885868522741162370130768048097495740196456568856380338373477144181263230264744657779493370407011316910740036948889672740227494470021031282370197472188841538132761367396230919144371166006054061905227137042669001596724695528384144359009079730497618504439839933990031607790799303876757330782155493141189768938043524497405781225618494535047873763343702256676369039688847286302429709252893166876751813027117001355174573173038965422826534774476555708287881715068966902182357297657459538774800777154171509709806599460060317865926461539007706719745959785799765090323033780661120054836058773479458051470817145545813113480637171796210511899808088847573907464381267382162413727437740334019939993746938576520718744422534548823165627764545669151027319413743089979153008506852821938351135672241589908360481118919086039143748649054075316552684751279030510859172459336839331622415958381081548634983412283104379093782296763233158697046866691069519709291784636985238044410000144049080455722821648068105634664271698405134160849846297517354496179242283007888368191938766601546849326567256629611354269075931157189742232264596318292908805074463181981766067632874177886678309007014569996134991130368457820348015796652759871287485481119988964213072979680987313828479716904848563523649437866774440014310373310530599992051702110758933028691937419230809544809168452616046539313817890844699586722144645704948786840547362933090796848585374877219326439927196057604711455560504477748365416604096883362117821183887622042819360264885666227053850413095905648070220247966430053522460480798755416855631989036691976343807210052194808736404823348346850485112321084276030534366079057138816014578964926101999039274792517164188565611648225592095236702394856976905129148651186823291849510011801052312533389762433782848085750297733918522253183089090541433864560847722120212499297992790284362651619503160040124183897401620903164502717048608328768776790535258517364574907531288430285213906234756033170035836773946088624151705316733199316189487194852887880303963432478877282640365930575615872474998602342926706319136039326322722005441136861414563271155059086748127035678040752070405824863203177132690608608959824731644079527731423610663890657135505929640712667725176575636240033850328577196195825307294324026782474422600339526920579853190030048527273164049349964706536312632042666296406707159389789056671022733460865127507433624399013244911699866042371433284685153641387204669312596804028794560567368895115788224857546481692174638147238975136658570301018720325281057873344539072338685310227414461086894557828908163266645189116964018166095525619041844162056085024444213054210427232613753429821503227424233249533470242198624242441192143312905483083450233411837009383705349291152109061241761659277446164317719146458548418315968084754799079528465108458884754575938951784999890701979526486377976919571630485603901990610867710308511547652282139828557604875055775353854504649226835128285508216082549934682722907443673151904120082604085952774112496178147970079599778722612530779410518607879025314262216589323734877321101715166621289250056597246995438563951452840171242172072996444316430611879041785610357794393936622260004396578364893553421118287320481587099931288219609399684672935821325599657048647633677186355634424626305701256454084714800458169071410782029216448015616140418072867523430378916993952684105869748964247535480208105828231358986921946363762028258951704516569250374980628853015198466065539898992510143985458112333418117544711683810075901300427916071389885241785604619891108633999712244097290333477902391111123783525348987151050173585222764826467097743375874982572183537313931728472262277121694708849076700646383400013707848243407847463298031670315662989538084062944433329404742076944205065162471654799060824415879343278229510899698771482255806325860844758215928227137711542389725640553438140646979577651022061245543139176860168155929825942567584177579542088224433955631307801266850027557111002883578457279343063443721665792742107794652812826456911927520070153688912610616489740893628635483679007674913696887329190772271128227674220683733406118898571793522181926043024998561892447828202638905724107452403893568047748128395386948663410325394970404368253639872658831639454180056797191862503014459420911089050855671672763061696071344154568619650626118424715971555206165332559510804601392437234675102113739132275843518433150114413353952413417639643106286417412244456896753449803228079180543367899917427504866026104147959436672432084681091570372473644390076491617964837114201560068056028071471151063317100318143347527525414779895087495927008237553366511124279020216432641209959423688583573685949412165266183771992277987237193335117811248242946158308157297712674495591280763973950535074480176510774936364793772132405400808121159659263493822666927641114300675841029770694567591410239942522326903453717116238775758022770454206749660716708121157567808556310001521967430502675430025394023819082831760982967404939387197363644203391027643345867810505642357652145975696686283162098766708841684908157781687115731348129529152763237100202742419068183812578819157024167510365886640389910337502769099015985279320370027289125621933752293932523280225998972017247675486962109763982378905202416728025123946571802627602594574013388421395641149878831033258903049933643466477995367973753036925936752250082904066371479083427215493187657433021413266063708413862965891710231921870390036317425548974030396842635882383574653585125591869164418280143997783505720366120497702260801257834449486052900638791598055894174101350787281622429726141709414332319808435816182391020999569223396799710744712197178188865805193961597879679863481995023993510487620087703880665411572671648882297969008312077195083585298463246309089912181881139211173832660863465118057253842057605537579494447862959364384959744002447590620128208949718040473336171289193144356100096836896093133003965343554079640295356444713441833012064482131177506459588677601444314346861093492337862678597202731109307360367835634562508518957016270007076938759243086325227991105146631606507474876669297233754391967808810665358639152342621452201182199366889754245071871453693174710703891403461974763969269547554977872185996675504029091842930375306741027381317205166058864511544984235275063126860189163518381030181339834714746330321385716213329242360367215397752520919474606205289553781458709920168380882624761976384852645914422746545626340692113139581634998269367019936634741566009044963839356874073879150103452478382349374191685369209738099857653088373940830210497256441566162459429084833550663959666379102816721998369763083209831594532952475823391854793577929986197608898533535374312849661443439976123171806680941056583042717490435970070094069980003545032107052023554598418338671520670746235887676038032168001438177960799991595058889823281008769056812467861348063303168860915273103816446266378479525135031529366799107345747370997389513732078161382911485820306462672882211560835501889560651945127862759272998817318994465154315015074628483139504962041642213436695207717701825842892982795598840386466789430960936124572890251734980031322504855469948965417426170084823231381902379018264615011283262904412602234635581550133932234305781222319112350873677103087226282598047506163646414580798931973150125978532537934648771819057570473357789833604358225188290439096507517314166060801131153543369196887219318828573029930367485780869934848454130946369590433282598689745905969471542092873353348684404482093422505527722235172538701972310720807503061664398591916649397381200528954540119823076172892238286814983087545313662912658072441992658856257192509386829921331919015158791463848433107499258761045540799159725717578648461390974427655049779240773530113759484917982039874177586063661587451742321361024810025399705124911987141393734043636492827970657554036465350759513679152497851733735510894827185901494091776012236366708926835046749402718830096993854484120418641584536282607762849040410813841825522453030107035809387908141870590658367255051239678455831761999183574351751729254225088440162876668446168808791895233559707935671990350012885965972336867924063915989520583054883109638141416980524946938859700187298379622243514710041094770940934055404403053796767919020415484800610184638997260400741266935608708898119324218940699929484922136172419312378740482236246721387472288962563650287470676313601333761339772548476357225418966315704924529015620068782216159181666080383490439758468420967490768485616184270166423871521217256559795239171682037069381758195682366891786744830912933750738937962740106710543680136350101035055915675591669634298963294354009041191464938626520888506800571476845692077316729652347885996044773082948810156072678900380017415179932842462634006463902606201852844110849878111659311387763234934087094130073963427669882468958495133634883878304130950630737668435848989368132230037976894611496934466374327725134446595044426864216637967628317937424612752274001179990436710957956783071976339120376215737780106718490712149761154520312841754426592346472370694883300771466674469392864195763235747442457130094674644328749629819640257407645362172046713787610153584428437569790222858706103718300978319049195427304380225533206209446508195712882997467798179772066913206725713229086372749342633677152087702240982314770010037522186108021127829211358796765628317688830199211138108206217316163312863049864067353569341892295888675078158696875534120209136640228930642751767524200524050842545566581899639629851503027859282806974091828783911217424163661838100901083530019909964559446676353014474237151605698600703655041336507006913047399604243032978678771715058253729687815315005796662508279613664741245946130008834731756836387333712298008309233778239734761545251517073076975444311001528971401824652011396225413440037460040826573522875924293488067705552656525262210432985061675048401776125441728284856750976606775583014734582669518921735709432567222948514898690962649838514683981279639525432299610241267856232942755976643315961586527953864922974245812684514013741809729729929715283500391419725123407327495457303528001018423242996970766523627068321277092815986952165286560610077068251044323306436727451338941916799483020087430218107899306851073198057478558323678531652326527866202910926351431025035961838902523961587601995915469725602560748379735238905994794453688566114939217796485171215924681981987699273190909124106267012159281613207832163745596222095247187066001539987596283442808457505616237902569690912253772554717050691405042314643591254756659729005133364423652237826721108173728505564062143922183676370410563462862870762925391442827841243810625598110216798729354985839424305752677787530348575960734510533323007569813166151400217909276554418139105177574047732666965993705495548972003086109148310234366760280978445473044789623690119607248302794338743500742196723065009286500096766810766847483026606429334169144088428727886269045009733322332478645057941016914182248731102516756265585665729913348617824734129560732036472847925267382956964650940058929415604968240872388578532642063923998111468371640966827289382604565439411506274567353701337765991934495438762885851940192146863508254518525048458335247210390727140242485968295021236188584281978741171059424811016764979176306327183565565457754597440893767307412796998293388534529340810539363806145880096651330299822212753420121519895303418220386116841891129526632077822871458171856850851270936257881386364065581714149680511596762576041180003387606241465597563060734498355003236331589710892923210908646949759224891843795972869396921523361260422877751945087079499455794072849714572231808384361063941799892176330211427153213622174348889012396755608843216012205117539242036308806833958052745404165927842251868666095262529489135432836433918267743101462686395153486351403904412740820325103175942360986612405192532440325184722784880903566395806956793494442991996852002659521017919945713828996127048876902436889061991398308223480893316991972433968259539314638346435798975067958187265600163758885366153536882669339257609133494980876975160186336668714372131867800340678467256476871794115320995693477666201025766714472722502293163177407547547136898742584372589953295506208649452775845221287648122172169881595171597675685387428382132418500153754357294794443537107430201337058510432420769680054974232325588609574779768401612130664554257462566862495966762659075432307581946670919683906675304634039200858193341259125685367615986859193076683235553763731348240033239477266413446610597200897338776408785430482001898702664120056593855758837533225599907390698073591267110386896738968987715662656090713020965007109091318378979423376810623713659667902338074652025545784057469612698330168824243834165268570312763379697638256305783793379509257089760077369323275334422126331925829708115433376030095550461769053317997373334539694185396562975272097361492619046510151574067126227720101514518335361943091275648056851340261868552618356144806177979703265146510322302296704739079086212597045042969295960949018535837629147239605008399608968802088659569919529601382163002413955120594438159468546667456057756488634934307840375174138215625981590457805507441289723484315728560607878393620266724138481222725825441922328505208416297051568636050659432173110741780000597340432653794333473871828374358068238536461773389799274664900900016712725845963157892214886637821549972706333033726459607159319066417935950142940476080862074378054616922243832495673646416051833385812626992446880760610568050524675778535028989793040128664660850738784448504831852668037544410099985503775032932726567660045697070686864405898689851497831860309977584407295300815294475867593732125149321351686407161560925934558003415763207444110893056689327374277169275428288305789404994021143610958066887606003398533160589060135607257155674338199360772884099506351402023839913609875943743674975272607210890838107342424741890184409813907622784315899406554366284177028758450522212235239843041639308134921811477578085194526387845189018523262762654197610646886993325038183184819825006307536829818742793349000307769368048925793117469806758573279839434556350314394040873622369372591367742322981228092398128758774324470724519214540435329766778870092015858255484577259108034753158540128843960332347168779146944223516759185701337853872386277696494110175596942765900185952729762053488376742054877994632565991636556372357673201719782113520751590107117927811976770603913431351982587987215596867807546235211289101056825351417843852193849530123900110401241534914980713133171613327211731345997221569425805243599578538452453344498384840675693969861998846472417929841634408781987786298731924794308256228348666833204290333568280513123506230909475609107635485798717283504216875542187971633190376443063923341140883995586825811073608333396511322458934235871626980754949013975591165916278534985816739384277310955571101230417722306403071960613734486903184169731361837510222821506508222817968913629965104795938347073851030289840104284683847182059218821359619368461039135206113896168494333379921271530585873667118123897362550162021720353707922684466773090847382783566401231834920085507237071306431374730121956163622118185373273093688890969155947402311846276411605047247906988690347058223575853314152212682187126313599351100263645073286069535824719832326953878515428907480996781106753985235593210717183037486287281480341913173267669156679368737077496722207267381132330943979373283886318790724368394585489399615019621693294704540710237935993249529061274511454716733330898535856915541432178931304572243171117044368015830471668737307468468949586247198401786301911261645379301068534985333899751472617022905376821184690308862328287283623962690725234073566989035779838043069090883771801335928758244278028906191816792587624355702968492063570649878094419535058549587373775235575285995102036129851092111510858346278859969167118558757117517581921623495095374256631391647252672884218807635246410290219995094372935931494642975364271280142707335696438881385937335859108944737458631783161359913284564344895952943603947439421330074559080125482864566390568297900168645439754029616717217834434558966880246494810543857673627170189413385052816657548936797080659455531316878300363846249239361401885317334973181763676724302283048655470661746208905494910942917808068096624789674593196766043496718478420341308551462235973745051438666985784666076706480686683555223764348113492315283713512027784619225696193732109931258167101052774165372638632770263762208249889755340797679782560232481922480968043939091353670634279514108971621665392481363196429411327899389419867601976372216354173043168587048637469202067507902026806011122938964736620098631912976690317762350459462675182877510936629380132994780386887227444303130310537502934613645310833174780531121382010501936600884095384549237460930611773436771429351308893650173319603256458360604278639194656556280456645535263156567766572037358423895127030630944146881245094337899182327253447176782614806488402856840185432066115519581849248141471969058295913368377165937197261917951452821843432788778507775591139681275987375225225538570979184222596215891383510149874480213868759664897245934212354394433579702118548781993167959834760875911146197427698758529545514679872806226736841116992968245623409912823256122437504697724380433442965235117410422116460034147235675560901114303097059381842597293128210979413086670593768832092179603076935505328723892660632283026507534149344611724488326329182603867691063745055105094105780410705065985253015208125243349094710151636727065117305498004063752472935575506117161821441361838141427146939776407547646268047486630361861494931694866287689734895612882673560143334245217752596033110812561773251646233200344624081875614877785512325011553380089826457426746119102114910359545268576157342710244506307743875342898686205152320685376564149273517612654353253411694999157401573802211877218226791740049244923210214660745178328207173345171698916919559073778773326201899991993479168151921746557306529686062744231581595514211109159955995958157667754658674590079645052493291735669567502036111509795704162180615992168518075680162799790292937687153404805147658653637287189189310503363079870213312838965761200829620469171302356025746446061627918860221997776856845596296283275923280458568878983197483902847526305396868828779262772342220294201941819897555792880995242600242481810411321915510523045136132361348731690430873934458993367536077089329563728931270787188533170264168490851422308659247221649448525096533551773893755239759517170306817990405279489556612206459941648861835014703328549037039921713848866685923476302974425459654933842298007184143255171550960292571273831706907073985311481594488387954499396114257878290338558741574923545772145895991018551017857889639703059450117505279284969322966471266588868938278173452758736399531956630413137078411767802703781819497407759482584341214418520178463718859566980114957510279500046513240036069126761942309714156361669990197611312518691754631208647168202258421664427860230582160215063109547103031822437169017801440111213325690055460225929832107167205148104538463940057183320625192721055799960756714036452244680236431168321354648821062898911554938714402734726720610074434817212784451090582755849872999236015389571245189992999345588781911954323545087254502296180138775322382191758617724425590405659580487453001386324398659585830888782156209899342415528111705789400653017383224658425339079681895349318026209203010032951345975611827601543371414799495166538154161302050981147868103222461493941477629997010203552430887275821782670501855164269410072413473109015795437741983181508567800104987882064267291090155243725132916800655939644135250066245472861113406254499027294267414701820557989378457882179807560293540444681261786133548411451200080858817450972000832022499992708174655545735823093140070701256220814633291905707373487738350539076701405739361305305674318044445535830311075305057359095018193278365058628204492388394952351948045416210986319897686338414813194135301231748382813982076382152308771923212832142758285153054500989289912715303061139462262952354722860251502303384572964643589551837789110340256223892896222017902240592722872659132060070803557280527615631770924920344492171135405517466963486961390825855857793631805869423389080350454116443510809008490107436315333875717390852458689433953291628544314631559629698436611195281663102227264587052735022421695048836064663889032604070133747739168698078101821811796489167711066718678464936718491003436065147896150434500997299703399149399843392519427544927999937630562279141248862236086095115142033687662673778041599591010278898983742257371010600286497299250085846152897566097878529805049260849540773622385401139257068993532120374695587262914610486418947964184602932860347055124102615779210777133792313910927750002578907493666962518309010209003917812273113757118959700470530014359253806567052611804559973493584572097694911592806344215868378373476451514535161838142274234975690065674183467798705030496355943895173174990894087284342486343593907931670599812853330554142517236812863804133923048933389306068775210579392624133832446443827469011557761271299005506067088945496540889100444473545545806585915061467077305907694110128457740399831209602451408608603841319736166930425712068848411010415093348461552678088585831629473020192502765237673028250510556231365447809234930928857857881429126270202404912074666804285837608103287038819242909158805272227089789499215494591891733562490700188686965045544436820896437966144470984795118536689641271764774707014860123373380493350593924997371416390962117722674532059330156132586608534689195315899743650070760430354557967018341645756356112407290787004344719386504927739413439338176263768288162120591370155035532210679382913248793785551064358909294585287806144315014745093712475239129493265175679788589894680873468447579554154391606642071882506930934719617507428090098370200883160826114662610976041534682903719246243260107267168319374853092499040451465830171832127791292704083857183789183796013727931120555067106545148590882268931541646260913396379923483512014501459964540604830304444704480049607703005235126907913046621773071404206116647538259227583491342733089804252214493798309495952129936767267192599572137433884791097977972747562999514949594244810113707619234301949982508429099318338505405256480015753146384500641716297552528664726848418706790490903492452669491140474211895034574960921408245411588741940276859815949714284135550480645769449117892221951317177188948401203938860281875227748938807898253210956517490974725544141970292992113449230201802952953751320276098576879888898079587916392948785095223591419746148117114219259216585670355339174126258689111845665520250225897774363958525413787918408682343899930722836331946334560747676580832913860509122499763739205199604265437659162176215751091328872231343949109989522417452850713988231255939039350889419549780651934502998717380752718206536507001985348258318027107347264601784092258865344391328640421275227107600749333082764210266849069563726460784290086125875932352202795480359248813743740293249250931939423517723544755955175501896802959787289561665987511848183205597479688274124695958148754825635480232482807245182936478248066781345707460012812886137894053970200264315315673657926710400654425106341951648652797576914828303130397455390705274800093116923768144741531546044624817582162493824848288520913764368100119670643541258237076888695977165852134329379837182213604533436316822250106669758313076383870841409151162898164565992939284471692128076211745887984975516370291737971314213256832121356098300874111925531561564106490333919613015687169572320776125994909510497268388811556997087568374391177750215593845098439525190671725709133826255255978879921918634865090913737061353600382532967778373460058799032094827218469068375818194818811120209342851202992182067856428908376859804010128236493038536966747579817115395165596580123622483961607034078113791670589435292031329301317855682754694219896769632990575950054850589176916541044991687881876593022555897471468483164969641325459844792240781735209674762766047099411971977378248564561051559099370947991642687484481020735043243772931543312949036004806205369362743003116478544494610834948214805621460225357454039562007936792392501922014826480821450358125657987204176671050604573971938043210771308280667212385260858698450100778688883563806069339476842309253272776267628239345380082431747382079848091645282953737088451116927344413973638881348068201629643601974693583868086020646227088939577316859507427016728149609474228130132922107725202608787385970905994039560284268669051902892640660484996907995301842875309671083806163465675353508300026094321367652602037797578344155779403646818628158457849813630220199974315930878173867822670278667652576523195064380403420890437650050698345420066144930656990399998701768547495405008399011169639858362430218093384779697346527945021588586680420672239533650354228333999340518017749769869932550909701679154766605851768906621824206503982220456728255981673828618126904006630545715945485768713179370276297178227987579742959358437431674957038516496702193304686477857416484355576213156603119883641045653527740966263060046448284281732534003865187513044060297477140550012256804344918301423265943217458957164509236788533025565888202656182287513261303915142827827979013587318448495143366884772024215261305065101908015265929687592603342056074006016107974047148915998779931889308807029791810286298525112770132300094556821691440628319102910963164255958276972473794172921815747801948833333203459010498278324915040454481797167627472660470199712586074120654924019746107526735602051019422932091364351112546269110243877759951982380949350561735921176554705825081124881732310417702581871112384144235033249699807599660875426658587207621014708410887909355966668400888653642309003216994241225877827029594062949699927721341270099650991668194863863363613197256303640914819375509416983324344912614628160084196389366249202604981140565798111061460281539799170934800433526081051980092417130514115948046957662868178976672812514489818673897144109080203403699754120989192701999012100775888812036715916448051563388895700554018648814546825693240608703036844079503082554934237127358288869172423975178792810640707918591485059052108652058290240727561797413463140202755520084793983995463088902862842491819440431658448463449654388793661648964979308995182241664053715610803967956221139551041599818005290522493217317635292948071634056505468735224881766165043020471722119942770137091292798378204770149693649146099205661191994726632284283661156167909398084140912212526147797741894959549769272765237749823607816959659775036573649352961757591055751626525444616289107316350352305747426182418111014124690010249780953231184422772578735004917798515380193834423295726657839755130396049125558517539489248413847850128944917374092611942288328253581259833878090780753123678588049973921447671220024219470664481948682561485235938906868093879217994163883768765930215778606678811609040103734899422911638459347230088408846375945496107409918112830708092114162064294418729568515199401904566906579765498049854407492293009211270576389164854061437684246766186786477051105092075074684685090468544431734737175442638259027602956192457174177398428739255951189118580296410760133490628808939527382022319670657517647622015138902499684885421753214734335215330016308729754164068314727536227109353717258387291104510307480719841025545136665953854612346611551274494904930856491880396537160477421167722405932764495074485505548917249617411661176324478875092418059223417293021547933389856380416355987949495578476009626426553341020985161029995872473873816913034823664781092042756252023479153577396205309404325129115656359805671551317156996834387310897932813781330971735510766457527147399105600742734411557311914854007450749093824671641985786436528111334786348019607692879153776234782316032820066515057338411314417092684959883589079960816196489479643369673110096121906020336028545549324241395406606878123066874492591679281728830456032736943169413621468297102267163095671354035573027846320923892676623473157348871661243487527152601690993916635850091144899249789296253943533661704159844386739504680758222897152573706631222617503359472872692664885162536374317178265144694318605337491329834197243383177672172874488714608782873169379738433456154407498799030089952926321275774951667310749412839458202099541889814150498359437615790418500807647663128738875327494435683634357656199445719415855641372913247616911926276435027533080901782348196430788975685117847237812638456548840635007735541195221386020049864277660481497141735555716430899100679212919657459470879054829044035220867917556308183571854189457602488512889803162115987841699708199845869372155913444102614130054897453451509207687318193973604053284959324084114198315184203675085659868429024043567686229082112381841163813788708634449463606151869154728542496403787583369942845713863415624954739427526675126252589087163267730725244797543496263603711282503205952705120600569590516974494030528418853727493525129488017210764130763670405027572244790671991160901519556849246655285704116571173290454447257003570216772241779986550483750083616209667895522126453729561775360467606330716934696447296350152276783962202869504155374636049867538246285062803805154543227271115840926035206071421279366704022632162854178714093179461538675738264547234939265786889979875015410013609772715951051908552267188160592385943376373790059607008874645626707996814675521531193147521335909067580358859082914040183578819089697314705892304248188442092453401815950284035523919242596582243353202167812770293380102899345794947582663945566752097963966697763028795050156918715918029569551256537709789545533677102187852742929034901246664142339126590585652603328038764178148296010865883680898122320141893706787962471966835767199371656919658945761154049782014923678611980164694125031690833032797165597083744518007750304555578494667170769792940762275923106491184065645431597299294165479522830424179311806027473297006980233408538607571118262829004034549727118715795748110783493275506541093399036818015044187600407683011586161870255569051875243216627465829854283815212326555059007013289329224564443520289463290645201738285149330631251456814338907046863885458466591009642995831310257026663696157114553180523945560096267316127003024014908948429993917961160342422856870097702470933317217287817092982977589400105639048094503189543072648197628520164359100984917174501355451080553938257283309953212007188287280817120197604403152978654149508150425745849430134337772997890324657831711623855956723739132516632373718122984153078391692934995458471965509252191166180620973385543439115235789646526279576130868205200511409955307051065314960130232227770780592825088159189755164074961076803947495590616685811858023201070832201763004552522365670562656353495601449556921919011848554219944975821483352277891120956071062743015165805499917597765186065630658480069446940546864611690333427306028237795474121632780283201345538389718207741833778351186004699898374497382656190936377140714679695797815334978737415440113486598487367830880500733217729145744532617559976110630308380188359174876471250957069303049226141436557164971949920801543360055992609293759764267921261282360601454781586207860194008329351476395631915652767766563582170816574143051658039355257547255358435583848399250513226873795185820852308077689563440790748564730698294517065821915933738507574847771281745208643248693402060359912111979946921306693819951561927789271672499463736675855475011971378281997721376121809848509840458058166974715123649985114016465766390290053603635273180747275392199994421039980084208379566926173284291561323835109478905446567892000883136607220380872537206025099611321942006893965678228591525272476930296474679934898757326263665126432047309075274294576117305061033042277800835950036814375847555800308720497096100509532272278173923856253365589199210190287569985873253779676171672977342261593670294306072903521787375544011344150338038302224012770414180376343101348664234711562481924961273970583197565989304713818046517235062429943493240553049478098564172358654323819410660402248675805067274716728424856941683918233546822662563464676361514753990809025155269317527795269987905353065041023531376087947197512027207803070689970768653848523473302106892730616682824732037687373891007389371131477909636685490192573021849285016229608953075795228900083936662256674720517598244007984507042854342595958821498031406281751548981748729582972315123912423572484983487380746110214848662415751155149712422457110437634664929536172684683633966372586087544442501331593479740377168956021267618578792738711853202223434014816387825697144487607873966051510657999900839447381164952171771837733542535963785603256609703481492469030206461876574412506626321385679660321931991213295099382426229938599091636186511159343030641692935654598932962783789416633806948182603878495293389011274242760360172991923026885491246510501403278231585550776047094240107778905441583661786692451342534589873578010387419395210428396866984123423749864227704964903074353546941520246503478813079061387636674528670325135248050595370311753552430955288928241719035894627781862833466818331885483650815004258302673509189127525712583290945224327602213708447130178664724646878934477477223358816390410168219433749797491051297778245785240006118050187181088034472591993895607875332395696240578792157601764578036889608484581046835884999592768299404432162981792083486568919509405808166104232086673285888510261454474820732674023961119498600374318966642380963236516914119732026219096010391175442433189222768522110141010826852192606420647353452577765897054532527300529964028088571615273193999031985779946304441712748881837236852431404088221683534834897065992461458010144651478198970426014683941467485786355552029828878545106694157603344757030908625026635596631146810965125080529644916213884770367162274446366814142234483342895980212711115556277852447783418106071009697632164622718185717935466284270028465623676387333750649457525902457864238842598178803032719635957887655984420919866005102869429388759356736585018627363319704160234445483009615916309773770196224086967916264509434927524217729473425317628427687283251231222635718080174299090275272266273877882519403048498817237229689583391448052176733703117046146728712593212762720981086696470032596531851479194781334888554401192107137707208157346843599545854304911741300262433818767296463721091144276277276090428151702736941543572970218468518273503131989026840857726653889516456944209419280241183759302664308028767453956456081399284592890264822101496883731097631142107607337223887509775544211861549995924427247262784113182983915635226585366770756801097561018494847306256580993996009455253605121750604907947703756541181247739579877961312390781312622134494760457729859081662410040250476758544701179147298334367950453038316231554461310389334114421931460751246266494041212487524991802296436701638622367805300407545027131941168345555287076234187959705693429829522002000367894290835678415048791699409198598578369842238556133152251645574801552225315488823537718833282977973666635178771932629251149407264628269892796522363335655022630150028850698811392468163232278647295153430516803105257878148652810744556000899038513219502261687156982203365701983073716716013945388029019268613081732599377549185635784971992061630425410078380943607134712671390835510008658304145859980016314329971939276015447198870718792199767259961284015521456092511068709466215740980440225144230458102582767585816992207105537563649470644361300477414800950671888247016015307541383216904763463548995846661141787859456836796531481236774195205183906869530322090184937147397564759338053302061924537238391720273310803214367709466491474333702725529099140477524633591451245338984274610751117624464634747269556165587162851859720132629840373677667738853789394515405525041661544633537577561061385534402837421178335199433828675859719999411816949622621965520394794342401683655747800173727537091535530806566180494742284555535804632056181989311263459094245256742010910107531481861812603071474066552240761523927443300539059115973670141950356376337171862575797767197003791459228541869318125275414782411091450797348791087729693508136068480725121666414864990753371559676519764304095141471850623838058602440678648511702948271105527912998618075956659609364961611637714995018375681593278691684835581111607677977443785652900599033961606840726972384634199079106772956466831955864391180839185238610299470947923313422122937051125273845645251335512064646838364433297340451502629122910591570589107125292070412317365547852008622717195167513653447866174153329836655056712195940412212499806326914385337828338192164739816388090693717739419283636210754687864669599282034963550360480181338145437176890061181911630488411896290565278914547953670964015882359065132028662737102201214928562703674629886629599004350665218111287386836203956821858207261747550108008787415465716873006120427300205329318020878305231546439224326967515481878421219201850802569109591910390220364531388076729411658023829283110451132297138006263436180448543773761980613346927391963429100387581962095556378345830330512386107284952613241182122099403507685382191004757104889264494915086478537927159735403222881841419035935956617733686761477575279884114564730166767355542914048770984278193777513965558962955811337859435842911296638020149831980187309524068492728877648698566972717412288673389996390472726287019804051586752676138498924418346244710268348047028721220558680674525203170596842996993608869862401792598663900128367041240529177194139142840738833952990497806693003458401322708178471569289164268731102209166358983860541255304938513687305894360585055472228158625076358832796382983754298683288961266903551065390392536431914961976681136774783969790668680626326031604057204554227195956908614920599985003296092848681701022110270082676722548284924370514156742414989258073209687608280161880063694343007000972184397638083050136444660748400517732374268074127638747939441215471421727509711798244812895946622241263444480618802797856841305016610840558213505647408004830545940120730028775278249027726480298869730742158817090035739729504999518339501813023963180516323027484680959308826054531024303019845382665092041409868423205677053091874131403726388470088175293054893230928128776056510936877333104886943735074527517719180337164039854053943711391103238828784999855640363770593627873326746769429502058356313424709228939850063659506897161894220183286143910531797875999462258806421869572353734524777236027469718286676837452360715688290922900150388916539710234855082256597568104028084746668882809213760128900287995455053633696519821818928562711083228581314847015670286882980893053863713438220817663107145905848203186554480096234179430917548395946293740133494895733605131358663790489672382432762188238395940597909160863447025664889122902047886865276020723964427816140981483926359410991389242944504067303886069819864754631227708608424058305170575222187031190614475689843051063787211423818573300661322296068842633191732968041205296393863778799760082441123725846198911971369553764004776655142026169240132852946635787461270220667851665590372443126061937636369873633247787837235827457528822379202693372410098435925171660201131696369202486450577426105965384460320170493635889169829298260216590757775192674673085168938176146547672757242730791345276434041704580713618992357679909192201153387567381651466381703643070857358559209250585398100876688561569478680034490012775505262872975257792253929838157596749013676990914836303747542628939341649624650192697554013122468420949079320164420981657952525764888179833855526888239807303487203909534462288426585692505206326331604283313124307231557983540084444681848250563372368357161435143107063172569480362864326551052811558351270384660647882317696958283323726566870164155617879481946513183332086920113006966609383239183665289233294634024848666989805533057742627061540997724663606218354281698750859924673811521529634221644172279345045410745311171328998157997471081638102208546775130281421723021307498455647708636082296661100953045222604039468103865678463701755876026444815018272778271998441354947403558064802058328157486145313367602934362544250230204046564801181120300893132557821638561197155487112822581816199327497051297973133442033600595508439024354916614330708647333433295209391688250441165624491303359677664154413878315594844590926605851111096539643456670399008801373115711640556547663182537843431399515478835631121355280536618948306890162889281525812579179005541066024284766366031041336713388680499195347338570207324592482795729180756071891220847523579964406942716334875311320043366089039500370303119652828519346937525754247091285824875629462668526574656654022880848464799121615591433649055863528430359952051296643003826368832789716599410987118696064191022158627514251904012612678448448594793937267628827240795068765242478651945779075743097853889858012710937115777125757228153998279038061102158678351950704877683037544656597065413405314504642767951101358825761535477237342124117929299495370177871990251779588293148255660166444422443961333900470848400979090083540780615108902518373539875610496909707944872511006663384111627908660947956024258689482869614199958546323986896402273801630854573310944493155235429552958977621726553162614251452081535011037561413385872844936845549802216766992224246460049434331339331177374110033595248180470524427909932267727188655846417578656119275507221860997002276352437452134167065892143050689825384590493586851174609500287858475870346612116290384720540634225557075380191797683172490031605109609319991253982631258672769609919485874477012403392851135635152711938016849679557211179104107209607117438313826619420476676072943512249463389404530842162422156261180401520199015483061685835766392745470987389992135018264220536690300584346012053896742498441552186687050123470111574110382137652155225321429184624346920854340861284094723213946195907553343476304841584332389005669332396462513630419692285184515509471987710468065522180237454757007023460232371742777393194059181618842476315354634029297635180121903783365307682926864942762995501814387536749635517863392991085908977655321685174472329554491147452280987173513570686842621874723743098269490545852152674753787321740615746879154790293016666465715868750636954953834105422883886324871774277361220383659435781632147915555463355329196017202076820793175147589416304372373202353006359443382007053453086052866717163530012556311172894155222365114642859551841195018561560987103313213635956794273799948239342982797001724706480320718765278620658530715876487979794019668970037261184884580622010691428631559646033000906386306317114754540010089501808324129484126919620299107986660653352564439292192676376732851433985718794241766259519112834657926242535803983140975908475250214835340292488080642533636071419900368010369198775621886925565186669559024708841133341052438436122757757054026361204153617901022180878074797664659903593075424708867317385510813490635650211955826881045083972740390697443514211198387781940221783650485275687374154929149990431773727208063099993870515277808251543109954499143319943193166610671273435799781227494479078699832608788512173679289323049678712222715804572941717798056885680457292970442098917021234949061501934887102199182449116466837496604184023514915992787762790296802767580753814137329301798048019191901329413901762869772869835665473759210491532754682798240902597579712661621775002582526144602736175564347700786421045207215897453198232800770435022760892169931246754091614165252593281343016260179352244056034583045303787307200561984026495634963901093654351487693263891891678569723214443124250656186514167454358071946396688370316667545493391322735423754099129897443264293335561606204790863985924552197844574380209839351088320553136385174985370167482458235961051676485232837408373444609544169020816442628670012268796972289213118355565006784569777683164659499505173890256762729270626596782185146803949858013128189406835220858943536978047877201348570272921394308594179179101065282020042835743478799978413822764553160106501965692531951706662315570426063715472413426819116065528298764368401804290399635961200901713406448509146995103796338270550266472504189603903230313075386723629888102764647144797762715450084868694477525544142992275528991111735297028336545579917955833945538272138728686327562607291117569415650494118620388977542116377875773424956485157775819095869362912895769364769372942742412258266403854202141895016767032980247464642149809614950926207029237134957633372971897089823933709337972714269774359166569912315726492005266533909005029333954563195454016777058152525940396981588600591554054427710753239162792786026922461561221153135549865338559124113958512210090893736618656212677819031514785892488533088260290656738276703318553386980191584655564084643672181722136530518516108423657160308589387495262402810898552826999768961415909695936927166951902509713094360939782916992709860289810021058804297474262192509605979489924154416915024022426001692750811868147547600600259366910251539969819612425868255720391987694465913104437713780844693118087911036554026856660148175647928555396928772796443611307514021732747604782762881082509915932507280352502107404340661260437317688401815075557184023236417281257261425301925742215259050852214869558801778590608939018690945601092227327331473502434943473255933065662357995831555973290253275658796389460826789283894452746379843629287750082767956582236459332976446313759047560296307051470872738254071253757526354057227040376854383282252143126064401821754239407473232882932579458085428829706358824213981534701194905181970860847725627909814419646304776235881908131555403815463618619851766863814059730359249468897240857340912060877346549861014307387587633759370752331427823883360676758514402386070683590953802306381413492627393577131447745778702161329593144702087908385494303811051058751116381066805360347357130553756306673603919546764592520716411947451477708744805744020918066483246125155273750459122854044416918080807952608507954223754177177899376512178036145628083101950277049484620743017048224276414780320065206002366955868340596741622851194800480936483861320668561596758093057867519438898586493201235831944388751760056337517164467252508539936597408547675017319169618456674841576096820004693722307535690219134249759225945141050340885500060714445204956119420210450935847297806937739196099059711048443870324088193767740222308465609319687895563521673573032280504813854500945241184056055684154947150497908080071369536044067065990946130209775233665171713253877706975429373428714271915821001404689582523369530958451227666422272759135448133814252327124055503704701167531071674840420869537123400684535343246844405072099829331251465347472677809359447858305547943645707178017375720566975189311713412802552037603393251641750860059692877348677252303831353444424667990651489609328454982269734825754259294270630069194707046389895531041638218557519536845356157594197832971740578841645032724462955238862957320775710731743961797138174480172881954281489814327969070106986715715351188531775447581571840658002722967681231547002313062720407562433538149423723757596605478941837256843362390750864085442779198952470957487986652394885173469345915212382251104493969594307085254767824530928531228332054736373223952140683149216022217194443421247560759121698761553709477044063056379323053265743037762720257847163753639882828623522523825466226795210491781537995958164440111922865882712145380345412434910722931483485544194157111410377892106582881675772139083568384121690813150965913796501855275066956045801502584606575651443554327423395568843037728644472346530584516068362268102024009895359106916782724689781646818313019393000697489682247993765464283463547156090140386336696414165101406796229988847324747029229031406761495643185160799521256702890787272013024472035756272056324113937205283402375948539230847167062832576897376734155913117681479420711348136970014225308821677067229640606118210476958475982877751285345001966587672375815223973045400988018695989932122278327344887717866971974406141203561498182636884834595588893722064388545086493722208982854926993705149743226257595127820687814036200079692482373994598548555763626985602233975874030912656494244723318746716885821009361667759758981726269910628815232436442414110680529662336194920231284538026307470595920154451631898367740057779419923741624541188749967915349941401914504771195794620611704318205363610875934441176429395186934037740688494428908279726384134884947765124135875185897505867401374503288350548088783553327171280019243914459715372529838178889585174464044715993176507674306925804215634228179243411445026280293750852233400136524784211074850558595678988785227469708426231498955209561786115958138978815792212094271104426037551599676835589080669105195016035738194303566046145621381719920056669401993856596654812790103629759929423976201214572319552098752333431765007747450273181760700477819943920819334515159525815345940178540998766164932469654864687971208116469745720256264885010645994766337199831337006232949754409779481316465978122595655999102631434534586470965956203959238685467332532633618303698245902350407638723790943919542161665564870494930072368815104547374057393988979768498270332797530764223226423443009859060093443381124903531571805347317720821915916870980673813112426340405787806686851137742016005117967345219513133817764738614401436578796143065463350563004334960908046234413799726643238877274253449968130784995430616851862739256625669801002291890483638564415163564537691074846195859497749640647074520974998127169344896253189638729622885368530756707930455953789919959977512749541024313474628862806755440306813207931584954077050360198980080844013008825382383384185129754285954362305267508406650675117164408293492110817785869945442004816431187987308052508598575639410170584242147498942163917590814193175301121125695752642414845310091779344246418200912003638809109351298426875122245583564124573736200200007959256286199399482541293509758237320774724418093600233759111340920125627241262165506915065898934372499038623576504959809618845789616024635369629242729569039889398912850004547160757724806798965695869495065766843560122110865336690344416826968235418966870588878065340493501421389212344172264421530002280721962932903411512254921387760109985477768002494996009162748673344888185759560117079004304958273970353666317514269632121539749706066247846941581706955615164102708244851315503121456954281136351704768721169929515284999819473150489944638881565104048355920562680787262086910098279900344962469633018021054303263160947941807287842464147768841426902446831194396262693968640278523589204247565800781723098609069811174944775970322710764928865815642805369770978393282752111540468554675126073712592352514757288536220500378434081208295917456454920278761573080377554723704965493920976663915996568593287121394224239300295191130928819766174993450493108089469222124718834647518817625654540462993321710893164644230726891263033693741478988502376713956495009379504181958773048766101774924643727199157299829974761929997629395196021558917415193943760411444968863420510876605580687775349182502699814004472468832363264107620049000869434778114041565869472587120255552999365457976693286970356533199566222797184739783580812647808118310219403060368040084017475507494321867659124589126160008396677515256506830116644961721629003298568178108840042122801984905304660246564529308186794240268506868754289149869116588993105838176398676030261765405041556062262410759534115779311691843030278767428050641580460377476827535167474103743826291867407505023733341270181766403056726529694532037459930731550844884673418305311310697955035131588883598174445552278296492091131224500733967405075651776978839848091315145460897718537537376497688415093069467844143494575339359181489904807622409821191378360690670829619281748279507956569977463398219171306655366342566269438214697290608342192596660355321247359321888539586439223879338544704002177689424522022231653958291263142088352745633389653040425233501135620722759816074519668151166779092495356462617340425624608743557082167367710584981915562344403037063357473943118038375581871793392394331533605089267937841842020337490446583416424655863294819027092721888253789660314741975506757495267159657386112398096699659174155119885589072202401428171047931793921705830317560161641697539873689028901393816974435022228260082200857259493619402195776645530711660214738673413108504211579706068374847849658826395249923239829198247294954856596480685777127195016361074025261418177786293525571122383652062895556994009466944287494017805993688431777689040347423506651691939044622813807580452670089363693783168388252984658715802446875443521519221860752607704472660579968118051747761536845403678409862903683870491116674241018396537890474462566450055218755206309904799769011135856041626457312942444520753082738316186053968544235795459698181046833003050587485921782292883920085355598575435897447886325023373985219179606731486637750683067061764130363410931619998896410367837964485519543624745112130349951979542560018088990915009565525032749585915937289315973213840476847908111011811654500810496756137713573780476076131147454904757503521193160150274192356385453956214837983472090553003011890354527982300895645347408280585675213654830379046498852298846111856393277066148537192884500153468709955425001194590629268797341623740036860797635944036006211092474596399333658675538149538446064647563963491079946004025307211703160192383493852069376055553272245889460273658582758774720007969536115032966725399318227953870248510682694150992732053400035459666351869593131542899800408061071996103193831604365220635780345144176865573937358891427705325888717531418751383541874152662891835212704404540689521347902423851188269162213068123896190208966520503221097599552389786509753009448987888003771600783623450403372873150947460355286114796037794581059106584469853044817089907116237158697285565893660693855085314591628526523196555198830691933833488017677233142170436951107581124487891623612466118470793498074199072913921443748383440880710617442240547453201790632655062800162440229510986385115816868259894354939750683869243227259204126288204662927513887829833969285959802484584912761976834801448949308001209118423801266502366384422062305880437886253315857897994680920426893508948093295218321840063394331822287859389466485746638894151523887684943252611193803740616494074641232262890041830301279860183280374348928766179854998815260471069901556068934209684961658754169405170130353423802734934040496870606269395882687728760907014335505222859066575364040026333145877648012140423266715639879354501552809626838106384438375326970076601569502997776941436684978359323556102707625949485969017241677320007337883853489140872041053029698699673789590410690956118057036653983468411864884475904549120686233158132731269466529660702308518711587238670998082714793289476180169645971372485753483714418017354954246897480478334290874192627559156801390632170160565311106740814953585522404583430553275915926365851163631919194213836690132956748811121309572078380630135405105747179987263780253426410297119705915183507287502699676589069120311416119626070067204032382118190055846165713244733317163338245778936972860345383774859466397715927672576569645616147063020328374464328833871356756437149133052515341399280198218092669683311501869688488668851661314103076961417023625615570493525961454490707669591790539958655765315359212338084090166470904384110797609415689618982423595485730792182152141504710418524704042177207408865836106500526636718605987211502234983423758742647317716882741599202651369883268049969202902249391486987343447065430351359629169127684245187915793557409068096979867442417178536776961150102128786348923570797606748892560091113816666529514920419557771106027604806479207692875666068023819519935424971296234951177549520713639797076259060194178204520506281386340108126283854505158135240514938900568835528968903437057848578114744618753775672277414191657735204852743303953560638976911757975627689125749735958120715835549066469510527713464752747541591024631302371698626467164707123711269656873168571085125526142227702548870051099773719352953378209914554846401464687620941855359853830916004243505286067106750528007876924580893445355666307264515850519501385303006015010377019478269119509505599316419885217110642129023309563990498632872856322454166332073215221089901907953990839036847575893476692609137525101212067610816918263490194526982861143909397047775464528615197724724392708858096007138451309495528007754349977803291286424808408166949178355880966863925064715311786563288158401839276167148089827967887547605809776345845807492404859124216097605515593183114243922778969086907341150434977403663532064695898016134476581575788325979283256105633220470127390085535988867228656900602221158485696646536865855339127524429886844580407878324812773762884558884006222448060830295666227940204358100270960323082545421139809223362852306520008963823316970654590802640167489371673803902653242753426803289510078769094791373712808788488723536982822030877201689390105978301964250818313009523587007136355309997888562296422062639181448824066994555807993283490722004587271724657405513119311479729442476855735941036799960381491692685468205160354603196352534024582729872235475696514341972438494959840180506391248107740321629232527178963338178178112569528458064913838691368758129647082125624323123993207566447010325123706662715740228338730889332471666352037957650445474948997649969512798790518288491240697350054303432043817640243557561457365055289297154728123165705486083653689843831965913259797664348051245044839835497940283239562702963513974640852032696023044298063376547160169485244362499186784958634023650642882620944577257114757640698290830054456403096092634075150451735776145988922586218910014088120971478846656206793997652670785104773379711726773471916318748132114099282046487183701106966604732011168678576041265919732952741027173921062125636742526540602146744908855022275690085365288654174399778820378570961267158356770826536476466619017239620614363278022671413964183073306226398164228465247137372919770888004762158632574183565717182593282607172848543966257793055448780674996546617060221619659888904318882015707255581152139904358508598258181221319070307367590123911786695038636349969749098996109564987861723384156012517181955660001181105513242172565899578279084818513094764880755538411531232910380249185777047472645205199539739795330362566508165661141496230552213291519174287655380541345829951548750510582821293207875797790892659484799565832325726696970807898707218327129175373402725729943974614636949648941418042473331428135264840764410051554215886813158140271863345372109968930114282770455560686524524180064464997354745771584457559064972360946244214302220732135915926450644944577015852218606445096700923011342623775027993664763729994403532115953356005023001243907893962946709828420848711658731950389587149866685068778590531247806873491202563259254455336434103609660550507556792168985877264399755728505568985291169371159487216204346783349713068002079411749346465332445310266643131681766628377878635028290983972186107766523540624572598963219013787062667431126577731713157377564358742675169396154837881101870861649367102981745318738118142485519265652328146698988781271651018344442525107843728822746529383907339105018199093324016142144876641847580822368978149481203708184137169467999972044710780543521486561353137630533675487377027188750828604681401366658469241888398218152821998462691773863265208145514681942049350954063810466317669573413538451714387776721434088696850252341825039980486986609677794450321421391528009489191827242795665840427246501762500734929712348686626968347674380473241021545883714988553302014300614023739434870674440228522403129788088163948442664211871141508150227600902211687030302398026581817075435470190214753231139872833124650115616296136719539863286006494895372193863398747746107208297198317376098303754966068080446424884203486769762184861898659305019350335462561888978883819343975426395722154370195052775687315051220548067109504916943814343371079796025965597542710079370390086016878754001318670154295012165964406507988023615540166989400982924872608749845612868523075841080142358665768876760105551776019562111220776148107273248099366713490463576339325360566392780158334148257698263504964188102789579980822091427358345080435998996284698985438498904863314331081780395470453629772936509711456226515493789496744941716410246447699288934773227897544294264517078260045095963019198564978815383927077038853308083836762948354597817461416880275702402224029251583791660572606384223654363643002263583765924011200147876773156091310701011201391260033643481665119904859776764227601203526560422976518988349262741947650741874541658712187596416473446086303990238261697276326031231198726272293957664580811329358164832510125097177148554574280883209448778433113576390435976830437170679537206945650616923398931188536611350366940274231814798709348312172888820516341622431771568572547794995285760595042701650262015089703435004248248527528820082983627819812833285029574010272381047084256582578689700799849029907251662945030792295237857247550664700606255669277277800076180938323616033244788106680445692261705300125720548947350711840926905483836616458196515557784412669240308841304154512347531655550238009225664031361924612741999357176336307920768027267010305357009767517666425453414824665767695715761261828369078224692238227454499081449471181548148882142758529341601195842659217702042892392116666231904730997880781988947585103743665620338939391304941612849165356367160005491693128372488983349023789771381227453743790871152729036667558491095813594958645879511188565824419395747129534374929682125102494137858702139634567387857612913364485730871526815807897025038948048766883893728555845515399067438946735494579407208932879632003875195193428938543828143001301995727273203181439044332442117238677274317358381293494560608509332451276467434581060275900120550804479392751285254925261435279699540803779442056355105889907315769937914112107968228465482697945868933670855097754639605421248709066222819579744892981132544780620954098910037086789752279221890382334516092686155535646937819797099728084668038984148545856083994395917554485617527963646424784093477455256394548553631630036890718267851082154491396218697308018111501988350233653831858615175714847161516914589974336346150034395867058249607070889261459504120528196428222336705705384939032366706945332466638689962020692515866166791121234441110643551245232686733144134768966210577789465916662144766600938561491591386771769718484569889923901599338421125980782306070040517395206570845422504274165188809259528837148318956424773658851900711776865303708377956357566078792449053417078185265931612516185222736014347035416276548751377628400647557014861898966903122409290098030632631653237920964772608995116978385768410746328536515578390771134072550075558815557721256796821166976877554921911679988321806926587593488516878034829925793868825187433188603349607003119527954342546501800167939473181852747446239874825518815667757592188586685470319071179058742343218157184537783728257457922721059602022466218294812015205879815624846383774555473128280651977918148770678392973803214255846962682647873930418814247986879697312639499017254230069472390272473222184570820807813941834151741763039332894878510606991948820126838067151026547258755994743094914771409966363933774902807926938707681846575268949120585292121934535677000767598298751658337945741306742595515151479498148271289606421255833041490217131139273684482078012299462718071989443993047898449384739525508937111220470281449142241071384246562446316035860860313034112329533011877658927786396113575052402945610056645665141600521636051221286154307514596417977809811759332931588701001746193865072051894982422557645518424833952212656704925050215780442423659054525013816273686566182870468468828775212578999255282887048192805652241071125850071715710074884131258259488615336654565360580053377697531431990829272093940599534705993412674386451039800542748030704268067588495638231362137467649509991835702249642097657204336399079999244705329652988747290867475592289808245797428456697040160638574362578605467168754494402886301978273628531007914564262220848255851179967910274153667267423466187668947452306223062337381002962107398113686177312597855186141429932065052117999260137438304881969243287094332913293843660109253414316914288489311173361915306122111028383513089229949322009156695128999783373894111504516224930440451941163074625138011378530264244822927151540349060559187789675887634446230838038836361345113965421451768204363662859677544132822526271995363162514132624472853276093048280041786439430298207015479165637104822301326018753419075323813412434965567707661664515372034007569243084553348648077932108093126494375461156564577213887138371594742639750161128608354402860856430576829408091363275646792794898233730796885078995685644071126198377408695946696254286138691208526164044021185027060478187130928688332010910038135903715940659842259667781314148882150819459930753807303962624359309046203850681744776292298346600117275649643678048635453506117879378208900120985506527410166934221414278918981436653158266447697641524374284989307726885531723527198664879120036938493604452909014394590519822728739006666598842478305062367239006945863131732098554593638363325587837869982900027129103606743443685819695175909155045492870241557220321949202173913939938363674887538260004152524244547228355082148480554144431163604909807663951788373125397820672731715821176375706962774538521607778956641783967546450644289338126127373361353920173356887541793259359985473354021076315560438272565103951335679570771618972042599983213630480355076224030787746952050586554697764346232863885222190119176106460659088563333629891173089849225479238987933315084324036834018003788050203309973682144515189101964031971621649985537259080723937133931679475145116963503086403093010426733320215416736411532874556231266200201371446946043239880566382861849156541390535181600054107142715098352252596265979309291453353903989154795828299427570661537211229626011199447467819651747465537569556618945409291226565732038087275038705714362729242472840387597701677505702351013597038649959875495733013227586448415499834538916399638037970476469148385697075115230646866674655217311287225722698136875917262572986938719689074114151660345522546831070855170225343796109579949246642398474065398671840761748957574320118637286177480794734992532866775750886266007138180675266325546232377393193427329702447789636860176390667733654769608930687242646793457576262184176145425506222879053860375038117544418325144218562257173810198515861041388000107515719145188629874159874777672024561226146584618042538931303984169024129275060385772194311508026794280977264714980401615846604306019648719681521121442723960021585609692593938233874166522449788217601220085597170638743404161542142619659941019980712769071795107619994196418964585993591389318426296522202898348900865364503545264390100947876224660753565824211935751990277880719973802468191693701263585063642082394931654915857830217372594190025645028207154122248736572481853092235979744047199758957766630265175202366599387755402587963779504363721066681459605793225977771145177863678842030953834768897267225376986832586770491650942514165618118714965359052248407650071820887104210614882000833908830215356239912996331096303337272978321183162198552946480987749949743470951057567973226547885620199660441033947986926696856052785740781490251373579930004829440131195319216488924902654424061946012550577923246236792823768165354600081349862478561868612465946084145573767372296926566411839830020055142245339674834800901198909045382998146696407830010874805593091681206945402017597647448207220400293808206315851675958762261726032560691638260140823651489953668188046019827569981052955557856255474176527238717937685319918361708262954815216598638899287293630630859915194529321171076791065602753634756431240918506164262515229363445775641036384228907359622792053198241971838903782491097035332217924685418588812592901172694801887511769196607370510248941524276919520093934347990369124194572973727608069487657102417507799392954305922184430406753683968897487400101370394451309303315111669282125033485760954282157502870001882191552239923747930180201189614964687303324731396211488356887070331925965690296734439490750540225260237507906293605569674621378302204856174966803861107984491724571869166294828111257869913856347992220600843985520699775126102833802626624590085271935995523186800694604726920825879321550009922917653437583244021462621830795500839647386653951385388712949428909696679881836293294485240172143829642147188467932255017660664467804429202954313576527488430304378964286650424111235766095995217377877944875537876534549221451399766852168597684703301439534458787083823276017590677670651975084730915939303630836119891167990426916439746234003469082069777499748326205395709895804943931318416941099240011476966923670140579603741256914559706060886344866124085621623647244041048288200918258135560676917231068681192438536156351164539405020397495734631879611783858235836453884391663917237438260547251515837004767549383462481088800614717464705797086010027823934381432559068226961317008497392848310789637611696083771964406618100468872430810075032106927274901519577395779771979299852864900530984173732197891683787599688352342604325396957744657713320994196527654992453098380471713661169893695930216305999710275513998424551026004845793218018211533830688034200845884014560232091312012085027960690745357300324329963345272658306919735306121850469355356516585792998958565739395966057884488446233773588876630158187948155106846878506173211592342937339431460690296912465718976078687189265513230421656498889734428612637281704499410246574885941817188944152442388939560210528935649539314750188522623854689852624863656113478990095534331675334919466656008958915120834555756801058597525268463161517157986273812102795488462684956750955301426783222512841459819610663226873532709810326485793506696276227660048307199578061703441916753992341605019299690348377479263383202288542009676061849895490044621767460519914781187550826698950387737192777874898202410056444905978419018668887663516424328633029750927712085324112881992291373597758439143186475043781435629543858882705066227814368738647963913682357293486814344834203896575599596254979619456562421890042947896896689173334351899337221061113867565816145559709031591248188629265473918218335341229886028933967638984008836305175838903097972689832924089640959128581219582689013855994239685942887596005886365945540635972753915183475131847052942391309492705250466886004455591323538577374297198023834571405373363614899775837216439855960949643178453554009192611550975063766492819545282020115463332262688039527728521614215654132673748564965699939706976609931285555390889193387592614074343926959336202417230518157660958165310569135431151394372751634713639340179064401555287110443998924122323408183166246702930990748598145295753301475065207523808683396942370774239240490505248091463303698987434646961681519969496527178218461165144361365563960609102371658517207388568080248960503093644202744152131175840545110086996193912631770842980893810662701045476728199827339377388882115394341616869905067753035986064500140701411255997546760973631393187376840505248967472322882434983597865978850552554911661508891782694750445089179538372590999796180368096221396151546716842467649819456474341752822837004990259293416182307074291147319968892374233070468999064198030519680953951269266360697893387440248102186723706024449914465449152815467331960336045746218226937244076726127381808211980224870145672414991757367625549662800858797414616455045330015144332999829115438609514010852389925801815506157211079657830316302317860001654139474161768076448825446579948528380781477379379819590780320200264030743039250309770814764760157344947233297510086718199858149084618082615834165623041039601041606157254061829211532531927998368792548376436672505239948136435632074479097881829480164168638249648275392378806457333205636065602102571537605977395630165860419505377233348116473521123677254031589092304079367783110709408668509929139067972628756762358460978663934810158006801934707020244498825549581145431513172064953176447787712230788726267731103325233274577922416408026824786035370851811131829869217386178311536933635306659492023064726485916858593649355252173082595411372293739233946855687213967405867295903492595543229616973977389141759294822084602939257627877983107438499687642537555145218988357992220604676105438147997226152900738010989784969901410914791938325409610591699203051080691785356845998476269239269953484727534851037565377086359707117083760023719735263057991543138123482341489448324348601673350231310623015668373947448857561246532860493043182396626646361824344001586938135468060334975713097891952722958480728060819964747201050765806355643184406583394065634834449332302936327336355069413309791573750249283460612293468810976626062540296176968514922325291277084188748102948134742856261892170051877038229344729393269033951059284411380890824710260320039962228723356443008845904203731468504306137110140798917543950781293490744384775699309526875410983230521705104059885338807745609182183091032558294628350779442749033736655507034576891019874673037486123175591169426942162714155378161295692829527981377182798749872565254019026155595738867963644216948182420432315480842662371778889459606080501624602051959102975586317074346978883312618166362730970248775994059936432833556978494158240797588474049832457010116432280527270241303216195184768424211314857225072861064720152367170817915771628177075259827924961634865122667714056427534754930912673425673456126744044298603570755417274630268429564731376206051752241295354432766256861923995840504333672582874137117258396199044139243015382840908977938349609867216989377986760348172648018986051754105063462686183068448858725923246845608386985351748264767573379668267735663241648260050746223056024136506944682260896028619825690825515196074178952602499478438233413970960555586473657434307410302822990775105507067746691001149296995783916652095707757532075309129308854448079584377471108916215298582125243749222245743280494321315257230194649895011127562098540455794162311637273849821538966780265383704386297469014961090082123849586360631070606573798810899428307600944301262222431896384559412989048143502687368742875797377567851038556106707756526181772459178900056504643321926582528739850156166967090225015637441297526236313745062849985276106388244848047685219029525433149683890430590887409115682991321697785627942096210539962092350756475054755017451640829176761706486541383969712738245591331931142409914857433193776797240948538489372326823481631915599040644801567301055861308994992769609009507518118583083495038195792207467432710338062463942374136095668617256365108445027964610075366801495520794263237721347988408042191345510001414103277824692984431534238533298099878974999644581121809347672999595991259775179509165968408094622492206445409046526210585752552101929448759383639200131143769461106951202334259112070958644215475338494872301572174316370125253912435897585772004824001991275580501014879853941460202514132611732437252067919751107590549473501498067760815540075539975806054357364474472841556690794638609487667834468837167997650487118151583779921328438025270886788924652600894131190853503136242689517839444174916843010235092764840493569885003801666173922410245284391576742961481200173142194445735590750529300065157240702526330899220928187637105491682713839422743418388747194961325098287271323295739313164920853425869945219006846733016471337962713891238558248754697818757504715180284264621960728858885545182269281492063187028907333409118358224626345182060624660933526387844229920293449611771958889507501049052244878125610294775970398945584823678182180100864020915718348841360105170849839186674589735092826195783433786109098940089280661982100215042752526970056755517310370585140009356480893551322989442492778421794396147685708278105267934812817987874856403446799704491017963888929443798560408976971382018519485324367672111531749760161639376408195948906968624702974363135739338450976273470680766834383773603225047342836948979941013576683922863465877678041896943301976526998698512281810493546050334333573510586699702544797207611166471334611996932070722665147995781143562842610097743669209805016247251027336632144780630303203841273541446560486301416480205719594875236250808697416457308442824538875528483722917838532372481080190178522759750942561291998936472377988898065819688826997021239331021529281859947402867043981782934711830870035711227363324008487713722926854680668700461872078645925862038058485434269636742069198511257682628324012892330390996930409455452953672192328532977941878308999685286255848591264460487227204461258331203689718931178501935234342959197380830574985724084360382985428758317987950351917759209143129479542531143756343480417875476690092056302551624951518319867701106207238886335752221082408708372083930195847444968511301272784173330112884159274672822110989002514992408753799622253622611705070925307588015088329577771713228955532795142013417953358409803817035264094437185725940258455518909972063090445057946548913257833331091461061621638340035614352943887489205686335476140286630801064168154953272180504595410560322093901325561215466254695127151255302060270123659622520634661229544301023111344292999592647083149627602943817993715944309728505193295581267091530639510089186885719416395530951467400913225427761178416720029441631815580267701280279320086195731519147876219085244521394531359682541585324600644452994072049462703937798011348063667859891019315426859700179465422668996355049354543249827132025357371604767085521972122016850538946793020433729575060790959975755723332399086894679545283589618883695290884296654638728599221422483244875075766876621651508692193450402119641608258864930060332235672127562872797722133094364611113616850906706179029444078129156563368359323962735289308117878306175756309136312088614901921944385741323981980008693084333057598643552218380043143823599910481497185001003350938549556384513994956932156071770432793945208100943466360481608565675194636655188241587163481893261867661966307086266501623745100777169630630499962060916127105734355060298871676642004989876703615681772175610948495862504904235828792112884919611142670520733397699495796407152320469728425694036254663412628859648280365916982059815602261607551099863220750853015578646102431753136993516986068497078672075247852464674687551852214720524087446688910427350544803107034480753972440045312491097378461294617841909688307787216508141203170242714747059783436421626339554396990680548124460547201482859670416300181596136579468630344349611682936916311003383019800038383034504914558662461725040229271187572035371831858297818717369109680781004459742071804462998665162864613415039347677954140801939442199992975622491925323812105211694042277642461146399990300190582367032993312424078111479393326487082317973333870437071667511086505570593131643354389152874512818498018585669177850369703741104809738159058777440650305426455324346199086204596052694815223550625418674305302803812371635996983818932053211585991409906051282383942627494883785895827498195458107224690066356567331495610762527383417020170408776872868631154238568903310485738956490726174994259859283140865020466811910798177865721238944663545096036872174400053427190013455933574693712016264467870075111919525651467751752284079080063834811885264828385432615324182153116557159663139302555860271147467596072970665798501899270021356805224351075792275379697168604091787868795227185873580657320850979051445653565234019468345879922877513000451276973234307679888071202905499160390153046935295168010014046927220587815670709207241004401077006895530661511436577464903153910455615623739258906383331313504782551582858993709253152519174980573363678294770971114082406761453761573086760384680419205338591760419483552874557457917622899421674894965161304199085846786979074412671598257113824277547714320092251957261801190968274230794066691309276751426241146821667950781110097964687303222416025564581356215935876187084282311520580646675339556084390708984778200998710596330850840743532263670175180273654150250369446191621805096082200302509795790216175830241117114050490815689411236440127690037613872582472740298067270630884982284697231087724879851914451250078938001043542243911718047898180365083168356767437628279163927627934782922526367004938181419006900377796623005913105947586426369596929824586866850886008963919459806115453938504714984860069761907779985960366704966340806706875850658460879784650957997395176321908748078081576863127425255426574529076091541507550343222787169942476337258581724725582138878717408945022149070246949352564367288926864397992973293891467021650374421037143412898675383995946091937162493696962628891919935353926391485552890117246274756325353022546380067802213878159025536751585112530819452323631809894361452291163378763890879647309637437824675680783405974179630414001877032875600518290684050333272722667649111790547865599929918898353096946779542660687899968288745042309113592798029682993025716304454559806100940173360962827247925590147098325380093762709794115491975229734019274023824780547473022863641714188430388100499744866805598156642882809709739761279853981697958617073809510278243885418869001568737380690016846527283860566573323784721794029929641142421661606838702534849171209573487664963042023481531248871027466587213496771792793016886080613182368926239417295716303077520167205901292323092163524866751063831669138619848463073532008929088116891259392030217555403332636047918507037758775655857817570733856498355336603051934274436059247258655712511509542196708865520263444149916623606083626167986262206694322396467529761103038039732426488182451469103780659846806333839360957549263333397944831821266181834707880636341026576223763610170974802425268430252575924044222647824468969437892993138130931213547939989299470693199451844023326145012852571250667225071422789870279396710828362139985092529921428344724104411571556722971144885344385802182966283155069465279091807082773121261894860776407215174758871046976587173410316695010507958706749978859360975793542580375353534145981483074653297622445565196223215711486055698240773029224178065928124585678062625009025546454077237182326091996886874560224741761547605950245959183992264401251063159546616422327633193001963371628927880182420361322729492292973002457428408385872032248075772217354463790423090252567857796643765063094062232758338037253951616591179748712110432117658083172785523774071064470135488081102720590025618828323155816943643581435642632336136677597368400684415986358731443750969782890745788276942553161019956804966511187790966567861519840504793249343146372200607065834614262916992750924178718711243203019039299686429563500426437950520488375904230325063651348325173497877177670216306714427298744067283552097502818598488270190253333491901762894598603648892601151028828613490819556841632540456434764659901665936515686439447388405234866332653416820390777973116023067862103909751578605307034208623236817433460552996694924014112281155839861809691855320420271955728258277548371959399534812982031790940277627184188156765765856428069753935293581013737719167162905775039096718325046385426883119855034124256651613380769194107519171731222999237511781714028264583503468250700806430475548772200468219689466773434568638762723931794475696949465600946612127873671020185370068795658458102671429389869515065877819294851428823453132622164571207099936412406925366893872438970395347642159758245206881300561728126172567015149120781502389116969209760173922560230181098995559405332735221380604201216742678075811499158578601978320261470483656979406285669867362827133640855199321748401440345326996495560159007158549337239625962379743815160824440732219768500829298550685262592363422085406239199700056779974697380552960355784607392082485910788906423371114981292425305475787321593876752246208207866292408282286849007791374915819412661781685597330170051747225619004210398464505134687286703422348058223891303055379482251786987848431467919052925826353523481314664294968474721754276669259961846540104838543739581687872666375681487774895423724259999596825627769377823893714238926803155061237221049918919815303304531002135088352727328309324362469999100572037973807490501778323756811572341688694681837360186706706745034563729153853753454409370280341209789668675060807978155406166225882956183647608774297057333391647259308722495028098612457016479676539393587002414659334545232925160492304095887841746463192467235237365569211544146480527888595485758716407499168618543429698409368641578819571771258222543643310997610970003312137857403384320964209205169607739452325462908421002707678828029075266737631032895886226338812144488543283146518273142050224383658661266114136009919690098931242993717810433837654410209425231365388785347875460997931377503226793885856962272681885619463236671037962731875611534582561432964682320831745385231521730072426685640765170558721623453808185120979953501794911040928064166559319368896854417355595961608539680667710516958298711699804982093380759067505159860924335684572203203163800352810287216466525316086215748572625190817102276496483583192519772743067340698423776103346861447456504391466846106253225274145224170626652389674927988789099813000990123489684949040898179874977148861596865741213986638104429903088479981716916289283243867224791116369063757587091654359059918984926839169449108246253386518474750492057783601915477314561600569971194154703452383435441344155986056393836645713623159680740538267865263569441642454962088662549389448464425449552978042408944853612416604450071790653346927515812459445295429796270409421725687747492271790045582324275063307905600765155763834342300517083180782138287632392998337860199791250722669831420281526183014025983587580188245074000631028580896003111803928027338912815490605242486618641547682662906757218388950532400635736983869169241765263997381940141697194270856776967363731129853080891529609071688079179934687177726563205055149595506521089987152474960625836498352403183298184127866923890083150563269915302821084975519256832507265635784270717677125326827919665890458351534732078596387001520147568302622163583780413917153607376363933165118939679336244450785119520682218439031947756709081944703077791456014616070939508726759150136014767134672947062806554337001301678688753573611920452724028498874581285145896175078042886396731043453915871388070051901958401401486117020372051185705018245318875947648050329004912644982079354331369108248221272264985036732032501728843865006607089538527252924196554276448873138372946953592708779936663701916912060342572702454603024170568347302677551664504470784233837486464451194704088853079536520452172057272886343233414749932329230374837733092377821294889986853734503446379559708829055213909030872621893478414530558849411365102898211834903451325292492501882197380948913009638744780947383761727055804640610166947249488749477547077252172665663951585107532587921809099663418856509200414038963572673676728729991385499162121997534013067217170963129332097255364864813299812300309854534923067593347368819948795337357025382477660011986197845485326954318820348830475759514734284226764970183927540332959397196852350629086251966220622839617927694008443433798100407756102539792163345538725835975103404928518057642532059406362835084795725098417310490845060689927434583609593789553638674201805452406428221105216390417686213860888831129043048401370747935762808591075212519292507689862103783362370392427366639362405063116716986638029767138485626368499794182009555713762411148609562713469563364903587358674133341715863053550416365814384443659595071094521521173913989818551327831903691481944939949621721861946128103654171562058653947833918635318018100262783613010639612350761236937311430565894020529701073606152128570632849659920458019233325801410447001816850794440637564124943546123405002314851249260828916129057046520722424223382052018768539893847770914976744582122884814700830391589312966914526207547570377681929028523555991860877921548234379143756884958070344219094104388382899256982351413381761913874505568506487246349403629505462997296526746333326406110519443282643702287337574912117641634591650531324619922445488198540081405569484769479010210143936918559972808138749674864453753455079216396924216455810416280693864886203370779690163648572599759191157775920625662075644961155385248382143285475956615343608824874703166199515146454672637274970844484861065858112266108052043245693699484881114169925035327590414973962843918493125427481669418857623367924057138194562346578487404016616817645048230043287607018870494505371296273851204505033185161983124970567043466049004750888764325292501756926290564064501062067825446076411862938399104557553675158309247276741569395940007926595528997043129585997833228670727483449762443152734435148200163468971069279730355774700498956444132915005413393995659670804758060187751344642913224731781478753790156240091039460191723234140494438089261127448490742285739061430365063544653770178694500484755597249799442877986144755262616972449888006762559174801727619817725158203496833893988499394396589601899826848290006940164040987413110475774947970246756127812355314830478426778685643415485784717667297361158823745840880953842312034329613035741996195809337535959930020566967948907810763618494637136779662037585128909766371959106500780957397890949870010841182441607793926195202970941322008369427721190563439510468234308936557381328190444210995568327529873543295130706648578019765119932577917503496034518281034916238992685243761157456428789435199803808184429962693737148173711603364592159818451891503391928988566438146015791634778387052831948093889336931897118468316001555047246259029520717567392540009703755812764513862354925832698094949156146409110974735548659992132951940141372704016559452883176592184831650065876414346761202529119177535436842078714092802713232114709968517054147999499155848042008390260788889084666268451536782617870489856628104073304169624366507025299003611862093508918472814483586538865034958998004846609218325570437381825060879049592736455149058830867142143281594572521347772479571893867019547490307372509547150412801121499789005841622614883859845643563997824679408587126288903005481818646422530937637332520799381605449790368482272122552370427285045992912071314751993260046791681262957293923849691813029089263335363257498717936365129258262640043104955963166794294772901517010412076494708907368709498500431089927494652933340560529891537053221336086995075884502698843365728020277377683917244287447959838404628495284359734698523898295644070330644037188196334757823126610491921940821128643183566644162510720717651625767563458528798318164703049037863467539289014370385277758985804988946962593658880738723726989222313909356341456473077680416650807420665469027983994798942995011534040104319639774971113570170361469010171132621095409573223797976454050071783729912891833260214222617354869785882073857762961044582937837275232056377651413929848253113376347019074025883276576423188642483580900027476510368457483688589420057677952509136206819840888521970813829171654041775290379653801073782339325504147751844163301885343642988485097900261389288640810665367777394060830066782962006871756513379983768342693942098810610018401584242169118944215564532157600611715502058209754922527438936273945056347301148756271215168631266393429093437502539164583301555327338810417749223332087562194249867933315210256389245120257868226933004051812788815369364278209392492184727215854932104214635900202509223606228669233782029861886660359055821409007929279152645787029297074200309049829557904811841629064499019098381702036363467980188479091172766697289316821642617473672045430612917860223027014014065236405510193680888166210295340100108154430324479124409147569116305340486859120828795305608398583496506150201304870619259339801272932548829697569867052700371557168855175779108525303996654536320705454611707681490697314893445977095982837317727901641298425854989825204944390888322360252958258060462499940331396477819850515698791092166675805558013059856023553858046817023440860241069224529049928163702680629638769260716418676477145819007350073400754401074662091509857931879974470557965261369530118951580674283192582999075625065005211960332565938951419633105531124308943458890106166888114953838618535161988197304909338451592212586067863351789929825333379927336370236896549229763393592078381836648967500614607144298142754843345675099664298503274228622384146295537223738039280457398984750111592306983402779984255901870433793585391021279479535929590850874756523993895011468811146803172223970926525567837041594356854239969062623049108600184203973026388234730854742309518250228216135975088250418896058505743096856455156879534580997928724077927975173550141255560419047115391632465710529543125367861384861731733276150259909014068138019948013525205435425959962602050495747869761589259338433578032217359930600829259881757199758864154991913295835906883222552293110521902348932017729031440258680625388313324833182971400582423558823735412838611827530598008371129494234338115376834066732308507089279033060594284886794074590875613303156879890638261705308585707839669317458520377746446830250885859923695953952860675539143916858594204410544541508875032792687068703488455941680609350091679328951922424025991384483551333280583300276509666722065471201501246348361564985629595146708485655448083682329465307164815264132426524528037315749870414206095717569257134182519076300855603247756200880148297532090614067900221678466370910744879905885461684494243775172093601238757432917798283241608878812611821368835374695089580123809797276220780374884384917471763836469881306474378432967572083325406647160767642572486985037577636844643795727326800464379410372873529103808165993808315744900069386354191104996602262998532729333232990454885668494685528030050079272786134305892969235584610664174014144150794713107075051316465466778228414590583579489990163544726096911433916062330219478737708403292114339270426089787442704489322677152088753623446580258907373897034759966652600056422830273084319540463839415053628867440093766108098649471454066157652959381378661258158279098211519889422174324480267435156751465488663168769824324407100588826164977676592354002342229081321352015972668875318027907581229045397592771108602239941413278951212070025750948869101305515529829890995703342499357653584128563987613463344690494156534420988953940743228421414781031057864735561221183202831470035551278142108386910810406818163104046513421959039548195471475735291727392672879635705175544902350100786068569170727173176873854835126128675926580662329263980385286162519574984757599774703407899788763358905669781751154306952753691093766434467153852725176768785621680104116208392678281076692288817837054372842048243291221916894676879654954765299591939855845292183524564525871270454901271681489313322923598931767637583888102506321265057261331746949289713958416199899865239204753745641940431994818648571032914330944123957229822933371102924072681942889438699290698460919720672936702624919488745595571790105902264661281492332670158634592450200845591953908424983763236305162923419965694069607463928585697594315676652403136581071227822883322029452607046248769921835237995407603263967855768953248901041887300722478916801786107457660225158161997499882842522499919794786444163872915592859820929464249381070222755761116585192457361785255158036718323381550075662835966315424366141074582313574098816757977819466343345006793431743413829612956092013947438840631057631418162705030210795288278687944916759674185906365345055724863526011168699120691429282790976374850989446197104593421262989996923356073709024266262479896573791323900763830877892619263600329196288552139544697782452497103017755105403701775992899733339356577271475209597363941582435886164002864259799238439751829949926355750310952424573200613404490950226877273066323998344255149593996171150950481675106108906904579371695231183469290060765291808525824272948151890618243716139285747258832408059412484591914417248398784181910807499053475172416819569530944397259268300510262700273626743313880630658367888239616777584695183809806252537804184137485365982045116810016184203233042106671646672535056866023286894955417817429863154078060535257054927882172178531790547481558342562418440970125327806403057983173011018357112469730511341783035986268352954800081131628419933317508112223820219783197485807421330633471956361130046790022677822280642095920269861149850878290181908125954880106898403299573336871286177949169213416661126641104461574120921455639776429781686650878116226594767284020003168929777960692025617789637445607497958729600970378706947469594637052050850484008228396928606787383301971825901314941356601770956909743952534969705783236670601210270759522913623823800334674808839223505579722144811022095893159374741748754189967810136551632896954501206424027090152686448778760340998145038149734797529851445693779642787358783687228242645641903643194706427554575857915056048853860060915490555890580935093377183910925792793321707628608683660776527241664549179750243499479810666790014293079297018789308109910495266747240588486165326420270151369479551373689476884428294914465556200325373517042591517503246312634546868704103288953242751392058564757791016012767540233290386095764235041557399584402850397390452523754143340055473189802048375508698422821062795555815668376423304863574444440237821839365739967310510791525555021349031486037642439048130398798146669011678619821319122142975503095867047150362197752968854009185750378239106268878611675053943559742791435733443476262252436475201072844940436702610662765126968933395477853290212231356313206443762022928276447615352029731594193237511463947985313549800393821050296095893995529206235450029771028553968733841764613640059932823867078976733586072056830150050346700072127443068657522552131199129282375122826716271759482784187120741396186073670995580560171217472145450258156256164974137543498136342442210063318216623379550853028151805840394345073799070572881233108294749694205738313049583147218729424294924329286808061866151492854383702076739342802487148266061563502057216088740648106630879301882416972232275895013524088573197135032959873310473296907653577549480710656159681220560409007893980431232273089090735725700203621689279378714115514663877981788189542666552841318351164774946326269217379973884890275047771143489689350460354760381285253690614596792447851209015551051808565612609722756305266164214442081989770412658367122830030413363805225426356902803612744653304879325778912700909164898667562979229944246047050659475767455004114092125859768222917908553721564789197773632279288060916971275193897505466115799987919982957508485203374813390530207983302497262189682316735507069321782644178094147632687697752767586143009636314450528356318600772665632179068208621334011785469067984692466093425082664901685472742885689174725788058000764577878502138055629762323809180001935056195750475847924474767570355447499625042215691011615590657683649176496904563750283370282776589784199125562327962927793125393583884318835148797383977034593461460090423748477118531708006990908938517170723047451361633846934995169023447148795547688332319573291086904053455807553086518581305652323617523227684065030766469805727362486117594617181669126480740136378005733076987609564507191052233897439909566672527797269336551307783039776628896904880468641999382568895796210022284966700767130283924995845699016450302879196540438127133078658272025592961556586926896195228334511585006727665967279860787062794889731755901545797859014503303018771574558456728454604059592941492578752495995108553664279062649951679529739379568378050496099136514648723137362291534104832242863044935397601081127726470588523048764829038710538744824067591293280112529535344012892507541185812023640231960347427435076940599099822919618849917467880588634404272051586114348096427933999735865255548406450751491774272418071042903220375767704428710020871135508097398209160318947104537326472781657528568616656489626592165209123842338166519322690163101181540699452730802785319683191317508681405104553508918506415316055272021917884689172719767266769036613183568461841010012677726337142257990057939078621361808902337332029859585493147849692349030661238358918225451092515752679325792665720175271106308790595079293949889652678787435569618110256903244664865322563219949882298426348803512957543289236740019543181968473440770712518733145062586875183232816664759469483805546655380720434468788381907473097248344950759203067303809774874469810702159595005925870080454429358753668194404274218652645610509773415806849295320181790917547626677548306545619187096225712949000707512205658193523051450878342456338798950260561514383691078846553319721501889454837874668772303271930277211812925033362219441778347573517349332547460383819225745429231290439755645384901273815083985734096136725349396929207154323492626568872062274732373165235376211948735213751287865214882918180354361417492337895314788544089573490851306460625377299179153507831534056129117273822540981991692761798972115423187170947384428821085573276361085846269042801681301965290375110524387123557134115664497698732614913623213244142630266589350728730873713237616576583709313314975289805526844695423814581511763252411277767654489112855767843672352095629611575095544979274246185856596669051070935252454158167143043256900455996464449531697890828481920216042121255108710531100840741643901062537340934867444026090827062816964856825626213064263834505470857639685587245406930292682887530697177272652681907492029504182901746147382695522220878580492668378966587698151504532177584265440002346068879420196908752240671842740966143588109561694852926139129869937820870813776101779315545406703208769327598724711309940332146762603295276176902280263962604470952460836743074828555770080697916481824737867012107451587494556103425524995015657630476625789531583010150391859735062436395838472263898085327667894736718868240467159936766198068824511748716367546457283880131386895893620541796111161983959098213282121367246123074090366498757636467123384059450160971247517806127282447390540248866791371006511273000722662775410786534703544416092588159068512902041391508833230802995155458992583394416252084111653492772848476428786079993425900158449686495067618956579774960120759201511184821753039001112847402085947409664923950069254558068816758343610609553243903792395706619241325960967211029778978184507119374999360453408032340001504787984700770987344523602478538448466407583239341678329791832790288374434793481965246620410032062868606370974730680728312827324562043404268540246854954419924152686320845898484291425083293506889588517211039123986826816995222766583513617492552558364746038691764552920207603302728700854756540620792928227463576721706088033057647640964531015163025489542886578662382293987573993170106886354346498816787718800738013833908492039753308058473504078077251131461300371406487058468945192891477229318924019770584273218702373774803645677648042992457743289599462324718979408902219255393357332179429910949330460475271318512144537934499071419293144114059966309759024802984504828339939515274391092304127865101685037973077028252480406501050868502743721134338949716647960240365252614362652184985630494995812279777176169662481136528632178363089650640823210710812785259557108941777549350132184421337752739997873322431140142452170654105346833352193544338153458374486190515865060042085456738310909613405644629599022969009822031316825978252557543276513527513082836219850133745157141911037520569430469058279537634399764640567347219773598588249395833097194349308066288934881805288040164133661425062952651862068268315301524025062632806956638622495718955741810172279907918244869551919359079796673165367178229578305590482595600199644131796893681397016568596906047512639114894012242663028427157581240953690375653150577912113976454505829984374382657216262413891707113713531039959155835602680938197880091872173796732776011701256427464126718900487169083153338496287748499098981898473755418912518994366669845129632679895685373760007512703208157056454740721042746887230037286390345225648331330070755922334121236169700117224678369655156339303220951807911978829020320541343980295664204183830406303625009818406508268178493989926551379200181782483705909118436222075133585960595680722848127743455072700929800063524829405605350350026320252398363421870062101719912507025675886017962321054385996352988805266580476928890329351415360756456462174633515068436970236790274685183178454131191667889335441168085823256908628441629337465276269483879848546521370344330833763164811501624889785272690175264221092952295099607126269211115415646775443033503017500105644402456604955025355921719172989827042516905286419606311509594409162510492296788483774349604286005018188602584066516729597340186962309604911779633083695960081352028542516841314138882430945256144886383855548772969695138433870579811688592978453667573613924608447035681908640483428048048058997428722114670517957215091249216271840649295262957678715752413683805391054466574480949677815187288449241465374754296591413344181648638233254326926713354249740845810877553568837133621227734942145859658237071604685213173618459905908097349976064058808443786165464651542125899126398703588390861081391539259933425228140568628846535055565278122894961818572249371975438451817049725207567175469037199206288313496610631178903171951567494782938930460120137858488690800604704781094931337033136899200855718861403285496375715431801302271792853110039373475702764974770354251411319710710506869142581545546057671378799257936826214824998398407667676824114728515778611343418793839039812831760225945859889396661779951154180568151380280697982015135616097478346501234890975234498962293521152180838390607959361008389528763448246544906295496328790992895337435544694454537704419751611934199760134855329910562542467503171131387307671720497705728431210681383585036951728772559685390115179751255280885076939678403427641977571344401694213819654395712288723470973341944753134839624247167200097000267544218159312342340336678953130327568409961949004783753170303235801803367753348456761084573418489499975169590339880829887845087358797033574552430845140863567604852551962247863400603053573449912980904232948958333900158972630342823694980455187968937993554662339554227509085446260625188014958887395306974123476611507202415735187575269500353178010192839081908671178076792011388820412259660943951650250271707730567750214240178694220677357171374735293890073233503549490994727681789615276713957181950354568512860689818984867630344696501338352745997294713527892341225366320078574433347772159669463937486054745099960706357587002464501204949069340798403718106136968116401005633072294736398967218304042824159802091370132999007019676776279660690698906210336284359867668778193833293533325531236617567997197708434176221013531913042384180036611091442072940125635459616702078317857128007505336911698809163825454598615156461801474981050898424481916207745734873812852344553666359642162381127271236435666037657982219090377583584117498689496045223205360161307453780566422427988116762950524710242460944009427415368584971014766076604499468444956486789733637368948558743851253813688431290767986738495041163019111780279984131569103640924584915804600015503007093356242235107339776574083332701095831891234938614534398446815453136813549032838741374903276825814339284430463121888191136511172204586255266296810038503715120529034622893981250105750647000320829719717971119243546022966812751503744405472588991185253627174890964889401206579123375831265159532819260132594320488891267285329044616666475655731320336054586121237508736756085256880636631736112238562717096043982436513043075687850040847135764009265157529851730930188157387902067836243465358676797572607591821398137720052511927204971643261840801298152762709836755663758545625911884760623232081316827135625376921952540323765877338963549743397329278501885990619846211827238202372750532081394604372950754569873201741738963003200787820305557497996452351465579175114774425970214908380223676374750587961395600943171475409732585427948553217062650883766289251221492983197765413557804542334941830763042248075339067692406097342405344698905597120403748252481153302876751339338821189957497444171765754005545510536230746255300248763544412697653502381186541286595082797963753896351014338418552604471952528538322827406845223435554815736958542994832807763478637230056797825732989305664376457159678185145578084274735954554674241800416474117484226732378062762368088840927288483004420865319321304533391403895038649060293303969430467089965099572555945015504173104232694955495935024063210935802704101413617837269218797021694912877281769396263004494132321649297009918068001649961860451087627599314205342609839233081345965756246105695021598873790062681499084531405680433466023601758263463289739734299688498450516922073304908953213428950866955212597944413948623399594004237612704192811387571203434584703028690002419956633273199629567416170915318817660736121914998611909620930387174466277842454561908250932641612960026591282164943535650150213117774021310967681269521677128262077825738239461462856059955225566451330932489674987741319348532210814794982950395405340735145194904378496700647614616278810207571185255442309054121312847467758562378113387261536876746291449707613720722427814813964552323162703730716884273308312179529107648882200288094391590245006469209484383926576044780143984073263231691391317130240895661204902679306958686629303563864913669989783025773494533207673449640768595726327024628764359607078531631957906924900971003696929521686320376703085593651441025552860518260332991764105258617524877661458381074325085309381974197340026125962086387169799277147045632537039646217530961492973106459650566295787507313865072627002553391110087785750962910456897480537798815488832810126537909275681945329931718350636870126693951108735710023824889528463530672415407938303619219408914847758444274310210511405636769093157421460228454903795635163774696620928012106183879900778837556374398343934133619269215267700361016251418626651451752712562292426975346310325703935148111828924111883379141370784921602679565816711362819566043688162136679955954209242314720453831456565378006084791680168670112192438080507083778809561149447872622715496216428221006947719500606746680111676733464325324091618500680514923554392771838153744036648442774166213806395085802866172058765182876807026156035044065808132186676870977945932052037690702558160418500516605091448165258985398810944937346427283568289815650153390900334316987316537487457613068790529769333164089116561869953947122620630631358574912279458974458687656383021341267411031435605626605892334444667278058169332779778838337607064651088849481039955572150779333583683500982368832200058858417565249976107148398906300035277973090148812706276348658868428717126903230518626772805223369959071637651151381024582236621131542470426415878702634924261096110262098652702402246511165560960566421063740386768436865022298252195798739741837108258850711028318217199527726852487103838553556204172165622864389962457985941449793245054835982777112692645994205687758162187758504496871622542615027238694964207614643887035061162488475761899324252927975707723030762494581303357964681230915383180580656822840567569117447661716737511725539811296921414140198308806540240630356089504894064072336627649877762871134284260262471891197762874883087406352184686495997981727972862281680071137577946311009903248887652149423718708987539101545506000168392852596128383245326832228616267824347821698590768216130461030440305006085219616058813121183439417716102481475684908820685746640793031970549666111505640629233530082703713028173214368685568490836516502111771935101831217892179239657477251025407494737823939673569993157516351102858092998780314146917318891270198623054205254785553193270019103560453284802751626557027391253845865642271331437630193886942100815885554759173112390222921464831956894523704248856777500727017033052806478973448933537439867711230780103101468590150587292675549855779096303517824720568168290406683477495941857817452248028060467083443802330285467497034529723051549202894249131238277983425848875333536880562661308692078121075379193999359302488766957246743712364303152976987951482503547813411759404959585869726684198624552976325692904478672449716332366808800244306937193861011654797213628524696837295105739282747572322679109216642333961107695237088587960557170729629670241657604574377611229722213085336148165067955509102367285540933264732941756367141607970689602643784465562426470010768792209878676372928707883948013272064491167749914684286038533226690770929566120452312834392978406237192853264974517780922439546422863726432977758605338415574587074799893828445504749905879530028335879864510949961153655848029275541907894160391067971069046090351670776059664384134902633051707873446204462475565149732899561220652724757780904896247384456607945049984610064231939656743189025219546388664185850419589090707049360523912506435463475462330359964038053358432914281769820584117740711675661906843508317391468726284955317520595157886675153604847238616934356682156988041021110425124862112672904276250743029265837775886998830220004031657202212491657376312262446833915888420257060624945712769410597490448132353290855413710191361746294869900894133011095186680869126584201088545473077993295295979599888388745194326803564103372535339674089913063379380634611684309497864631501108572649292364569539976228751536212074826841553520152774547305589296763908581533293516824802906470649475620086236712964944859817631252794758342997654344065436871983670928613117558262960342563743477459900385901523088466864785463717696430515396659008384740293679873837746262982869349250243759249194731285245913281057756815456141059894430257376761919385632577249281474343061323237232957537884701311714418716428390056327714344378881296421516934151691424576154924063812790968589798546042327424178707094628839278506147044643250254347841747438018531456471679430603676844065645538640141942563045271952798315355382258683634439609600825572630002656057411007675783110008667696706821263070860116623987413583197739473032253175657434933761027598255404329354078012074543006751541865892445886538056665149764298231951912262360253840634820376671904882519127499549451185938576756101193843031008243169577067813689770697439287859695290196910448577126929712045978422352601972251803979547291237527021164232878027886219850500283845223282134074060884921283378489628614689518103380536065867556612079556319096199647711572801856051434437047846224028298631770130637516984840052919408600470374094529662220336229927112709782398873701549971473568575410169617333169074088414720735955369208891868099767651875947099205394385813773098839067745931181927799485678088738668989751429319444185725523604984410686963183854103205337008246308261722477489142775155477466612196387715864487453089331658434517371313359901654344246995000618090511884566302396072701599840592036812526780598122496360731392315811967177479055357864023070971837858505678295506891089421540518645409007078976023807682564008788886897434922449403906715810074809952064397467797418548998318966156873651743061055827133808972025129435346174483860620692441913833619675779798389550288888966492130359675978673860868354495579922095404659933359766167816410730980068094903987667594495695424777850735043292257753267962928261507627240883774418591976983256380958462328129848740099475552530344835736189890417684704977125290775615694338516527862083609379724108247412011840595754423044419964670984080617514081872428614159762645460779043215058173493718888128330209650712851652142690008178631650859558822257688838452782651493554601185945304959938212797829856521450254354776925755071180270778129362690062110581369510511224846034918477332833802794936236683470635612327534695285656586624799466610257598596574833222584620210929132303249052203550860932819877459049090227206267422577293437928195104345642097854934583637762351558068613978319036458579064041412351749954210292018235423481802732005386032860085547753540123386569460916011125748315270666191478527085765271210919433397050607950106449149410068597310615662794177265770283758511806901802199118247132064360543663463463846879344338810512414997686451433676040678203571597776136984791742304180445786786176883465582910028130037055171663850379355257352731083284330802135638804129945592992929288392045859025240265065287977803087849711139538845558690801134665867119176682204209448766199947204153910871518181321934960091538711374492771866249044065875127384366502062351010768143454814831674584940809829431150968032447307706579790469193155014203135775054496061464832536943099048457821964854528893540881388868339805593650298449206841746084207778387726987830033264583589393403381454208885324867405958512188424737577348609368069122020527112016563108250558714221736370946697327735194202522032151464717814119756016439852335030080562996312505930154760082505916819840809689431046056698095682148278482929738268581594659038785350996793295456376336521550989311878299377399003711578096980399096000631486594045631619360423446005239190031502287263781760183452030144992250715709008678776100555470406441914398299603033319561930233114109852465417740560501119355668245680279803984442014624526970682456347622142126590929681645383815087193396955510823886268154633833968833462546317841736288062452744368355276376931199131553204862322826039428806540184264247866428945571497612966502360778868771014403492263094490130841963001191633033828988555472736773160318127516439485897907102070152588226832430978145105352924099662648015066735477270830754038084941246004273465036140208483019006438672688736369797974072095134109295650122475521606204709608635766303851490533775272178056098998070226309179352524330682183187815759032503604948777520842254464996523083930167546207895279111635433398059910309617939107378771640092615110112384284132234232723744881357652493619451659103330874002676539338236352454576515020145454693341151789279767322044870619104275145739050018681698910474328775331616831237619876295485218619158980553482146727646494051195865437846846085142513642650190917636098072548962421450761475748810192815051016826960222051144202393887291547641509814035006275808758931170407115273786931874602619342032194686557159328935817739222087732674570971143636668107642017627013906208490448658150608634802058100319315695246819209515346326472919889333496163812053544182782088059032074524010635830387815858297420264417245530173122535046193567145249550300337881111723873821252685769939868137029192539081493393890821346417460140646919247500845972428435587083631337304991760845727862936595949998832920414889060073354000726235660125970452535995302974365507780433739318802556041215147574235904371467110661795796520696734442459335699954084444816190314714479378821359549010129833375399587126437150084060949918211189298780971813636956963244171954734141298173419178240888310929489272422839290710095972070917044521556750547442934219031905870615540615799629913736658679366178153791391246578854190762709616779458760007053801250232823712369388238418812476630370576900897076796104635469911417420111742770765285102686998566097032845155589857497537093966637676605005262410363838487635258326448002783112912065031984505631347755824324442300201010305103023346027261281633265218013049405560601455973834885372039627395721691390579430210515363828036405335089969228944091347732877236733728679793319179373557731508184419044649070555127767290189574678280274682095062782263429908225208922222702959217762240574046545007051401226867357054646996228897158904032791992167467347613651188895831909294254735327222737211429376858113036480971925493359972695076300834884424886304983990362892622161077254749996934602527103893102091899957900911675409281130600821817315184622345412588494202110857842442467680451825632412577301886257828054403517993438159194031263900683084055588808506983131224487872830985736615604066791986211888752547964853130520603773052997340072516417102813255228054230874455877510329823716388057584679798964089302488131516263780281346119821902161786758725461016769650998060615186112050735614731848418302395724832274567958148807329402841533533615091445620181384591906874180289503414215777582622821422314683379424686284828754186628440670433115677434613657380474156131060790380983913293306044439266156056596826657327255298892706734641372364569845610989482275803902500897888013789592826190694358235826913474064266787189021581980154362976666578729501937540720008736579248995103238044420218905085340077927058677284765964557273411091820455799752732477120785973300508497821538947420489731641708261788038821336204401954090867219854821234457759425848844364756712978147277734681480903552059688657687458990472257035493474935587668883770247188021496354100981426616177784758171380900006889478295743464313794597345054577124461364041409527720938485448695415100691705238400162735452880196181804642291478086578295634528796170369905769022521754745548010760052635956020483712080160278003981572646696217719566735565971419724935614528801123382932482141789781753224284389348227508349916924948786773030082145215789602481705163575105023184378198527606728667916549594922114678435373872514926023513632125411751141188277799574279076820024996244723410024200357665622122625611002597325436723121241303602658008610202290732514587306761790321154266340818573476407109225550198350421141007179395683257897468405960749137307883831999306571511523009133592204604212693394484639737067500910783788004334845928998447155988740392873550173401468243647872310009705398252855141140439581625504736089578057372313095938190118415146125082501209413051103333308383646486958875671761177548732142896108516539352045896774622529590530794376699268404353300621714234185393523008728426520528371202508993898914057804284546475888609272819659422902569511882834098986206425429929726573463950814547505710483654979583968245459084429914664042604749737854052971218864587974134757871145925300786227910718166259042385271657378031564703207414105205560480208906864618359190444453380347263014951376003342367149536069931165173710361194857928555539447846814820280167244498057198529065289690119672434050631486968961110125727264670570501437041478757238677462311070683042550797907895955409874844581262300533852206170895770296679375389810332251364191147904567230921997093808657757236465145146618639954590342564025449389699086596106089782056573420249867706730087897994572922707871484532744619199084736479517694370157349869502619806605559192020294721370399494370570064466130793642394838465141932018718820140704597057989360981730332943816195214468201568165037048932170385020310571794091441787820363301316419320869343142761634317562355136934430514002877495044708152345794591824043372715347027556782918093525512416572794074886953582599919142843437151668440717206884205343122245077768655239403190089150057082350971960962954896119135024810800359097165113151986966675282571549479218513225932523284018928347793426170791430476149524174217656622369603980290619271991866251615066692819662467075216326876213160975791544609211725865858585164765999217329390014859767050143350892553738901062118418996029255731965557156940080308110549068456613456027068947755544472133733333531311769076916945610004208143220847686499508389815639271606558911198412141766764447878084308361696339060257202000418383886985977470610665943478673408501225563484717278466777424033871871637972264263854497093282104026593350270109568006129797274030458389473406354948928383952486483785685584684917153887266852810115923966931604406600563732648619763539565840106375732763595020323623485095816245573093412427040836109588612281220815203057559389909971163783391082698161650102239313726127676659217888209801174757964130498385772751242437756936319465243364782313628857151532993041646202950931092772122432250274168940172194173424043374926274405696798238751226565480948280412514167995393455690818671813535261387720150233035929462091537789231784387056737057887396462819004713802697165556498649509809930094402309002067793413640905913826850748743972807653733309170234915262346090880870591304709344946844225589977435903096117597530782955385112571843662159312543759723915790585941101323297706632671003587015521756793123659786992043457852065347140820059457027826709946388830104840792749592570313670075281434790558389640520469387770962805362762211708723549456757105301272642164346589510964227914285547794652272618603636946305089856510984310452128262374387584659779886931775888258148221399816309274796460947716739982185146433558913637404681189851191474109044428052052519475825225785310196821953328659178658157403477609844827001597372371056116801463852864959224514249776408705564412670800099428596681125310409330851831503524404562620016292332109513989490850673279036971385591073595130623018299223696976109228871726331100989389633281979044669735036599045167393041608576528026833675922817767517147800428893253255933296363196903343639547962742228642804851497437947569522783689852150022593968049009199895052121299306621126081263932556438714381416418041824843766041421814906614857754425789797584240001605594099372677069190804485945155671801490763811686468771210257710139611281448007095354486285428679220363839542527115360307545846047029270991503747186743204156181519403442761653023554716844495140354127705128918499257133814453937063412308478070771372033541434371912238864366827981671015429854088056934734390157195507288441059087577346369568967645581666509072596369598476860688430043568191564767538855208448814468209611301712178161604713171500162812043620801270251549347226380059428329481555065134119488468477867932444755135856315278899519075878744011763779490127820080446468942040433260658373416484758989049988704332720531346559810043158033021146024440739448655050848577286971551792706090702570560109486925987149897136482717448442381425024849046646177356487977046833520604914121182743144859985020126648989440666612007992342457793996030570120480465391727163089159246622092153630392496012399649625569606851110744395495178981365518022627691379186952148817069171314091610521480820594331143351625380913283309437299114901844501449784761942789837942655806050835955089898943062367153003838018510642849788486870742419435042492274493307492128413848875755109241477116395136417922234117686648252911469309099770807574331476346768633124771486661185066661998555723984518108258053703044176720725859717370433602961575231314542417328277093491913177755762659847276579521570502203566070849609667479120691213058590953814057400306281860233810506267042738488399037191028161777893595130146935852618563932700230647182264267115018786750571641217042867150098692902134644588558165421191752638347860037261276177681554075491785287850538202665293746116846729130229920788784485638142825026387578875330153902100201904605576877174353631004671998734962740809630283568816907579139943782103209334407543499991364747323175861860097161731864736859321225951874536885550252870556450804688016117976081841328563506419020201180849979277873503923534362349254750619198631631339559064335856857837754124182347036076445406590889837881109392373828454813938003599735068277172771061916060239625001028749539348133640802793770825273109202487766516792321782670465389089589280252410950171309826720639521230322402775533595965816949210582632119193988762386682872489848854349925881856159527006857204228714168259961134729070450950001048168485593677601411800894802262682836682900545107758784861972907553599240117873152621464675140248461530835455879036645587103223433032184029045595775288502555335409357969266178460614865137663391315463477684385548092158615057839673545215272512917407035191804016279245706789166102220387717901858275114809737368839543260220060104916946829540954713549940217604262697648717649026370285347836060216281558405682510590892061689493856116820823790969304555126557029931793302961274426885061362468864005692135890607645709267525529049610196143323207807281266672824607150647743565043561265336421530076093751206435302620932143308747287471558621975636202365931480628526765407700421927729371115333149550059551416778211512880191766963354983077059574749588672793625092624010538999137911831678716040010688666494077523227363201439993408757696786151617766829587527360546148535202111280037484570594015129935095367517837249378171304709554154461180958962619415941281915584304902214950078817316529311622281160610809824063083467167040881164329701358447395066776825302172911070608273294309435559261332146314412820082177828998943477435978811882017263161238795263798030074772811680395374827590263092260829821857811609053502191681875919717648852066692214881182528757760264336871395643816506746932794080463918555417536364718871600614914273348492956283550739285661532786267867572992268016116143417884829111510069758499786880239700471623294724008237589399213205150461129837024759432356710313223751095541077136681810952603242912990056087948938387294253554100679204560892030166861787092332518634306245806918333124503693881367326157736320903038339262239784659077642013292348645030327428004455832615130220605030884093534494309091135004819732731171691613379251142256003932602688049277123736605997156505840964741360904903557071485186803317565282471772219090569327645325476395695751894419145851038925667715649995162123799247085071718921266096903337689516393194584840634981887569031030907579485391665193021374633226570171036762569134913403981376397621365959644761723675778855388066919230711021418390743101968922919639789302737957359810576846158080909458240988942408412012586990519164974706489990406171740502695987497304544406272749255484205910601994145425169214680746421001322518353157943975878336285596966576620344636452317893557810279932135889785037208331279513922434403600216132335088854767232760748846363256494211702196462732237024269362740255687639447975916975702301716192923201121946523514675292019982442025647124410082777882589599820283091827289432740901285824471288814035772686444773300187036268978456340439373243195125140694188095602199866546194375564535067277789230893955737670597699879022389243848169329073332957240255393133232765054000165380941440786622854475191626626348656913096653715593214978461392417361374698526532415339708951618331144159306624965296396983263442594294563566901704024858346319796580216117693978110319044333174848842098630136908851756149469261893707091822990042882827798422773958302371931267199700425572005978461588437333243058649717877245125771396043605531338044695875434690225889150197838265794138620947560944490749003484607031598543281835895146858472619649922737285765475787908135983644328003456381630899974438830666972181029065100856343699862409132757120062334814369175829766587150117464528437907778584764041712205709648593711969209128073337667423561660143646050317263325376251135123838990696485044858294390056067199021362295747868889922690580323457612022404883164144888391255412099434671121959826504678872524957332181429473918139068519508103306641351878113769348108132078489761647363253173777534923726354675026887632851942376191138946446439116863732409662915501848974052768330085663947283696230001187133208333118441710446182920852663805002319722945895117532676510301899070768948763778293510731789091761507360091529271696133377664461343483546286199337513957499725877855342648632607570066821235254410297040073942025800267770538431087268210172949153701751376763500381108443883165577881954856641063429418223906930740075812352633958056785041184114576163888871520477906021005703813704434317438179316022854190286764996792906314849216059568060829143099464522756751636638193058183110504893298725815700402911423375999458444022829329561037731571615777445405763316525708109356946455760587377126004291530388617364115749036504078915900263954222993989496859000860406290197031154300312862143801435812364089633461086537646017134272383768616634558758051319209441038206422998155499736967207956901221021621528603065366022610662630453432503166068210548830319055785895741108141665144309775209922985608666916907040631388047597929637146200296570945900291995072252834498586153373926914293436908682199607720383038146692455746282918036977294241916712024547130696721311522263501884368291557748956739194891595489913639238952383197081607925896370264481664621330052118949887931596344129672540668513838156890894373515654870259496162553265862954364138667806611830673938711350373511463688629183553978130920610769225471232292021055985424882972767912464068086241913139927177628446224075684538429067676946304152479071696153030403099777369717385435523473063158758324909930979008421091541505340664200063338536102662075309724687888532485179497980843336122642776821707021857113087131889213650124765836371524462187131306744460844797236481337696022426114638749585419281044647189135238834971092175640678896171153388827239247087695051958513494522121695265563797237319889628131664811652074527547516240857084273113402958845630569498321028945564279892094376853173740925180025263298871238053539927931145888487068715267235141212913702559274266820182194786971527042827147904942540180972060480860513154157399712967571546732360618009255489338267794852466099406510956475118516153448944681006019187201351774096940355134610176205615066780801316406911240149327947001059298612779261122517202112070850308184152676835341000735787553472800074032339786162212467487127172833308576478124705800731321067486792000846383771629560529647200554991279279216118896081788051435757661749108749566689720044065869358844646816258379960356850450155988372358774385259014909362803764727863001538315065149658422680934669255215568710713550235586302221473625888820061102161081847180654700838577894582066434734548594806147243228120722362507343810429782690996190184005615947772596090435721344434146839443604751677272182558482290118474360970400380887390829652319087513795447419393497705338231867209303310487868407734672351642660945399071584712499236596125582587356482197141528879425030127464632086709109327006378421348343750597300370859396084684054600576409905276167713688890477569250607739128023880320762534614506661847315615169942034494983244023158675844777168045292408040922694440618733097306879794502859852133979865365540510489119922503533230087357608612770733975357737871221261449834672531663137904342830511311273693564360078971169051629191128090685678796394923754739022182294689271195233265147424763263750267743785672412580178459526843399182343904019409622242456780976959754022293160419772637187023954917353142265789349735552204684722660111306854221109044916004295663847918030309682826930802708821386435091199384896256075778074655277612191189379963527957393154206691111700735277323048537699659462437287313838993366624949457067334925265014512986787761523449355232151675111270646711716097014111134539921271541182530519665781198670716453450162180574731453437863512268938493794833948600846437876613119297513601726026539034852204618936734216920935784225617185176873306057049002145575571042985498278562760398656559913357312299630552754138072034099111020727251795738887703157426094023998374108330979262213263848880651251833752974957316985594221656395158604679063150580759081323260717536370057747414264631962484982743989722464561670270324417809058658086189457067920158714856788448061236182933127605279425705759325730065530182790920445990257028921524375088664562772005425135750314540681115866542911679238233441099634660047721343074550100914713888054398879979904863515713319427850399634913491273255401547690463165108876906764879397054956795613878873835719984691702536553809571275600507400882210279458667097755028580445004689011339210997352416598354648411238828988475388191913176454469129817272776466770058426122666952953500771226543292913112317908636378986323009561397847573680170923352924047695664726274380823078972146507917885731160343609814968450156482710698725489941377654432847978995028653887469201388622519038074549315700095757574917709998181715216949977219385409986120415822698696403408579110776969583556554587783150318765677364624601366994711633438411951072732214243701470415194914769485612017004187044877199523918691291810254512462600435432871156277509098867197475550984363964619824988443621462761726769814174562651357989334393053144347989670666245640220137903134071307643339860399467425016921303506010263252248088314811924636976049596055968120884909917746213818927516167227553577856702151245027547442369172815672664533168985697468209830430040138907366246901998488553641500613346822003755875287708958397091646577658231055868685971399405505224308968174215592726769650202127503817230703606858659041502481203369125504558793524716935834665727454584414680627786000183574626406963883869574099999654580603963221607445299756296274079056721306768819953523153964161748296621921988067726155753461563704428392925648432882479585738699640749000356107899468687291290645788079976083205032169666765368078744671289710790001882562146518935047580781259827169999955173620971447101905359295403395596310487085532839716197861615126939991810213693185716664887885224611116307359862425235921730366744301371032617865230266215304007081816753007526753238573543172842426434472097996335180439577725609920611987967636636461426113267274962042393918300096346146532570202687744230603633184282713809088992812603273731222082422697742698888258950650746657618000229556657273391768987035437595689791477743691456220583837385001694557660609247480281048646246195344385979409780778469441506370399162695285920653327180297112927865514330082905979604125277111260746693118596793245551608922185772702883103710302568990402969723870934006803872479463346246326680374700191802836039698612956962976913652219764131040031737438968271046058258674768489016093005990191135041732946190038544490047654769784792730137782539017993848772572490409289220778169929269265852466944979555593662803247257094651989243824156504367656136958357050289239434901813796311601936449785329829542096730258887463905363106600942690607969369879610379924600635232607352508388156241433798392616952010583457316398039130687776314052977212874307109600565776803683282022120639579577377433049736258434717731673888522248363976837168862479706218408989211255981037649942354535679707458928350006249568527714264646259005531334766825698672068116165626287334017773228419699287084716901242718821661185499577656535160382359498545819545632184009356107103058576263544113335088516221780133817641760258303698173673051402049173378055457373570207807245790601944551172022243071980195483732503175603653703641639554094064525560095209311577004351502991290087958496700698789119825121470558497316127686378096452691963816332875115209188327394330588605994457992248578074126370892317322684120801951321998029042908219827850806743332116986293757499593819398582391736882022587913162873507607365834689357298937025991146435485946555365328804546623207001886408071105032995189724506382074237263680269630859131106820655204872807386228179894444837520819830586763604822046787818102399161876205766617609514186132978302409467661472945752510402396329988773369487798599014502818110443972557272476533146083614845510134129157474086317425926079533884733248276259765383456174672463212697666454497989194174072936349529100208630776071933665433437919117671776968398238836781786489134900189266260957906349139454645051481831829091456251082339671615587539175750699105333929182834449593989276584300361431757860343527656702355574937016110429017675627978906458819758540509967862950327102992834080580162232565888198313528416664095580905544822777980228183846017898135114252961932534924060553661871577316612826370300559565679883007874905890732219044275106816820650353907891695941857325531326731209592434983828281313162295729714728098634867488347182860084302966027359850938986129326477356674464363849228005462430388658159482150518799385970545858573244578145299979462467529301718670450574412636929727272951083577868495184927638625064927296040997380240248306517849177357236794314427779750939157709587906276934398235399471200583048587433860741698129157779388070395357519266509001800434424171629823140487304726773254860968855666334565292032861460222856763076993626491704795713676135492247551378361222369703430959391505631145653222793992777586542938924112399295805371178962257669900581151561986125729369094508653720216423581611150726264658267509635910941965398044082887028742463892529209620759162999355802650517485327076132993951619030772378445599128054619918191474175866784598943581055376391994997356541741542333760860606338060755116600320776798224935843069967841231539956815995305397131247147305678001265189279100873585378616573424916160418569564274211369633730099401850339505080159913218370945670705049025983641344782397107359016889032495430326091660354808706389142924287513315768669526628604487081562585567254724816050471982990663087313294773793257013948913107035008653309636169788230032448150188869219402400834955805712886353897799772885552684547714984378407112623100015889557916942940511783350069217592887750006432103483005472362694839935295462151156493429081791621178170278822370819917343628780219832852653528807014560443200295640897473069551561140662782149079047927270701726428822161293942378344873382990725523965658556544242264676601880401352301798478648957195453627361336817237348143566933826025445002951607991613163402553842428258770960457140934990971812752352679119166280843074937215923630752507648104443491270111607881905014760211025142994933807156273799503360061818869867901517665484448775711592340180090050150909358763620140118470928924814950928135050113444267862257896466798644660068977836984227843110898275224053334008017165690423695448828714069196790254841711348046822421637532709203073334502820313313935711821701267838466279277380013733997333651818809079499623281466472053757470062076424954955156295509132880527605514303731349747418496647019355830025539799365154721225455630159874212310565001368219137331868098832667316854881652811228587365533844503682902093433058372518303945265602223997924069176832326478960490655278058951633415921237035081642625002778089746236538307155979962578475721061191150273147156632948335148170888337034988819978531317103990760878857972858527701753378120975157521555391126668349022253284892177078442743421447093884536715702373061184865679015877814097858591083288351839496959080814730956969072176047315049015616382484143297481411528503250649965331249984480563919971997318040365133238362922680546426535836628155915865205680453016468947356102049437190086168922949541220271290065293454317103885288164976036200644019258105498790530910287268532785933655572086147433318548992088988038638841103704826588109170455613642696305440337125313610293627037242931799861332748581915086941771850140158183230610414675197233438839330598948266547860066724095642458248531481420884960144330834823169144798777848183739337602008771886243794982595657409177411703966615774573069277146404918284270845238123414473757297482804365218743810753446422955863644247000459737511437652342716099329754559800257021645854075317295943552639111284843689598737822833496816512055836619666698782008045286442705882768399518612619718122594253224151031638234385320476856253621291609327799194371756562116581169173248558936160886443675531190518735458656016571761387545826530825580064526009913246471917367049733391066590923517048690281339759690866652736140104659982317444867257399580095679788725828545145743024838069807733241672468402614844447669175799938470555170601831977724375384715989840484884840949590577975553762720543825093466548730004691036361958728785333134318789418850878499975009006071100182944607548257032974434509877817519549010681595286049393984552614967646887715179165161924733255491240549373328456206416671196929862069483600289632044368110184867202666649138901440160978319234921014769052791471076359805545033198475987670534269038037541187184282701843054876025486386189727095066648855460731533122907824256106472464837717336302641813236173600373705376297008158914248848034230143158957702525290865330819145309989345209729806319572743498726446724907326459374508861773654734789309107056301808370264976822479650135593593529824292988884654681870094021732513104832685639700295886683730451470617969982397354971992651548186029161318359689540723610860377091603518519193225968421847038640163782880806686684582006249036764966323545235094934987801332098238704311403460738132897306621821412112628789593824516788161596568222093221191679597635648982276527213839230537873299431406426976100620242679293302164205583213567508231075001252590551597339022814032964218120302536392362337392042976646074097242922764856965453235190341206994397422537321010717386102463737355101942977999226682207448604890052519955289239855686949968122387788934742472765223374518017622588276670413671390723532116913185871677048816159590970293553503752255898025466068129987055124552032738221988962497736533583948444095575916771380130051097278610822513051459157026661590444352264328976633986554690841160744815900111160922889619600561246593332874215205211988312145142603278890469756933358222936104964371544386007650360649730341013944964361773043653334786360235582852056681271042337676285926551088576391484838616905555042252916991908720132978530783531382723577043185890379336605120002716314890138463625038197618624962381540862115900936000188125114648653581961935038068907477763983522160896322510785780091001331223218442509925163300245248138465133603810402599756363029100633862086105005933929626235817070263105740202516226661828277305046518293203307947628753581393262334568381885622447247119012421259654925750280841616549098680577450881473997257339138543638364815511022151457070128663720732754918087246327187252968931678368480565414596813539687549591372244038381072959192297773345611635004899868377778762006052021598071018724822200536983877410314129087689306652542673255810842672669827256670671470639129899374043788520990864573802526103364358510473356750866248596921236956421601874107499859226345348248501729977569383566080818104994558762498147614945836402050990163467135361968477925557535517226615292775612774564289100072271687280745513946908296083741648604161506871904404807244700231058955404955360382440371396710461960642424026810660257666002948738602031639470985209813161013205815371428857692446463310279297401440308580607280709550303299700743938846154115109920987840740837164965822518979892349358723472119590950107107345544155212552522215153012317666326816659847220185539031352361372469796018499016693801511289313765447399855459821599522347281864993883762737218246528209875169590296593382422295930076156801561065749476939092002316833460962243446613449969619336093836357463374547117542962613864585370298762124761508725574109191190790787730940745653949081701571827712024645730213801255892490472204987865817861328102039980699355402020127047940984264613812280316071628917836495525003169322399098813696015038181303340788646000522929474842007782465810699847910242354398164369225726512763546459651162593419936244215741696495910667003318006542846787295237181664382242279384011017916382469920838231737910624715634764536511435192141400611110079716091727085473728848187097142121140355065090663690164169918704910368050570099180547539611513775375182192436765061884605788625955897874563960100762305338720060624945599360944829244291674574808795409410220168037909830716144427190454427887599241600343089657867517161259805478265583027404282561978599948559657086171778417976489449801366469264810829947164903278653137770903150880426703535276777327219042828364875588565630439781970768984711190276285551530417687256335212590635217897538004707663254455681313069744270435272472883634023083754751479691467390768912849855020748847083892800258105654196491692072919438050839467716383646262158225712523971960469843932966754065340336805878762576698258860996449150186037576473865837198876962988568103185773423125722262566591585276479774471667073369591674015098083420988611908236794506432041822368826892680915288736732080693128321905855765596093808163969316061227493170881540253291634597324517859697975376094702734472605027916469030429250571702156862615315833196219957679238993929566444526432249799629192810487880390059293810844886677911159482842189538552463366355892149869295428215093140764866742323246860584719569202287870978052387308965963866164339997463529145226720429938341333296753169738835105500063013241734480698276256944807001983649544394786020424504481678604704713356380741399009078437547231107662999818269732495663737683695927976295079433333966476144899163550132151779685723064428538687181008732876347380741736639956535229374605330344954966279115008935031291167084609593983340237146145664956313525967022905818136245613655588595798466842284487824993175240858586308084459869001733333059765779389922527834797761958305018728481970039890824568117610965038182959423987217745069007461544690445052245212125700033432233818835707730501525794898609892427366890978434868716768089271233790564657532562592240681753626044596092886415113200620267865621316049446828622267365541010731210832037709876073542335163267199508594395241596382072154126640958813037279933402300209532505328975642779196975335200032195932983964736407574452466008395741922340109150242925049624172576559678698270918960636138911427395603336488358501538660958481699673525573482403736557581463721895825247344001947027890580738657465276643288832340614230806274701698432931644340998927746604976878196634054115390824967159289388101782533119355270592572741399287060263297656302940697365889209849412025095311523819830015153767401423612381865547092029952095529391850741996345372615127086597653291997324296725374255643217897079412363883926273316011449051875255383372145898724882873717460887245989898515170048284131612775797688112866857157645073849027895378022457047264001920811389379149620910902385174285686961164243357699947177749417550475014919761073575370898114236418279362823474102870269920587024390477795578152391425455733719217286346191908866591920754484074220502650060567659864349005422759798278871793547863337628699707565379940784299372097872534638048090786015472650610974457890584354724464964217332562249782715878563059644277337764054297180198923704291614234076811445685590715075635975214441935465562262875572096735416185081612035677026756182545632538330110675718167037517727659630573452826216255205305032131429985054488301060652473280805233508565756824525849431454209571708748368358718409338893181689019453678195349809970771335927309966736283924111110545608931699351778431813728957413714754314967312577664076081347590385431052922897124713806924255581676529747736494863125140618536439432230430918477977732257552049884270493377901232778368034865429025792422737757551965220071544910993997172326998953436729977740012720709623577021234847705685125652811802899080637736342510431421007537798680153005093521517592229120005648493429733740347376512858158215687719428324511447114059038343330996386198342203147161773187805054818528672931993426494967822667928065293120162310367542410439533501467690202214045203307705848844423937677274328724187836766912694806519254742004319130819804004027195681036412885508207320828955941194441955843058999286678083117402047123447792285215832413303485824390724165283391737223403735519528579439253155278416301231171549766366797147684610648671342317394831644628256036783768930142489706757998658502845759986257247115042328486922610261744073447615093609340283975290338132104465521785946955334177920159322043827782191078653971213621379885599170416546674777873067476728254282123875953837252949749438619612263575301362091472567105924058724788040418483347658054891796633044269718298045813169702200445505774952851234948807016264044650917408580334573288939084150023784506262214341297032851947783561634695056662522474574156355323587739018505695189061485863161019922429443791159027490790255032379800038535746663598038637203461408130274958539989855159858996937026347464122816458524638892644033752517386678947157391415743448829396315103580368202143515385720128778799663940425818793894834618369995639934153948905158960002395020987385354204272290913691899316790170998639320511246388085029488810038236080944533531803087107990987713815765140705140974354540458610117287948668674720493945763527963281543414991516619066742211014952960473227640694585077668719994553557341253332695518589764147452475159171416247786790307088198056548031295921939522870329484305848602053999266177706262332114946233820160518857405274375630991202723675865890697705617687825358753096699282498393111996733635385107541218614331531547571885187132548538389204286226815673915592245337128789389653420188019268586533878345752063903822170174719711302215919000554860549453165117914019474171267716890140561650833025421530435181513258611545801804580546836674584522688509636982642488426272210728041443066739261573305895573971783831330195892912844128228978311791596291110180786414179115107765098976256984877612294358273863617527230265399738623590786113915182043742919815826024042586923955581469940950540339598794262584649102568088307400130843240962358479763122326242637097231374077843940141748536738976643521937309987115677258876396169506620856036783684654586333348123682915616745506400949114940786499513004025295015903701103563641346108234122875870894572217527458359772749451929463510535262240120703514929702671428307196517903717866102290525073363805337495563362261965630305355415605626096170997790553753964748486979507244790752552718115687718641512650925717093244110431825563628537976397161284981761728840143432241048494839690410400586632705711308734829605645680521044233245581081914227811546370874654169787084172791596464430875971989463988254218438149821715517215738393627689754253008263215381652449757908232614306064585606716855421134972253359333949041596121474599315508607947925307013506851547243433270829106736251046141479630120739185056652058326044293400105256565326931578527859062729396500568660063071573572715485197709316891128457130189220531113619485807279245456719913337500308189038965876918760022087290470208299792097844297145353450787700843192489152704440395451126790793355434984226791070048145002085685507784065482021206491936175358828783502936948181405189310532634495081132161071953672569567054098106705104734053907596165373107305702105001185471603371803341248220192720349672505073836602528397936040848029976588858911107582836137953508850286716943987507335479660218510228441205037023362692507172087857694070877002024380280178557819918511455459066029974451898948097265423468781540596996027024996600612389462654215050874438503269213878399080622641984632142416586169940470704970367284978658500471645721907036104694117488976189407250684417639091196609902002624450103351625409503324153034164983411781481022798070972622420214984371553570824468176216052202880206037038215540241185825604797417672527823361767133884795090464551069198429441086445082894096798151346664339639434114328884179913558138296323099095059124161751114484942507634607492605695831063670083247323844028301125903321687117182593090444534940266821083125518641477271061887160974091776218314186223778407168936385368062816266193252649303335386472819307696690071708604246722969362655517114828603688710356673384333412739731044268690961240083871902205549876383282328324356401811005454125666659869704870932750164185483725109507394680811364509583179240847640729853115410656527030703328604441420702777385152885649767350287710887851246919075603010802203832209843425864756203236238073544690937927454073047370528530359932552824446070146206702840497001462243326570009805725051529233027345206931523663542645279693141437910343860334931553374334868923372732339765407426161112084569215831501563287423442369853691578792998032262278607351009043895408719570891230852010312816223877801273492416678837065890834120380233066842303817486780048059771898321106586770227954747387051186238914012323559197190195254407925813809822873601053203204939847870912435262401510895696413671306008815138986978869252929826054207714153711252378759019096808379255799263994236318007646382779802796627010053025031633567000844091308559474407338318087360909490569546621153125377139852870226589076900071733779947920929245521683660694737352157262847832265490593565722776530931532350729152550820948660035647944253811778354902143168930298385184431617291260531258170331770221210440268301631735218669035126491190606462059063081836907292121758202602047194825910374054015802022618333250885444654352387101823665506562012292188138786779080952666459120128819356937903780170787381522594711054370379282042787112271800021607033255177870375918066960181964851158297279492535608906500256141042405136328424939791633805516573813881451271302543008439302746168442643083297090359486216505246544890109434858305572150142099354992306606108510275328279364013648879753472484911602566933860396369106188182182099997917971163765286867096817243610240089171861103993912463616867956964040769290301705186787241237866201121205123340338102949567944959341139335734166086181410495553869849549426113156653717287139055511038191613220407566913477163781007975010073024512838323965224566320286021820963134714946419727618665400848591127921363413243678439791657641268810263536467982641195277630766729817814951812941408232762570086945274989055900069773689703418735618678370610385743920655811597802211675203906375832894284489444761291627036185045575654444633636731730727493698212444497958451482040666646511100281629666176836980909274473149197527609776036945078039255529306597886924486998201583817064258421417324878838770492434086640690315892135436028227124249910540662417572943758550278467881032830677952242929187704333110435157901104116592699089322391424090851739093765101034513537532508247970099288058585469283015298809563575299421871376968448787803700830352742027944997445943772912418883510852397873923308133982148820048798896388838107698345252507094072265935201838200792883500528901186663608042332330207408359854025917871784118065435528679321889044041946231309591654987124881160565190697860597367551477787653115658902130791315985285778735939788245321320821021922931503918779785084347512754698542180536447551136536761873842438899878126330346731935901494309646823205016398248101952999223593095733785756031694192322612290567453631970309717760175180893150144309329513005716886972246809978407660014911162732687972672890957665834440986566279068610198871192244944728978748844222548283594288721815010323100504761485948174205953638579009321960794257936719671939246941496159881824537656692551848949233662903822040047596871933756031774775083184382747320469095916451967712085379586685464311113329759951916205515367653736991532869150633642095910579186933170654928156937766573896236004430474141744843902138126554315872915943632176122042622985866107969823377411818655759390876344794931651546922578085981802416865364904833063251306680265740020806930420402812391876311163415424052867826619157261882708987220504885506653006388787873785930934119463226125300989460408422179193290256620234030253362538556457220991263918887880423166826887491710721909576460092894858977377347668231052614498920389888413293578278427340012020795886921200945488704077803986274141651523356037940166602899008146396481932036634548973901398438786100166900148430728046372651819609193418085404534387792108607986512252721479091268331524513964323748733214307223509220975957870292056526762662219472924643697535380747355654432567551702844506015932004312793952929437358574915323333268702455070122074630561126700220464215726464674765960229021010975097129487478847720393405812609175014851912860839950658120038166194066167860153659065232644910244416451482483649940383379100387420188789972716824855887703382952890990561205268123406982199100946258372084874674707497860381202580691783664559864623680927495362727756756148491763570611339433481395385929350226913323007747511118239199771640620678545780497221113363106356019949512743123488433933163402374475358391838613231008336778544297005426031779862480476485931368102462903097865465700118239696050898805919252678019948421837147490122898720993364200464428936154591859309266953988689128557081102627641084358365376607535493671652125559590801403758589554413142951478043024302058977799467042095919038222226802102624528881614748798343105499691400513816899832934737031912273945533182984782224352023481995963623984811315476326269834426732848270857568229470741811885685699515234971675255048893473367837571027466427837098163869124299299692596723488208207923652170821755220989182198144275965089186931258844943562722341393719320362326814049970358151869906085401967054885364207964526210384998117574652072495894980987950172830424594286400330903899457295888834840068213835787131648389058447505965313858432844086034363656018358199763993083262914544241082480539365159327956131123388585735848508172236569659016647335257962266888279772045324975775951938872206117741225232006861512132940350790227799627325643865518327558865966422219133250464741243149440542226357912458517688147270188021574017505538820090951690889303181380169389407292031351066263354325359319210636791172260086908992765429301866290122325263426854713638966883696001627379192265388168671643980969339748550318126643534027296756121656979259817709536576644710608856775640735561073855874076264482693820282217207035538632582389131751113109287895805022579309582512388084610199767860651408349635344157295130598077823555503336338594057651948231294867704789105579735026924070391106800910463231925226475606087495344368408046907019673204414222479672873983037142431375542098040668631347145607105325958637799280743117826229288460512146437332823473530325978196172206259519668944033025761200230039608814835448678309968526652520405872638827368218362640147271846245024749232318427489790278789294199686933626794824669712113865814623893312300007335617418316771507238609477583662461213790894978362015780067640784890683685213407596611217224740778719977158315917004669945744209454073889837855352622517435516904919790700431600753163067962876175038335600222298592542937121854616540544447803820844480507520618525609133269443665427621241221893168778005833154036556561671324860650898555760293286619715169869828867215699578847644851139868458409983505298552694389991698391113621822846714025963789576585088359967948553204081356474148229813639654840787590676128356646310162484806670667915112379830164200729228833582020787908054768757392170118427440260111646258323048830918404998632389587263538945130562782199338796001027169487018788387847070286340985201576081042177942779864840886164644776113434948674686781166520540012037333103794665801329821046301000606499699294219900586285312467340100546557724576633925946120924754674468303164626119618437859636359352802956054734195044075362461671467488211380849413405922169806454908825866583138856199567959147878137704981098674716465806357820836285912803116465688305787933052986676007555858535183543665030026845554494400759631034829709739086530104851857899624626759137128413150282244990151754377524832297241679940923657117318795919008132653893602914769328425316152385030215462383743835462949068712531877661880194421875855792214072109905566876137847156232623362117654347025965260051231396775188885225363096516000912060760343563636725845879667338367289960817726333634839289837877146757163003134466661035183440683931812563990741813719719736795610992026265160378224404937722215131942335762210976107586649544578991728790828889476865159122152134870498964120953158123435949075154458247739038078101622632376368662017139357924864133118550406331532436628664876338823689029834387195417291171613332053623199311967777635871897642395035324511417044017687782838800648937134072813742929335595215674159659629869088666069371880517156171849984744056995698866595635641671754117783427515913135328857356811378999287808630353393543134411460503013675550498778810048711289687730472052651630231788826321149461384288834220242626842410226387387251193824840834493291797827481853416436054123015702358688852181081666220397453578438141475287130694380222921508085294451732748576175819246841264807234976813920195514204655332457739779687314073592227005323250487159935090630772810085150068521515272626401434450958136780935086908997631070477837982730907909106636513675976358302754291756560516473123108064073054014530866269652784037035465481481247208862352296072789372565688706090843573567131209897725338410969976874216344273791385720817931092444500586107178191617667441306861643429909048796422715493139179069158317640508054038473190385839934036577382939985764452366719612271482058326604042028039782187618742561996653735904904837731597460885331356589868501186701709212448524501125979437588928495119585897547024678572976063239623652049175904071478860727929963080473962135825057245327282184356396496119627973797745284919202798246129465263316761470630700147628128460774971851799890182116710442671790363469187064033707166870046340210261372202170479556093843837671194041975395918723859326345087487863232335960568382236895334416496313285219998839872828946061501492676683869167118207466976930371921984675348424853916037030274493709632982702083262208574205095754559230530669035347154040513497900598479874413136550095564258167042325609813270931074297726032316141691059163915424581367144182797596700310626037684970894557739848469137118041307239486157889121588170868968016518683860851295142609636149271678039863557546787949153877596407820779731449523955786991883853448471294926831780571453051810307539764878785728473445527286948241770923603385510020689754841829424931336020436053982160398957434604617068871473745035590253711613771878197642352370091899586760524530613075074517643839090193435334947721235846311133065705043783656863142613927635009505825817073778624540000023321528410160041578216954102348909305654209908827603916117143508204364542463003822513478861434945822820445179586918513524432494354633682635576602714476262737786782019293413441441530256445130141271832589784107914057736104549100215502909533196408409062072350154256386135012106811500865104151240862094668835136122275628975821296532510941365417996830232578061257029528749622746287873398093645165270980872596634775038291418150535805964227589471405588106342611227037400808777701181014990160789647317198544379848315334867557861604534454694984720854452528282123159219917778775218508309750366968787378833079030956053925993599877604976546773326439040829395288098836051006530365765141431574625595000920389324588879428030002369410968848502884570359074700798279670933628579365959988687532136616907311694027600591302686662840159929051187529749307361840208343882256378082631659185256808408268669300987596693917357136128977513163100989895568079564223017610112084539711466981843467436653582775261119378987099048122927946529075764116027605883552659234439743482535081859127988843961702783838345939679237005136612191677094722174511014552829345763504990971009552837336666340247446804435229671238710991226903938963132620663436473073349347527210364924699628313001652911142852559067920864547438771873741628258545843982416070383570553922601606033569401617583560234248574367667382353238871873526038008983237671691154367894850841354261074345738842911923838266464122594519824017448965019147295663151608103083799999636813675667672778961027759314555316383583723834093643653281585931403454499453117397591327965406079691968091502083007374705337542632269105511292855850640692279378486156233777667481597062090444459775524075957320093436899847783498690347215353006396472174804860791197644694825990245297982971232937162598820530301347443563457505936523626254803359082212766738216809857277909320277736363296483335069455190466131944430669966798707816757373465487858713930973216535585656662044036529879840829361514615751558031042366368969508178458755935057802106951374647684238807619503119620557647973207476601867229398829732319904164373041890280383898817484663802299924685956006135880993094802773500942937016997439345899473596680531367593155030287493001195223755455538604208516602704966166493089296413098928286753439808163372783321144168905787342090965370296310726393013153641053005169171240403933271346156763092153230324163726158043938736942027024183250370666519042294295046443100259556255325407048691188180821559330979106975848055113808707304090259612645275394356596416064576105658543168175079645585569460745918332511331047684415451058992538537222091742550733260562436595093805836306434067633434166286973307731975002077648797602804525002819798766931675100285299115311703560206229810055851769076492279284529217254926438402730567087644978551516672473009327450856789742866483994702312150127568341688568693056634390600704525273822664135647544023582011026825140333055138549515795323068478418676439435419718864598048208389593830137924132113351292667774776545213192769229902878799136794499740837436667295461929330825178861317003260109940964069609704200494587673364703507848798283925715162107842737771868150282193850524610817468872574892430119747790799781781096363149217722452544436556053340808012048821190164419925703956998415311562688166317753792856259165739704477615924072908652921599781705668389723550120207599410907619159733530763807377857990100789653514497830415847137253969324626828444963869477847732398848120686719341037189973354142077858153971168084828334313082645751142139755995212210746485404436611021294697434079350626598780299663147668856241348748674344175231467874875954864633165520057607172205174114090135879261488756305626002348963230832644155105458752515683080071553714137491713225414091021300239458186046454557568814247477516275727196738594444889505800734141317765188474861604042850376240452666590835515088855605729437649691605448909773971657781773651852730832102724532285324939166413828262118745884912972457742312239706287991007718926597597753993828854484379891368305998487025917441844198430686628606429921160274051988074966628217707116498591486241835190442052817062542906045542177694117036272028917752051416834240241033848350110529730803970544965170575645828247174113857308782266877765902091892026305867398331684463322700913052045827612488420198185512249077507930061125087173516471348368178243161105637888993089223370710694881694110547540894717699216724621387477851096922267126214694936032756380393338650535933502361644622072524267653260570698261679449441143690545807088056073832671897375212909621334957395197085087582621278346244246580537144092453952147060004731170886493942480359357128897831077952226924251745132535875978473922381452453357636253369818922188393884759950914629763734883996138140611338569390651280790750771881281962005294945650573996971218601865038895509678505256710618470457307765930926463523557313539509181641896447705625249631426601458707198769608008424727740085519876519852630708007877973391502465209469558020956742376155907279724184531734410222020750775581652475736752466304432103013039418024301190850591533501698714414498964831522227064575923086343969477743223541306686586785646217650076770808717505186999496253727681201831064617979692545858441527318852902294657936457184086214379027640279701375050338619133674222794888036672378910091632769199402469703745000696080831290113709455086019373148940956600093176826179117310525828109755889563005020164606768012204599189842168038412365180767458061323377981457869551290887781278399071819412366131525768342712885232542908488232209531924663856023990166744482045719360525487439807524492854708134178379403189073016797703345314132829560705040714837594296564987338739227980115585222435136541560995670831539001284423538028424699508909468640244269182548111017571499614578052045946019718546928625323238948085520982584629724414002899585321145211610198292808603467063854469221148515378738730252164456612938063609590215248773748358035504793576273231406768068479805434950058913580830355744969674975918123947266301111448122622906888729294516273318649180580756612601732774652327206638105796972477753990038625950201006018820347722950509096424935079754311890010739004079378915915945110012222759649049219848434555861575589272670259761824002612393838365648631725960417367336544580199632619893818416401833402363487849082575904708314809304112324015913636627451082541916461890065485290553805591496003924565618520569499707504630421355893649877596863692544091258079773910253054700183851715755458157397275792269658103754534947964191994843113563269862488120166372150215468569672795783355575514057328058062774775160623004260606935083699729978590455399252466665661719574848451832234105540631189756021278014597184674214923558364395818829356184924345379828572980824961055454357195877258632982418503514142980560012502790547031082377105211783738680742662077612765412870874685383284170432401351771953455667771703292260479537380743514846703172830652849763959620321662473500458840460425123257752580032719322121240255176125001955014405538219632395562050814160201716350740703923858523670091592494055297626774070372782054253680886200437538793208132465018779543558450302541193543443084370665034452205560170947838901261476230786638394593651181015075726710193379852588224983689375495144590735189210987362040750364409926352588351823375576296978286981789194144286367779890938672659770145990913532260295595902275049590538294412130338294954808899441013769155603885090027878689154234640317207604530847648620037274757686225991693761642879707967961215935682542099136282693449403982427155425517161556865319862848192141828099259878009620389919405357269951062765635338735408407665506755277005789866897882400922181770612303518309790093261846688128791000948414817892935099664708192004959316426529570577875112845789638507460711619487307844656263924386800322719997696434491993624982394769696526523829229442503628634395986891122692497375565540269580165598380266653575441680795529996680471805745750327054846819627463727914411570014724326908514033633618793839937384215049581647940261140364234471493798516663891074088479473300510549446042027485253372338709986499549976508205589770933181168094525395051999793124633528391675263578503966382626276574492443422899013606875989170189840279320343581202352379629893128897479750308147714443233170744532693700911507867797226586993787323967963292989025337481058999247280925457909571169488604059966156118091313351362570341909343949040495753846094079943835541996478458872582285780059270555690687828864428133904409455307472288434253824224610244707885058226583806711475238746841452087835309798012999248137121897869323864172224237619892693621646898641336085749823066846377842279009389834915530434390594456410010876367733460032661244904149764963420111349383115064142188261471624839025511342979947982128240412543315036442177540631954244660618210364342737939380492150483536386611669362197962097324766847808903835945048135466348527297127290618696374373836731746466936415343365064426455025142867093910867315016224682018730515317334735792181415888710365087909723222378668067292189972999991404352313222875398123608738942449846768939365873865825324767527668910478768612734711756662842649235432644128145212004207953448666554811297544923230906937150593992932788022207227364929773400773837714219568997223364325963217291970385857780522825338478006712043379788919834648628725376287313601744626592250022332949854590243172937041695443648276927292033602622626116417545126442483734636621003930190041410392713643279829645135019952843052318025575592598542494552377887731677884723344453995422733243165544576015818942165832094517605884681525251481384244213315196864697562532552926985757051817911344038230975280485086416190640879315311775326126459323440499040551062760052763142444354222745530921464041580148219965732394132249720189903452318696743721335694672480360067948298696754275696768037271793331109235099703648434492255500272462329473177909035721578757169854955386308159145681351859758779705106649987054464380624480148782601152412666763888841534500449643391609042205360323598167062583793972421970635053176882165599083189007840510256882570082337192970796094558503631031010865475511675505656012554707285752742947438209087365304208420557785866114692592014427679318758849122514896829898751670795495741479218613465242531013203452637393071191741666164485352668461299609329727087999981196959601660754289710274267317759799169674523506031264067233972569309794675198393768473806551193836373638003367640228015054596726778834348162321220420421492272616238310537317437909609803340551357495761441074271820528637495952603287354910939677846725284103975553182043116436353337638063658128570475121781818819998162995999127632019378665033670910563648106732653920203647359216285588702629352649311096778009931667521336840405209470640635644292666677372871404602017888522507438383315281399705197281307442865467439169931092885361320659274865176965744488121098653243502576113492511858580214588063320202351484108945276465105644025826780524943650268385510124501618299517536200381492753806848054766530900602134101631037653282219329248936009026223413524772245826422353766396140521583598251453313669176351188041381920092176625702464532578081446485124670567008019268372333568096534751360350474477158850656391453860654591846334427648724695863334573913917739543705270226058283829303982939315061835394248092101228348533748995240526342988593400155466295966634556578359777131197701348501130286598716744249616765819204200574672805290044536083756420671518788637991529921984114256349338586648238446263243223276633320236446768652610057709177128972557067744507489157939875531515566811444163902618589548220077503822272717532360960764050111512869688904991329471422972969078320864754600738617874844254958039462048754440113424902147478313124590475812250021746950873424552513580057209025193934456896944424039602379365009441578542182852350100569602468157135262797033498474443871246662178127683567289272329803190173799697855142634843902591772176490889486786379492777425844866178024287854638029128591145733858712069579886519245517412477940285553407142646306995316086366672581298096748162589979225584346469747819683007703797841356686283578994822314480561611487572832517847402320253117770308631216597115287970760955105121511324802369993832047912481072158004057663166858916548445377126785645361216008743668784746103336280392295383451944122418002362753698553415652064685879274891224800515835010960373375726565613935475957000323435526972540759252936955165682348690932704181229559130706687891597598126544243286301381434743283190776266706008378021717073536413000467307407628136962985275173549771614344772160265865416747004984793389905643443681770229076989647257416694501352257458050170635904642877513295936341102531828590707547393187275182854001236108784702462061548923241594024245180207149713066022611546414834353688182481740681954630388388730459244538889437042144666890278156893681906628684517500762524166035535453167801560653293526127645886459866584093830663320683863615013676302526815997535083939839238350243597970120454766307371762538615913133293062259971160571748179934791173634669048540576137914844705271508920438896119677509826569263542086347436242354836078993987775072565642815097582143996013202169148446935188163360569303605334352556601482961715021250008223608566223831096788246706019341971232152096901182895238373373828010013470686936478584516884291421793121714033556224913492016572318484513342765416333990312597476695254081266685404439692641903906187352781994542011652248286013506848911110735410984169544102172903332581516534990735805990329601397077324510010145866334682918216782232152212015391857745819044488884433910702598697895816060547548430542741231158017022995673320292091571935396904496163482280626959232659012655451181925794643762003224312011684548701642561514869323495513488120595559744767703393734372013676364424427768550811784465286791032898236957365437998355854420572229406980553801860142495963836477263248391279874656847650825063395901244991816666813087651081312341749806285004285174751716676109188929634729463604214649867553956169433420873561001215965995993092401694133929467686111162990533761924308962597321835305229205325287787095755727088517107928557020504629523844698645146448589712018512813843229795002912297714964373857988608575092464521664975162992298844265131094592847920600756010364222705721396500595963154079928005904890448979955708517075786902402853597784156172275897944523586821541261973929391822851361834700854213031645675069374321347396986420622941339319700872560952293331782708443730815385889986294707635430044565290140223351230352851544094425678245129925548575517808814855734667267693641602499260952861688324602489456891861958471640325588206691714638367218606233208309514287656454300078041263524974161284170926496686948820426594342562106210072728970438672787922004474334577602638892143836416736607621903582575001749970349457114328590652725304360273554864482615254767452417031137308638508548677645202557026444708735776326613631047565149947270872670479489063835264747788961131663189390682955817020833187419178391010167034894111585386791250433472900317584813990686913353792023280940420341804979374204154525887871717954257117036192877427840565082738990077667613670834159043032628535779457687224881546890370798504322874346872493870291846637238277813466817241587044305514832518803314028320375752497152332596317670144406566993481924915149812126705518754733069594115458017362752198205892514595940782360728722925398090933963871164259037347735858304776003027441840653783576367520623110461544478987289662155089272229087114549615827513298312269269463257454835862514344570687571506831520903799982775363061783787662857875770308174692498602343220329420400474458978300156405077040192365503924935735401267563876222216946522844870169748095479925252908578001219008751721021987754232615509312878603354073730766907252314280573443437509396277167757311584542877399246018598578167221812165735132923846541026793379864647549097179967679063874982583213117519410693222993933796551987543108840507340369588944940131756763589962715384207478637008144442293027885392277157270688132349158406252384606713957354827437991454677474481596808566418206801105931839857213189975105941812626451321978313879959501492817274734636175142769559291240924484812427581531757915251030488740514833332419111519632929966435633392355436721592091330219176660361262088990408368057548252187680747078776695612234426710209841893416169616589296941038402604159410878826626190466157024909887924669404222754880589878001805451749613483137687085411551872590039968248368331443010127281584089454222012196684715376738778992494237819703550042879073829096671669327034862581212077507275080744708740724840992676990926991410556056814441554785342865651934242546454634517353686131620433421575079411313728999945828722173128820628297744055065270673238572888613196492505069546657971633210466537333217706815734893344658048523569009945843225796360163229917180932400614527033249631725314700607209425103215616135670526171825476192579866420065162534308290355697525204524467440650833667055767632677306281513441750876867127260021369984270943530449783352321219456245257126048147942417308578124771557462339349609328718070963066156557636693939127108340725719735118958901664286731661905426714318187090968659599001474908785681047413799139609144901028288104644549849084743329950761617414904844350817538569907539493263081588985466939398733404659496102967629947589087251549368407538036357479258448925161230776471801065482034730772000648827471436379521762613456958440537032145413571051739516366173033718736958245131078539168586414456248148112734400487789891890123118674249596767153847683168896717848395317550342496339977841982226273921908939397339405822073444021689899553385805426920545189025492171190996718300427709501952329973692462836144730458530807824119598047075431112854785608353748449328757741387787285025427288017140109810969024317025429985435175458085686477738910033951610296937003411459706931641826427083256303870398555392654382666423971743756591950605789503921281949284055110222025312078136996413722031756108116535911627272486613027899659587336929160605999509913228258459205371688728590893908520432792356291488382919769461628046708869172659192849471995755185354798381273101084585605830656008923820867389853859332479415992384759150079409081245646543402057714975897568616561857682125323464524081262181714684391645226688495915244908755552557603942410128377585605258181525399301896061173965224500794220770948858149154374421299845723385448256828164841837931952676279048203500542746443053577254664262140080329630882061908567758003372833772177202153980187644278591673304114413065213469611331509193731404092060844167445309787793892662476628444661615019194296075470952113600902163601626427031883316054764339412828069483876287161029877201427672910222803199898427640781811078636409964418478251994775816295497012378041944431469268412591268990326799672215263918990072782402746008141615150591369504856947298029177716244094054986739699267562173608697185349140510071991851189715623645194659210725016984065906787215742723458516369754630943498202919155147741589181746872838913068884173642037440630885203017584595145843238385273955463599048893319366700156063441901780396635043543909197157734451629434599857517072742081564756411600391837921933020619426568869700600413325445514181670556462422834674360167189812019671325262026686361258381105064122838957424272497232806518574775616859247075144640671509549819648939550888939801674606528899076430066445991863045492823194587778291276366784940338262761375560991599370011353030707271927823687061832619140702906197130625960257338088795430446735585318824352862523966157680024532209597139647725779052862571224422336428461703055788325102110229239574151099432830197680261500838487500852666249039160935161721447998970214303021968924676430709936017595418170748757830814864655257798163563192534695756616277182445141674898692856295466941877258243891896063940905132631036805428754500777831033513502835039184891673641802151199536023988097068666712395441360256432364787266772962406174560120577860792447519866118927926297276710112622549591893605686241613132274192193515250361170595287084076771409499196973361013650800647273559346692275497563086448266995339148947807091200894882424120059117623293169991198922097202781125433767856244763559222535482459426217628783865770489777271364393913746285214743198619375206138279261609059140584274357468174642961653387910481395453262154076649749902558785775640140090484262042667766427845870607905810822094708343308532348537434599894254195097249103750463713295296574768202223582566258050886850173508580285102242825449746648289710537753192369043749383869623458130297292860959345998234323309802206797786722429389044558101263919511588010596697398462535475201244189936279252293459102099282083001437909105747901229148096437625693853716142192788738516890522568886241329292411625187901603824904929094667649555752459990223923894170448316838667917929176785767698997638373140856816680768097708990178834542845880344964332565535201473585385594341809193692227007596133123880598859028032083430182806930266766693972577170647862678420925626452483222089686956688320056650605122812746685808246661374248596746402921203857094889981287178397018325432460621876808234855760927684353580603082677279820210979984184069065751125488988386430784727147061006786581041633061438459898985070519163556851996205649156566838546660605262036449140350032812899344751266374817702936242385412136208283586271419902385739483651811981160834716162109482976437315353580993128723250145360258711528297398524378774010656036683959867266278499232037249487189280021893775337108507995299514814815004361040492543361499488169056905934761169223153377024660802389998973852748983888195253241959143443395057349905073523334238410251588446142400247495644231172121532029348228001091119053665588592970772770833534481096357764718678154593414741868123210607946227453879042894387179524898886570765213226897975373511400811657371335245706114022163264202162927084971348426906419099248112964758683959127197191937552061623002291067437061121713620333830897925126135914619007000147396017467385588424230696813812848250733599157875645189105584306962939073366739347617863462095505849022523813073415267663855388434027981909638592127611980779705971155914880564066310201777848627734170999823912055188659995874659938037017760568828758814077635406862782081274203036267539062732541870346494461207368418039751078376324584716873739776118516356573165160686043853159026924754892547479819849879391403017517578302541428933478550404317428102484845889179869590610992841185679264412708771732004317532209865202737267607354437761906513435437819623453629075397284231455975488947502344848480519410940152948136267056437579111586814466860357714264655596380122969878201819522210212413899293697588962357322756793157420280015347796994707421007241286651753922991422505184952221394731429481317245244967769646514586594996677652666914592832601038375926944211144086994479928853097640547756630819550652326186695007171422609698706251080157577682704006568323171593909824572911208039431722817669734148098087207930847808909138076318991435027735818513415043163973095300393765391718959772006468533001473809379016290453800801195419094843155995172201690655731429808450693613329916839454586612024313660797946201346454563975641776795011484718881556772614894474553856019863327900920407782735706257343855982118903535403630032637394456388830324231904301140635943271811587823004785219761041041594910719220323868610772520179574906283294939917387469137246085880868495007347112501447071726358318371744526198769631253161638666118076889681930696448312750939236930631332814105247023709837975983436548943898314967143460839983170365631075842326048180940284540518411992555584271671237525635840623895203912280004230276463615449135639478601645321613944187258914186360034906972484917365800801355367477077319743305307258010176406902323683192843078029552749216996281432372218417845654590840872553996717548559343183360026136004645977939037386488940993301484423855061076683593585306080305139950664567379966184022830456295269123875104516420401213685128027649768237469344973261713698580866648765727391849292869990320462741297828264937579935619042669526950204109988919048623843117259101657483516683337075238873406536496608029164175324765529210753006277055303661583244167788798102830095878705856937465634059455358090347966244301111578763072583963480062085652970725598896868914708224761228737690356304824880447711490814072952258676631627297051725183574075632313304719995227291509352172502629190733939358093096492611527139170121978609990176431094191431736114643882995000639616868378316717996572147762819255819107290027410207426694350682560091159705852766432252430623503894976873061140949305712656028534066140522132868151705096824180899406897295578369505051903246121168571178971680564993386451189591626589400740911883249342614808035419042563985593497486364523432295800589277336593275668713342991098058325513976394782691936996311689561819277844712046936728414541591294398972323107165676267652080757269319066670573995963751441938841028591755092185231988185457013662096437224931013395276043298664569450205079785295761952528074025901969579148914435863913540086035166032112970193042626818816941458309551097737751026948017048556747136884764904295470607977246565000248640745059811113049553309656481592883339934182307932607149208327289504886293395850372677045340833985264942990185495049122269280279296132857518708745025367753891234933896923102239023460026751727048578369632935000890006592615627549244438829734029264071335908804261306624499659569232171261058062200097610205653918600283123401717586073219697372232648486777676554187890776508360790265219041683345851520347389746958530076359247038432960922131226512931029519713607050266290318181947989923644982978923773027239181644643320623000602119290321918621263922208254845109000124694419292718187513173260405030698570839118897310396009745554791785820555269572490639455710390080039329294845239130250284644487706688645698495690589333651177620469365525605330934520462897521559397699130098764517467235208943809521221982522184840969504230882467762240634688405901656132429296334920814244272515995422810422448360765608299815166894892273806813152198721521538940346012661657895919356845727677679235722299979761961008883886305520763117642631817503374242410320337560408564107964980430140945534449825481641320418433073102104250985733164372413289690012966644373062044988131436662269847260109794461689736030281442934160315461065530729520559030102682365509364189943315807197667037830816516698232930452949504809982063798663068560267831708721989035912424139701961187278362383758448752656647703588426713203155225667059989151729621272537962538591751930544987761221554122630527057604523858418033516762467115984435714801138945088424540036614653470250878437382859292493309141873529013694123440180501076699515547285406381441401148901258059639492921907505119242962798397574646623136212727908473301063933293731103619332797847433943611204160542871499751718807917069414893818352999298420431177091012094370558607690338645811520900009675112253063373109857259026386431475399291903543014306413369254059601952787639570058114874905562467310716926689574532452205190765286848959650291688080819091956763724044035206945844386779246581784385029147099568356605717615720319617962076028148782686065338004135886124443411745334982501553405972387538932134006903944945842031147664228085505566447047376305966628872342535528438216862293191063911024818045257075516110459822252233881936835492846869979136307984196620376117130817552957783804690777771145146933033914317153176195570096975937817243761130469206634311681368564895373249805956383988751976650994256988465161569173905263270266168786567281089758504631304835842366636768878866361781029567497488533412660026001705946172816493392854370576301446505377468818192536020135608499719462325060748495129431759229716235735760826586477233704918181498374496468815308326864179411966862123150560668689106622744526251325306826743051860772248149113771084465413422327246547834928183116538081864080566842157515118484755679865987908541348390232159078521940898693175200386285681812376823485265709359649903094455308546448554689291278068516683645508117936824399777250800492220307547008421166268426323865277298768581829697580417999491520836160717169277160774134744292078187946533180138648650802714668655628308518022817589849438534014060278386038619890040682720659568339264481123539292261622977265099318295413899528693199367624055349535862883809696566206099985451253516622796515509238592130754628349346424031078790607835177291143243080093795265773485723019103961535074398208273442718850387004312350323012223959447889058089805635857616714329307494155196067511169436934683473747216490664900269844138346849594890984352951392555463843539718818520072699211391045117508790662382626036589776849955321994106265936871264743817252761444569707760446094548284599868900765577596296920485696499541143569030030759452452189266281518383663607800004591096089527217883108807315522866802137542697086348552241798076690190579847156645694402664787170899380291141328110203499291927531744731066620735195594051179692344274309258211598875302943298149146791782425293784882901941370542517509332056820213030476171910176447630702878787937710586227286345526502886567477335803113834059021794710525696292281928954679109744409632341965653686101010910808498251858837637638362262956940595591939148005308804897341985841408986329664365561792012505160779417883717013685045302412289141294093936443921328460551174146496172230964282838997192107899592460164109548380628232790550360613026111832016738920175248546492031374874053607368087292150304830105386174197724952717330907792893172354260589539106583123557924720417461225456203873736526035649089702303730009689911245527163602516387565719657746445458114166496297871010912160153012388920448169003764854527542328540134801198402431694292506610846413364203043851159800518338127006294055521659765433610728852699175441376802889382949353586146148560606932511453087875591690705384841574478651641263569159550885077794473623524998931561407508436734733637603534804882536366718036238060356977558073551716673279256679658590313426299150513479812311879028902206321392947449482896924558180701239827387568333472481324534074303308927856105088088843012649003544623573561199756602304751312580065695681973280277182022615953960297333334351717193299305779298436861003613158625203302583938969798457270511343346900895628222637265997964305102488144234195192918992585089588177828113209768990567292093076820995112153917055557838799750613761572627228200143106721529769994805028601238297372493784114489414127598808202371383393340717716276540104045720009867210395627958730036560028191940066195980484868938957125166998544195951495144289844643614228784825140544452139765892764965336451357759251218203370682263076975008085108229417787370623959486081057308968545614930488149874804417747410571213182923050792325708672389389284624980587732314817133270883410365838362151078862065639508182454663909535177289739336991225931195717265410465859230662871643773100729184121254701906145041411976588374498242726705687184952868951016195610072191143361536273531289605663074746340461764020349758905920834976282970737857624402320182953455984322410181175552243688045910323433139652436082103679360578438244791193161415848104135283118255576535615566997265104006646799550845405625184097527892890200945042065590963638475434695383756530688528008734119564206824187708360295624488203444524286015019719788762275197486624528431632327091366280658753759120613665388890057199526531821584341457687231251019265704748718760356244957357540190438952223554143885652418109100115951218249748399356976113615414964189594838959979390585197388471772127816000734169858277390050854379649514591170008602303457703308195931479732554208926260313144448150196812566447801499442863531221579124362985868042957220115278209816386984360529312655447447448416491907179235209342965561905454291259264461532450006557958262860199546958573044523807728372143224150929615462630644021966138143950884171239689738935063307454862675391691008434820855405676599816208151280853943979671201886632333808062887943975012395473744800762811078136337334618868846734320792577123474505073076868251194711388294455767110656777511234181586703802831214511554519782359600109135139662002465994799089718913017837170124576830844988697203131536577235585150959514927056134934801072521407033088358381097056693303267214074863948079144906013279388704957995380278764757789343311331899600124814878967443523234985629392443095516835543967993834251766526919013533134820847264214120522164823157607097135574006583077179333258242228185951576463656256682264814638761177917333091965163400336671068407828491647328566700312591693467172984129791501927876128739360421305890317346118138942530857654858809684846836958119475236656989385930169678057345132148824849064041963777637089993865312333501207038360912336621986083399870753127023191995902988975779084335286110307717712048255806697995062762705431662712677636664934110379820043308981327215228921578923647227228658193661317363690139213342075152988966744820846297473439263255767785216561058700751427563313044412789367246176345903037970935163653785186633701947872347177451154084607168645042795028631479630790685355787098082368881342460507109113292261013581565883375662314106599350219465620590624046261736723408409047277446215415223545828895128741527520957873201997650045766682702352656278505210813533532809665166879032900466959579437371422255164551218500817277981053680265905307514756517597390101963104284307107870146322281470278252794587456674698088906704571910949496229045367550390050735323479435170506478656619181685332233575686998211436279177739783761514619425578569153074649772266330566128508365675093876742874469624023732349127145299652295975877585904754397599425275076831937150336009749950812629700982674638846356353071098230975031034247938163545315813387426711420519648355266011044909323934522867788375698016594826059212453199501175678640950536509468264657583662378158669826657289060595845622568293627273843016007793102559063054116053987158616205360913916253151212181565670981044172895948290729360563318734856503582715987629023495466934782483882745696182202219329763278139125078465715759866347019093813330321813586096982286875472315186188301627659052757591729955125737300765197607360031170678681441904673522160296937953706813942031602930763709502203841009713048421398994275966561692734202517985045730111912994821086167207865155037537549111855486569494691221533483783724146402461391405740101954968552100914430714424295634810180974466359612978010856025066238880645765019082702353534017800476013150949508893489188223618743025166218094721193615518894892216671532188785350973707134094111742739142686961343925036850338692740514744573763580182171387003166694865180124808093351880880048991977801109685936141546228926776995704787002747018338710561676693481804669418210863508139073054328548001718645976582788828649361192710611690806667369290916699580527988363056091825234838791233134468627639116648591164226457723971673392201456504224607167115567227267877559298141463648344784485096626331847088148018273655117217717996765551543585345231340602332825689398042732249409089584803632700939565657896337054781716945488751433272001264523788238905342313491823379108996754576024843827338284315288154028675041456548153304274577433602020480669089338602388109774401209433139569020648104135042805161795529734504269217606885508371178885566140867578488017494477388699522153949203750247577614069284884058357057102194368703192169870576818210912861620943050156031587649453870027623649999862560368857285036682256402028039827731094788578763515661821096764655550144314109800314501952865633005242688996905132899347754373579784303795274709087538946478200672650869653195391329700052926935362644191768408938726820357387733308901731596806366085463319517000842383710999743224116282995840731478610640152040274860509603396223443838364341631538072456196113538128559178917024927469756601476424813640716580146356239781694657116345648834269055449417659780088142696932919984343778007679739519163881963139775340484769102734111748589963772257325919491766888209988084651778575894381468363259431594014317955919019765183564702878793584648248606137716444869597512270843511877875766221681111486926991442927903324223763419275622903573499408116129770478673159835955081491966817888159560290430030503826058324947042060403869484815846213604260127130369271098870199254157319213058821025165631004557750174870674124216387679594499853182843326023445074078324580856737046033139495780279505202427712251137141889709851111905605481108484386417038091088598550673763127638395823261990076529213861282775585039461491722628866878077993948835065142437935117650941733599840205110990500398559614900483408572990971608887832000077381386159438068350128413470292463196530750609177354282423409098659924830510624623818034491785217312642370694119097887415834127881556040954135054310218781403035027564077819124268169799502052980584609479250161034272871738509785327026933567946319317868656950395569283251300762376126952975819992167681937100840751974846627736359300054805386681194470733586425798625900275044547027301307224203761707531087679731687853308081199111634228271666420273869582487794741713263262655828442230734131178898850869546078269529122808071350617811469740789263113075213910502929906797084437145532699296731108312776714866723407540993372894304309697507728307974522353093747065164435584485095611814026425652156180793825770867548552893828670506193161059607316146191551506800131194480015232591365635588415853121354783368355660412307507910891281028193749573830097351530624876354039597318794227356206079842101944724099179204163371493921925982957903207516703371800290997012532250278925310919496340157635162987345247865328656539790081317705299556327858320899652529914525543095831997117500459350907985407584334211151871441991733083068815231107199265575245054772997886676137690722767906462910862617534550891547149207733150518743756387793330596373699117112089193361265540304264175626749491379592914285088162471249114571049518363804797369261023404107195082509773124401186999123423132903336402286191592237007046853211333313944756661722731578816476364350026585349722178308408387034870791500577985992776859690301318711085490482896677486204559280246988339377672916643170923712400615662478776026134767532945139095800652057521902508117864278185804127700005799854309753561040384310076092143567366609898431437714065107628074468155833917970299047090015027026908942065961090571547548126131663519698592141586771670166116023333677568858376080689797389088710074533502308965487461932477816255383423072524521371491860094557504063767736132049534755626176522195507730591466368953797938481280317558925105770640698314059328272726097040499052286943199654508981671802959105834630404235002702452538837918190161554778880766645767238063601782524875216918094998556027705493297004039743508414958684761066084630966914247508230287481613438761058958644325238408547657312242640957035370375156406498231213022718232365502038393616670422812547399539875775930811495579063116590143938025617598798119215928485545681230452162152102083778105142445962636383902565599779357113995623756697128459552510546020210389668326724195661904673534353097592565269827753767961141737208757460351763538167377668027375099813079730754438222802620933046127380410261157281757121437791916481739992780287370405319073924317973851901289151303588464926357694274765039961380354273620708330615022387307985836569944476279266834097049780339912691284083189877948221035303428270770417806258594263364396213714021728643845429891905325368237804539162737898130174469178316013836662790444978017089685178773514991040031736154419477582855190777878180642736523352789338241029963352189011054156594665645895467324655078079113307144636046106015996570163934793597237654674294459488304317051938856386762757595738847843167543139015594960758918333371459688307927089480171716026941663728477484024645455515484810993884617109944098647478511361621883641761683302310337752964502491039933067607317076382465590090269650698658266917026653183070664736246562850855249713135676128963029462829942053418849636155367503101503106011688130663370719258487277972294689019512192469230044509116132256762424893740656268175410020931790307596917380023545091140800408804706957897376308505117340247015725324627705126504409736424253193818283317962784381783038809968033467834071605809978200776293873991481787877230693423597558589988012926359533349978768912154920116323038289316274903927912267212080907558593927248820332812414372882503066961390803816568539532457641346206468853659287985283045105177475962978511169841612524396976684006609573061078708630658819224320960406415670106398120072350861487889428616980946687472753246869098290898332166492859964095740688392212354901090690788737005047762624218212508631083229274307858808968407275217201844225838486733079770250838206432571510157199736536384538067114385107466435634202334103121119607771475397843967991058239653024928556730468283020569443951204870581210119223324578651775454654630379555083886732333773912562076160152583842475121629919919542014806225085662760098730134613395741659026320641704995738707456145599898188358823416681105575223492751525806903943175926052908458618566473087196239218812739359346539103587616302861102393785869705864705013737656657739737176692628775267498249380594081380069885049407082678798085312914358431668052445269274970288327288325699343879474069728577509086440675082771687770333847197794652081038707413645433191998040160678061506242245628798301979443234866271729155243992355354495318449768353884229466610474422398454917872810825212482706339029352679806518389602167779584764531994042520330897441986268038020637203524920389909610893365697971297869519796552125299877295579546141209896304884276941348157573421674453783215913735289595752266160109395637428204249192071490658008235141528630720205095172392294289804730232370675614599817773503326687618604492957519311484970909980533980687681543774086456343367916932325918121742761906685316674812973543101428270087222354442134177386937059320417773334782604480948161014100014705602944444490828365045241111926176449399670497430935793120554524522958342901856413931707475432555202546311735025448535603403379676210298575082251151959946459559576273501485455740105972013671356742100274549794744011462867469019689640854711720524150138819676733060294980525515513291914022226857345097265950230229576736365581152519494595484143466202320879591139019079242411547457462833144282895317313199759095608865511522321630375012029675155294712521717590051021329760479163603386670595715925823915380518440859941203334674949165683964072445001233780143764245912297068230005421061338802296673112423410013007356648643770310887561969686449338257448741522245995626027325710140771904209164042205694007978574295926146428177408133134024443085620082863145652975136108532962880628719886934194339765405749810902220090553210019586009237687266121802635397015882306328386127264147542281287895264768916341917585341529539075783186653019225135665758646366084957271511477314418225879876563610878623781532950818246081841673212759711988585651509807261820873769229071593495405466438865787047921676447161799157719412374036480366101501123362457606928371042680959368303814050238462562885184199383823085266328545185634232998067049448261911763729563293495784267422214011305039597486586066889807150530847734060459938117485403268244101510407545193073097623322832609166512964011631795893888335347132512529340566155443282776850071803327982052081703475757153076864064396395366227758192932887944553698976457444649371277089668761837351593706830493784951495207502598028478462020939897805671678987699462517251252553641079744370556433091851917458667737530495209666665821603099755698409778821493963821652921804003434073150477725994094048853205515504715398544231728320466855256366753427391316152413911015493099120396516030724620201105882012805146425226269574709234311253488273224517859799982025851176352683215304511300928067786456491323854115389964366693114118748341698750522304884859136610983379327709297516333543779363758804820834203857453618544663430055386813648582352593500103033442001554965980141908550730600947655955145240325482311720907933079530995440934004864316397944738288020126036022330729037194102869201729496106166618412823367824120470839201367706454519908690916738492685642206886265487162490052868557262742344946674888552198717793853855691594528057995934582504606782995476774917328170276161619463121367251590224256349987003035358445693503194132373088032551809915806574419767885415771319274164373577930408125936580065163697322190298250037155857609958004747075458075047515634557371849608963785351148499286891127948735403545259868877170291917901514852375587615609340517935013719503240967743082971107471633238837632600515277122235873671000963231692892440826012924965214467948591956128798220147440163814141022439909155098250451798027026942441902723440521659557757512541378251287730822876016626436424423639646900973334115947960672120182169261226031050092843498610414870638309753546477865285531092906430089391615668058829069031440809910736248944363592244959628214357629907551942558439030407506612948380411998726782408237220666059045075270861771999927078813613096924866250109610616307791094949765802721679494051796997729703825881130265667668123399672456240757697071996964401981503067523606451437180773505749834472335824648804244251896099273698170238157038478485462989091215054392742379347011580837124166060405124613185434259617136549286905793572518539046351575861534372428096307209587676398982034029102733822573246025459358892895800954009530560774922542092411129054293934010366685070717549837366503630902440924295070712577562190254537382831464565666669655261794447815898749615659021083598826587411725541528676002310379832615300332092878504307997113016079377532508123797880913058541048820072900140825936129296799321545078694176962002610347127883617867197283936652364492236225891818776517200283198832169229599525305401261373119437491138055979504640442374160418847193832700784967909042070323919268082780456778011266414375855078514750852154172813604460502080064109207937693298056587221819262289224859751008795648429832213505522577219843467513505250915398262144129838375812035430997996363397940409560074863704372756432809419488445431736551192654139646055782132038355411897825615396253397224910441167939974205390944478705842457377161880002928409846362032572815798893978077137964834480023001284547403065424621243333861566363896421288062251261421926389256690870904104133145869303753214693919543660316136899641275593742422461086986110846353957016184449868224142613425761013064159352416706308755352857017278028630596304688890536566135338510452511577240173172179072982469163103421958064919375139714262594041017069413132264946634573530860792869680100198952341905568249421599774945894996577012996660574983692357476266440891405471341641579149378946660415998401346879608251565751423589033358589051893648048280115398483040493658061142398983411895788443057304075304141243462435521436443899388351683969278328694216901436400568842645486410391447223509234367835651964670671321536863213514221344876233509117766547069770794322663674112447489780695080966286310577098653418227686840940420286779048010436286699072294164920415242864864341914866061880708358009669823498364598668525220713280272078877635475398272889167071391642677125529407016605332956964879638930217059083050783651536717925189179674555536998340687084374254971609669316314899808571320861799796951192269587609060981688336852850568061064026232617128478955196439128053241197378004046288646495729352135755782443030672920111087504921293610584170750289539669235893314660711932004477951571430499074279104385699723954625481380347372872930498316439535340644095561150457884904188127891106501706506753475324727735347191309870904169149221914844437286360934198365030557544978260637184649229930788019994828260683495268717607466754649282940799090743990142509473226098012959023074102262766266636748910910785099451202068915191327498275247196003515494537248717603083089873619453099252745498927174280810731440705824391015985789516272390730277983972852420339007163572394501782074154113878234065132908971732364253902360086940399931396529989825061547629533656131528034095947600694859383815649702199508429155538760889300050790748858490394096822736059390029716563121337548036706480015698052923012062033958357599141975281346932482557939938244044277223348057131409110893471425228344613784054254296498074300355147147729652401070569500264828518244956160949733546181450877151181330300229629714867270656783825976589322749098099313824516791361711185770887636153243146185586317529874340642253086818172494073531907691030764791848498202041198460349309522191560455270121985390852053676986729719267460789928829921419161677463073785313774486722747923675609596328420164314772926519214087327523753600746515418176430721014242595226870722831258694843152631732039959184377605149056939393062585548169378331367958186738832807501681569243177798621135695254374752084885157558771524879156783715118847993979949256104601195457333956791958872040119135607384822707092239170168307291421878075043784980097004348355459182068503055642896618149504620766460129580587679651198403616619562645151151134294289956537833013972458139681271137458591812388769474147274584281540604329059379139452227139120126480092359063341813028512387971017498717056124740613003301882826414664879094596458235845285086535578817761814280445668116228264452217552599522231138854902028655586972028032443078147130599551926795586318829406206839576393548800167017013155893094711703025491245541244848506666942152159040435016633492603305004964884404801411681514441777042375485353704952506206402774569255892436997832803210172934396951893752733303397233019659537098401119152035013311660798019543058649859927612350729687873317677747931094238456324059055217256691592650083082717117291546599802378384797200659215255088863617679657157817257669374151037100127939183710909398193747156003123102633706516638260742222238761151495840068500565164562338377555941559863599054451607003905642059712730389124514658363245085225703479920499261912652015710374238039088094935211989574756611614278273325601669317017368051145415107738766243229775254707546533983984247593058190110930831064447607189286918607021685992771797472698249387639564415678723749031368541321950729143468051280861436470612756245255704464872322995369415411355245638519884793257373665974113593860523272228333209250684543250807252965497197020973535616338209598670488899831312212887086283215781360152328039557417845608035023899339814847726841745665763982579780772907623233177834484152497210183335751856977755738657585706357401758408604328012718255390633088477116362914856795092972615384882752728848617683570742138551938597250551032210439986022893620462985021809455459883698996156800339871612140108405111693482501830006864905690980558005810482315498853383939450145197796424129934474442662877925853071699207873314799221753371968544698434511463245298464157181400958134069060716003040746404928802809373924276451080931579048243434203586852873420933554510742095344087841502525974118872680741298576421330911240874884075981639052140614684727547626145391393909531557702673340173925570610663177447308912291481355105355040258309800239974892734019359170672513053481302782488301113379289750022525006701035619185531587588632039226376808337789161434047668202579100451911858316134846366786135081604289323264923560109835713236861373219299178448230913523892438685389627582473300356704632707411617785236026958104650883255290597284324575780099311777809410017913503897557754639703763943796561877045239137341951698054279181724039410746974486343754024268244699945378148584686086116791618922630377219090459468115178657782280735905312986932595403531944553188750830992488695874908991730922061612783610564350496545960147369701630440073567911875677454353986518227264348600839052670181847907600253522212313872923800443825429876345763012285864309853357349320503851643349275911303251797372197069938218140138219249132045483370971035152454369763243583877544430152592642212296422928758239782233701809595033682998167102964585396121700692160080674128147396870058258965647312007314314088132061753588256039595839837003181047552213177885667666842022645808870696699936384338699470668742533254962873632691441849684450802442678307724927104638041524772998225236212281604059684820972604516576014848063388770138866586141116945050152432650271338365002429706875859602659868762587511923551640408981354836119138731121987682478423758946960225732807469493969420777775689175577874125476626233369100546429807512082410542133764035720490260190672003525517124157336082350739086013730649867159105432775234508629871250456468291600913160114946265182753452806336514933208355152468901223921552925784456922305295565424120096444803538381646808914346770119693558121370239578690379777503362270001952766784131680128375292866895574886061772982852399337550652353189880716180115302332126938376924201513401250889811528097230254765569189521828042785748391254595493081538788466575631325355754867395594255877539797855944872238593198677078159211442821302779412631649213457152886601480618467453452984462425475255738465805742522249309269522816344677442644272990800509506818161847053338413398352076940052136599043741025225150772504328395081264402430735492865032086032829361742994282014425118731306109922430619197930623025271672519892946523726707759049107142406559468315401524084934039973143150318648240892646760677829622856543963499787016668585423344905022700519834788124444360555142808323844938696801576424313825143457058893825224628300749297647462706035280456639538014168239762923585081921666599853301530913204931803821373956955223681498702559982152435544206243077715965722910970460884410135896542329132775653202587988734583845586362881090607718331823855554209689353315416548627702370004488734637121669839128645476510052729951416358006632724373074128263948818431477590547982422332158388496372518699234357280568434781483848592404849554528385718695929033003903842900613788505201169780337511529452480130013982784947006483636557553325262708901844389438767939099796029260438925318148641696042699824263282334453750258716379765508746240413644066317442080974593381435077708482378863761157421295713639373969110605334590249335266479025358287479634193655908112765442141666547608106030932950902395030401851756034194915083337542152358051037009081057871545606878618863428924864866161996941265365069334309277287034265758677543031753135911160187446954688246730524825034036961914742405897960137427115173321882309771395196762547104847031597004203256615890048775089551146524653870384837227279437199668487231340325592549332941010413452876582849877309156095253665711200384463148310691566079635322928874754332571252102880563186324559147546501536647264027805915249649198715658072432410056232896087107467867449452498315020715456329542283737510659798610881990778247667272685917110647874030445033108250057960099412567985748021317739665519660259239640327136514939971046292583684766963713012795868826372244254366963988168612650321894273688435104043722135497561610940591123460166409841347476281230048512921319829330476251193270956738213282072655379269553387913105934614109506618879458447791120478125767527798189911044366725248319733694982044244557111800449240007339570104569609588818352926577243863705110901246758908890194988118798857984843129742506929897403659836188899230865562905861784581899491406732272982800383426795204439516102820049285903282771835497083506004886978213885418638167474600120966466841191609349918779796340872202401521126335378362347190967608302480984366511066412799542577931576665470962593407535727557120845622660121336342228668750730087320044607818042921001822453405135232865901999275533808129819474994282680162229525778329075754186289362183282125277369111377633364488812857927346079140342543305278379677428902272250135056739930996880179358722757515047903647456662663416912865814295554357508092813155683723004021186143281470067445160801740446373234300687667900189138407974924599655941060285083949249476762321545758634974103199946598491848316907227565916009755613631809727886012845381500704105811757249090111037303477709849185170896611145167826442958152827058381952446359069909383272719892617715309350914990775477177321334978840813269267549672062600972039147153012477436683709695993739203749863592302738691429091572026877121297888773655142613979643105334992010021458490555770563350988143799511745757501004986911195749796854812407887055266669961456404709507526967834986640052310318850838056108139763193067236836087090636583900192329637329534191332927654515000643878320161964661929416500954602464647014131199978409292125097578876819414509472126735539722138740349857821479735138431402580211844905376404889893513869873656314466735919450095458640553296880961900673577129660362168075707302745096950974616023101384765828994186772811298979046780551768485830712636920543248212282965715429781039257386618047363940490442365761207631143493176909337701782187506970449523309693862008130741061998843117213541416175342048208459192794014465731238853986340448611477779109926472545104947685223311670389974978303957735352646529567953633564225252140567346441317247450967274196274029505906400907124979483203088051295068405977163668941996224383308845121875969632305873144242677447144336144775077637943538524979825290921799406645617053692685827545578700505633467606715909703300413480182096278212000872697395240432226088751416728810210396724765556915107727121398112768535458406633148157674179890817377340168777345788122055900282060326637186989074582395789416710679391653015493693367306497106104137166414204682498711706494326181475945692492867976569115865510577295822053410528452897104669667719166605167468799330448852765300459730514303461231548938537548898346977251063548025479405631881073314265475566893222641903822530357183453301232560344103864112395808790457435807509425743951471308061644592442259341429787968674181918286703935244378610465378557445419999319646553521757904975085163383768066132853523553727342589298017484751815156746844433583445737892834489512580639928573937723637730186972433231714783850873631480235295839522168889547467223419443712839232560906458287915068648841686794444688761943287676763970538925750569146290405640598410834222441365024359715323331069565299353135914960905367981750261115956860893904214801765555208066770735052710977961251771818747083058638099830450192916412185849215476385035415835558966896759780962466918813016656751548174366415026408992272463886220641966561593389462403512341900656697423000937144634526189966575860163415710265985304277902526288089189127746876530182969168355691971138997018479886937009017736661869781331025490258971742542934689054308160084659113016551402794484744380718295937892404225445765605174376507049020039048272977598302133900950210685326572535283547727411556381534149369144346017319903464511893147118026275261499723168429576516078732424845343885767848384798662466187237121031769481386131246905413267999456219861225631641922451199114426500116843544632172719077395121675235678246403421370091100345691129274298981236122415135126861039581449349300460914033657176149836525380835284085465913719902397009149814941334540382100778865782146405862942932474463702487620314560221184502683692734526272166963470240389792623294024066575686975690464746987073939081901268499176629104840713128005926506442304197588637329061766221967058033968410964104467570940000460044954899219662540493298965129434204536157165394259428991791185228996968157942835590286577478882189505573214726801943411653584068461934896279128573747746214896765363729769224562749338181070081179847060695167786614681361520181695976051995637296688384973043847598397029486011280239122146058875633744624684872024436582343607794087814235992231783017561098205650959440193985053047718596661846172806161662302023780580172128720868127074052352444288798146968268150766437622612485153278053368981387790663438799328192059413289624883561690820348005285931651161464558756717344525286609854475103497215785794370795773825848266427851525539932831299626142574322636571000715437106757182846718474186414989367912888862042942719193559213498657655702273695670500313734330228222929297084596377442092303027786679529581412833739323879249559230195306807087336612903162936620756384424092182217626884480131780980293139407563338294753496622746952236255776508142743017863170218828798894324333826159962383902968710345475116143006417588521361835529133002732600467852121340090570682545297461484124927849545671536964902998097957339155110373311419885067532769353667716069841703532633723871313595168197595321152049541270478111094151009232813930089945952303559555200121872768205333775770641267734521599247514559745094976972947565552634437198056973074097012900314594164159529102726806840687013826947398565569660477766759635955778400673632046640764851276789747318819732237816711146967854582695264111958781504659299454275635409851537545690300949842097026017334056885869627368564170454118769400626936752485142301119068073343798153297391683424873802462586860308669161729946600668251623635793667583015573133401920869945265619035502959690533180890886476442439159822918665107487850987732491285908488882949511917225575881579015953072223529979714655949961129112211595933485965629839163897024208423746619751140808367421037340535416894066155981901139365776245626158237300071435096532152052636001388488794566542896432372916287284085995685573060605761490298382641328419239740907022833171146987880888702554981056925676323438416101618765670031572630895300421182212186901329999012052209086668132955686497351817455194812511792038454446834387667333993431275134768049540703750531886614897781303827977962441723859221302758255603302936563447659516104457070221557725495577878619814630732104172546957876422762954512256004707480907078541114206187611332372613549924912564756305943405334290301315735043013374296300729534127983073251304119376767267892432607687815352381865442988212478442897547976585573071821288773959361239855786018517290542717602602547347852048510824372621898979018400328575736322388882147749440416404808395121043722144699880292821441937226224955611534994995669644275760590868110706619237728853365023383679094457494550655910952518465732496701674646795633476067304778245545741210801344137532392087783642303713175982591219782169945582647195827460151883349104650626287051777327475379635199952119694439170128367626952874405771439853949477531212953604982775765824624393436781811969233998479399228542215444554646244663143610498391005351772793218447289558567696600901450653224394088319864442252740044309885455543685106307093360360006426130351479565545745060281151140501706911751306789284854233188369197579577170785075077028379513768186209781859618017256443270962827635823191208842438438068756098911695914547714592863350553704287448349795456877152553135759332891274518522016760962992380059729011716065865457926125583001430207522871661981725438555416397416824505231891991449786054418067415385696447014430323761540255367718882020641045294274052977318616489512288981635075909424698272766972989308017198503581133989979190541999877561234755093788856396515986591178767084768034615632296312239765063878654929972223572375703510571392566093456080244099236301912936749779511476871436088054814116411703583781442563578236334027022591737532353992173656555111643403465449937903303114655652150219349278418765229157800896053110679463285707874981823484794503217635225286952175583021780970211481206523441467526743773590358069613661229574078088499678760062625923199754837828834345605069156610023495898513981429147506270078971376403135970724673537915380077520407989518957688207573811698870331069891213541829941438886725682309846847002711842256539775830994789486377912709995639982160519291474753845438110195809541165560252046362627261094660871266727586031932757231886005965852303192260420587102487501278524911696909980185195178175711422338487632497344266154601356492531023028006584693669916899111762779261233556764240014350137794717274215346829972575828980333968215655501375290643685761124067803714342699377074668592834207349889500161920554356035417045920884113048760886695358068540954924102921674412258119131885412848979826026754746477235536045572306619947269551782196987477393749481882810683985460437670582828280948360601041844590973117230436056931371779725553646615856611945112900423606622190353802868556333625846630858263970188661019830592182178458777443468420953596816163822404002587913694130190790032287088106743482006383641385759305718660770067924119100642920756696634975193397439556253759123720724666180100227278970557160430176766394507586655583218999697577851563542405531006141443716944048056372212752602260099742629611081249102364625492211583279412204418075711386609034908896582370605461682970818738156731191710552416697930598646965460047757459523898480646565419735291981267988576339471538208813582707257980158705311166063238335510656840437664737058750732856019685234105947098178289854467894821178107941923995235143981154463219253050102509839944582163379103278002978057590978394321869030386943418478762045131426739005315344023006980768035363602567735187214916175262311005044675637924165501738507523507847917691973660090990537119379041708746186145867377996288075184402217588181166413215730420241831830742771131266382098994572124583532287760958951557045819823032658999217314681566433542328272004820074244751541208990241329576184481243683571323639190404685374467226970513233482165748768268558897526324398319452221317397317609797914686300912732884189494311583177974957959137815155953811481845966621907436409169680635289445793809972229958338783741077774623249408063994803730894286945387043185661495255364790189985857082729665563932304906287948994156329171487605706153183519308359883059546568403576725396370804256219130898983425454456211461806142549023062019444304941589048271329034138475918212037818706368599218921598483453899554273404714276403239238590130369265131169993522893991600423577207929122770311759215689105683799861933111778315609785943789199888706043585093254455085526259264144748265652999327672383013573888229101065109150133116676129462966115626112671222796686423799887603636973217541138161939787595812194972221186290727213235933357022341144137967992139838481996892013517071230474050025177040446802331941048015489238718121481866312469562865313011780503976853286643405972417071751593067973113224873708307514245667951153389118131673520660571591349061968744516832439860603318415594191061347774173081899291119103835167363197675927660124036638866677893142999465600808731701883221833596037795229850096135926997638299783790619467640846851498291896523694683957654350508024143937421854471234153455712296862878790544771925369939436747204695861710228211355182570512412877142147373825099888286542715997975561793863574974686321669041607121781265488285730720589311124165279578294959648511413166329067212351209714270053532525537004828073519314911796206176423810078052962514682455524721519762456682711661887800616641573999036294422114998393221993253422809113900193455569435864125634638933391005162873897071886555110986588725064060010946448877741846134223446119320266747578929190641534453945144797666829045022380309594243652844545770296747624809060938311561516956280531241159783429376203015378408772657601960613791987844963571129972207032163528739626561007401647111787961533325482500153134455773370731599179649205740679507294929833425976639192963434193304439495693156110099242823024140466573454884720061122573461027707858051293847949994555838262915003368762973923739412192785064234501354444128441104469582847418943327071599295084125561708859405239526039620624755219927815565105226058570352463384689342989185141913084400962751832365408962065139720505675947752422495489340969195679016063840791262485975338538943666558585152589737036327931398372450769730098083782549874310218537341373781390118811452258597381431289297794383663811758110820100905235975335409437735194966653847276003705564334226307885514982199417808973755277540525971449219731500569779391546829926791616759129493562238036911954224691851390953033208219398911508134386575084846324406349273684529070204322069356603702016795705277498423988135474900312983386804075710624513609128902837513087406417735348502869952286837786808031615065078829366165238962783148695865397765154156716131259761198422490941861744555057847722473849909166607256194017120732068373870320726013921500008010872865389928734243529365286754526151093905961584195708658895850042128917443790464521985379684073705050236877633289781769945574818584395424476847527902402925815375863208207573730476112232868251930371900940398443623657104106050094300228347684153354484428316895186252420201805163330726838125075137564128484141265237496859333493986574457132909657168681753215585525042786177949185645338059904036661433242426466570208330506715902220701354042437460662747304663544497636427841717910579215938780155690085564179539321417644747609860701775615464663437266983002619900697038445871917334350585356920412619435296701837571897915078802295855140515427518228004330975200018249141883465820974257235759036877697248294935940930271811863655033021198658778022095743047293693495691589052671022828300835031600489679808410731687561031506904128872350703795521141079484049115447984008798657179948467055180131026810067943466518418214474949935983460257564498401650048977312106965324928720852593525565930918016271817507572055464227292311395427026673429385208073056458308680257644252956129411070635320778670231023610944517929682909286328386486951121256655777489250031886749661917956733421292171942382698822497852763745354631361104591185992623538875991342800571351644211065667836210859469255985557859077129477236871456953664480401291973435541477723070958483464001845265289707420478353871670536796736520088182898090160000539531847517825318762516697191558123366430006193475794693975882682190899998401125908116613941158202537540287551435780628012269537860331486247124297288583922590654325890943105746053862790652919049087220145364084391545473533092396469058237681767904258973501646683050058710883672767871626993157143636646646141463705179060817000767956376987722665576016683636743537568606352971654742188016312650505821638266782734262786526801045852647571567994835166021597693548864388541814321370195134551256702418335303702646258197970040761300561100252143470542468935778742700093765259316884920263066576936490038331114237601695177993137510167378841644861141047798504119630858632372138938094893118561789706807695493376684431467552899668126412014604770446618435610486061397641515725172810523169885622999125712490598739001198333533278264188580040237466597978770075481535349128183571931518065224068186841210439900610851358372213357090955863311755026146461678174514119281798905318420585303069554718471128414446883314868072691933027532006834899929092583764374606898640588196695105701405457169634731052041711087276340061696696124446046788167723577676976418686659934579066823707178837069932094503012290411768065999386527238918004949698041186094049253270291195338467576244883425201669973305066115767429239820569816261430816937337444619831043301757990469432505528700198266587603896303376340850953429564133750491448052044196490844383842900864446633226301652781087800204179325383647886862533760060350267556910614666920231568161940964504184925725161356981219244565963663347843129019526541760121880275321378506976223442802144103377940590462860439604061770739806863449112190392691238823179589458650315730392644647176319892017231727889105276860619023283798591474962048704428306984994844121627044649243127013498540909375226508735211473680135335048905942216522929498800400442079764094476017370818665549447561704483710132246736553589632183741976856498653821451490635269438886647656314034283776657938831323897823252800110388272922193635133126142198154068265387637279267483548236677836398292318068952321906217964028628457429841385929194685450852084771816693963053999831923460523730386340417553269341942835256206115007677824130783234482131072795123418832902269516969171603817369470530036713236710648113818553993602074586293414402371879149679798037774046714770831854115775172541196100093479160016200101991496700848857353671746017889534787925024932846519388309023890321607906947447329226758566018217398836273528116461624626060336693784109091759218176123611522697573814398419027218503743753225268454701704315880173632965279919675570492675864024071921602402115847211323844402802943891615633378299668272937772353982415630375676277954287386152496548518688431633170109129131095011584922986111066719377616821974067558370743551813408991578886671440750163246966105701628249599927182292362917764202714582775660560000718947318398604188264487264681363367657341342121419487793518022458963707168363759896687336603608127450355318102808999593438941074030603679057777163840593756090926207870422812511490864072057913213088316689664863592131338037217794415428072367792377222748821581534425092397762056513478029245589791679399768247295980944526134165668260162347002847137719830527042157248288431687247239259879627614408398825429394914438476487876435697201846259090250051613971524156812822416901536438605606511589399980603558533924581209262090200558984414038074551762529732649557206934042606576443991159000041005724401598743217000319398132915796900655509643367644327600898379573579714811815701748071211767129175674689303780957519457642641536339648963210439071539290600015039195019915445752956373578182607018472980258148931676692512990884823376581103591929187161248032763376097173675134072118509785297146658935177723586013459142137955904453989502187091304591513600524530380397657795807509138289956054896476202924288850533884311304362321629993340418713044631146829477763663450799725764826090175638816858355347802713399403543285975129024406316766012223103037807330911538004527557650967747856791959062320954821644050046189969702346324636562148567733026900519267903912794058981764150726633123039672182214494961862279210243311438337237918975138842267489164139601685903784114662725918382387255063263042360393143648195863542946575488798835021456471856680493796577674357882982879393658900423925980188432348176321315069110105993825304747801855879958493085306443644296732721913324230605370492866857229076678227629467155434580254274669975042252311865967704766480924291147532822353947691117274710236061112751108862256109926120841166081649936851773847871055635184694140850112382988546677846218011780760805235102651619057152129490190773890262537256916786384710794851995874134374607322033230559773018318349462554233101299440758487868898209577021808962991383811775284297897809057180489442977158428985261195179063333560846785346831316441107586539486996789613582644872021287220012597237863559983460775617166823935857732689167424342386293428875803959552215988058595958878918372078265747013227329539788666895956670054379560944559055602597674517701040227180788909700935097217002881246505690133996179101623614271710968427556532788462621979022077324106615659365456238766735853067171746633556653194856300691973656539286029816087979801810482032065884995006443778032038795030745928362430010578851458991651257261521792485882007049874472543904611761173955216858964840198611749089420994422597913371204610229103559878813792981745599124760763447058007892789594433946765845552524693869870234691170751438384573760007736991426698764642837668517019398072333367761550016428130477948663257564206250891983951272717826339314855283267271156598187276705997736221378299736927594876231249387289962207877203949741756002284733479523785180373513798142804669749321009450919285354474777982713140300729991702134458091497499512322926569749308065712606272099201930581310902166947380894956230504649610768790911380807842418771641516317671749654462824422748426272674704323417367386922108464373944880805178449919138338990772077069682835984777277636651769396642329010374028450636118186926255381386745458504477213490007035144749893423134397770280724506207306542350593272047224708763331681593237361045974995073823175407632699829258355287125617924804427548591464056525745400571962119074522293018687715981014660556058724903145459158679535989397957526837094987163638961621921233433556903030684783154186492067944405589532512878080562797087224014221754910411899342685498601910635706938907009473040308634314670021557561163250647709041419724887138649544731879535672610548843638178905164069379466636657945966255755815584833643760605746836677349101692920561252087866400116871380327506905606448101758703531888452892611518412912904687040010625414530156183162754110554051339472577556126424804221929945454858528229214966520986455883803598590316186374982423740320583177333454710401447669856143878937715133847784712742038255115904999387290391507577032980536068921645103385849294834210020724547329780296646046612838391331200679946082956272629324510048412284689364734910509625066108213848111896858779709724420453367981744316004374500545463326329316887834748413883982063811545248514969109630066620283716613793053258592467057191938267006983690136380223355173023997555981244227886837056889085558789776724380379190879986665336537300709218240693575678308208869230742949799046366707579187178286233745575325721660693210211347382854122130239684169311384774721625161225906824687665544889938261667916450292981882670660547615941972245249121765593452832461680357464136758060951683005732251983059973445916009255261910407921798841633122867863619736782323001796492788761245081131074360166790480523659413003425144107767622216664214919132549690262253626903773462024041046281444953265001211314914715472213058053029264261557244772474433519784089874347732432929482662574128041521532316291964430093340351840109206506435179115489089755293093002828386716029527963482572319267921301997043261760558411743958913191692786408533135595748830887809219704952693293586249497832830981707899219034259674838747939169997927363036089658422249749314467450080819565217644144618485707001903962876118941338793156048484775910006870695931553400409142417048365628099600832383710104697657740446543178452003010685972485105837847970395542735644107149416197040466063472698658884550272885345984558882134101143801882188746967184539703457741802067190936788268879870310059771536697133534771401306224482207503569469922386193104332796296203034224838333440100509506712083506294694182099722084166245283860613980727619717169480254515149395796701666759413183443749908374480327793166869426745833489323740909543559738856561904739982702102564972467678892481812263341946706426974849961074951550316201243521465561350218634618413173417775255329558711305963257286694448120334612867941483427155642882064736071010868320846436877213786457209920490223221151283790435187979922918536539657870742544621687272662709955180464882744127420840679091824562405016746612954869325045185975517369998001814780743920187489218131028796522970247762296928108700445556171283252976456070722881701457017944849988943521087817017523731172509352558896848956739650874911158523515710508080584418597763033874587906744176014073485901907485278103128071151447042848634009411116503812392940929152100684432409059477235558292547170139574040343843878697875801682841683982215554276055868874784114404700159385279537445846173522505412270287073357629470976351877516559527476304289583641068993457143683238644679069240796230611789618412528294356604420435338696140128365944527841397425640990843483223877860124377560864779532685256385714144083270160501399716349933654938055494474035538285484531715299677610918798875323946414405574980309232131124562928231092986121765636916053170244933656874641297881378821560846152497196531199300061338245527342107053375949627930438113217990365197025363389120232472318422286788778353947738520956150789342817465922253983977023544480766795960877353943501869730512196864112243049802927146846134588595803289183733158127072805245301771405756432261566529813012173399136147168036353463647509800314371393541546496611367494313351983356791559889608708127123723280431721843624988794698164625024671378592318491857198385458099035657261681184033419385537400236444871429023910072432863872550019072362493363835847951043301875673845999265221683409847049033323542194501516431930747483781934900416457769006025239372146903918658139454459839808529070090831777657969562552169440384897818573130215807165751177088367295623409104834567020115882790968922285311108340332413627136716477696069085661920517933129204480899577401110633874361478359449376872810287460988442279052239729291178490968792278946168346939141652430484976453030979893124963851443607111093218695946159915201702840536233387261033965678172939372682717669165531575688219071071200557102825109148783279765091409315680309085585480685851095098250054148679004709582825275513489590063450768807737783645687306527121664767031122680518743753621736129966909620266953057524124019136190802997287046584270105703113437790874573341178093672175773147272879926727664174572512373148733318078448713723172360610083271605910989123392987678561058127055958076741161015856359979197347813914207992685042196966684671509136041366757424393435059762529963012411114370008683349554167705482912743887459326288470020089516160407181098715537972274139053489833992537535717786620808694794479126867452294322892335001709351950245159599745818158072024000619928338755109009762073493685805062095792152784496147771020056564086012728709630344268943486001193014223900116536838994617484398072474481725182488137450700748988205865244524106110251901992240632829736400258537897913625015567565797113040591494311902217466078342918653132778766250258927086536973479689879544922890075940521515136666326947098621210137879670597537842274420039500171192694670961517769805612309538287211786865004368747085663736016424028079764403841396494885992660490238976455184626649005604439558894642904670958189260163242100366215965071354176890420078295934332645287836829221302513097579366883791929780414828565260888807180547912630203806031356401344740905791942145629181295783463409843088704510009194266375622697367374139157524336421350129695841330914195249049647540455238520631539734017328693761975097628776009351022687177318366715685865968792013384210274837130365169633032100843527822029521725742658437380450736827717560158600614608038007125201977104735085208009304910991480317178792249143507537088727468763727800189687920408800346049248412770427577815074818126267534125758992472235531336705141573770283616608629282544034112777746519093219194159160277584187693040786124592789789777447664048928116543928788500778948683470916753703641517528421543129317398091782770038592999789508850943706870695070974623159440693832243574861947657773739137523834189352978885861289118365202946746539540634155350647940746637972027379782050568022057246843224553037033493802916572700248386318931576591083582396134926185015485279025012769002079556861178935962773924768321264263477959130595676861297441418711460535449741335162150263340332857804581873210310563271205401431132208661126280280861404327147780839397620418500431906672612470969314894959139838048696517205047672620262096002628534721181262870863794888618072954352201312148935858294095263831071825710202192657594906534175192372799292764414873429710644627183633907010930795787965373778838781244220351444337755723882247526020996415681934601479283324286336187375724717805238908496967891588832419369084353762472025461893443028627387601481425867372266324697925406535949848352151102735799691523030427926024541461719153493493311878178023237491217493298736689013531170753598201271489122947890037343568990493095484525829489122020809710674560277793692690018311767888543918821176960711884302536280618065389028129926918211153974486940182243171243216747147938482856465612383748851678370605639033888533942550981656119675567475565709459825097330491427720188535069917415695915630257675691892854021468965210017462806106490744083859875125487250969214898323817417546812804701130648372694510697100134152535427839076053797961706795478418943036365445540316582574972115239546353150550180285340190604150071389327016790768634157864206374610475741753823279195053784005195533102017667998284284043661635093145102593074053746328341049185209574528687416391093071051135213829418468100696941414301374367621557290623765731001037963449519479273079060958755322695523641625302987894883845974602886615337180869803786526691221844442764842236451197120804877340892308884692318286090292374828217279337602110268926655338582951904695051596933944462420988022962498570723547085833127938555776858939691351365198580833927015058928968748091859538631838491534122471456112999937136248075755585826213373798355605330463723818612005626799242560507774800329192719054634221526284510443908030024534590826109119612868692402527597148244618437647625175704374239859115682658392671201081591927550564527351916116146427181152333059377663598088347825282887447540656535046833108266772869231183654810178150083579268714489822880027612785201403583251846397687847423634531491044860807141049161533071530178473235171539841545102351961956074328486814778598233046894605148725208888454322418206848035986423247760645096689431600343700352854200750303106832954733056631967068207765815642867935061848507401138786445561683470891707683957470251861720414012684285993214480474537619259825128087104981827341283593286841364777133771491915978550747860337321901693210060516817916042295772075606083344534926253919991996837258751953244327078528726889454165662155493031001669849022723673879961611890824119107517495459073035651135819565553620675913583203993551689170386304011835964999830379576538981678659047423507039298104392212215137876948576689244783486789401174299307387825574494378917934489600652037596273184278872579587077854556606705945402598235734709068107698835823527267634861220130942771432223147586526619676298337008737340033612208108111414651782787779662207341500024466714937120657525428610010290400239926091763223037001491954546482206691546286410798026363984873591194745139461944141828756404336384082909283502016760395827038901777617228209601513299025405005918007946157113942740988049503625980006221968079128202132329921436512220827643143788548864725556387558644089257112015754303956776395859494576452595228982551475708238592165223184308614675248673416672565668982068546809253450798775679037703309297000736186578957588092447123825895198136403996219155619700305432976241162066934353179694032134507814788925755229568476480935455268456398886250442543117787679557462376787057935370770664774037971589590193724944405008432994453526089211661899998704325511627023269757345901902344718090063856116050836357947390891751903317839663705767934144251503530648122289373767786724787806567604822130308437759767253519327704502537514223058352328721309533498691702554878765329906941529106300653101328718426927103092317692083300466388948399430027909664194872831941262051284622948168143679256920841090529021656618339673040615364727381805810362314738556112828687246875120135269873632823698506226947070424830563680669760104459024177317237473095370090178318905214556735569151546530226946337041490753594523990341351234150417475937526157365429169465329250650660243278490421048392709844512663173961412284045337975478539391464702383791856965136662374431965827099504595640739853657227052238972449513941083743515899716750615163573572867757961760310599193905737592437953776941077593276823756587103320015817541648932559012699229548685470295458652907367144899370683468605384006673177948838711732293083585815099880528890575434943379742163054704502937853977883308846726201257736915156604457564761093237125397504006015766989813186379221849481373707256523363892269772002968479314337966468306050855477946246013603677036173656838344447981784913740604337823105399307115067235481592950812076459964348527273091421208844137428573002423800640641720393137065964030096693415569422318780425154852663308299761979517906153839574607394636688082241253392212138273251271209066573791316751271097836093682736534013121333619181400352262946069306507288625121160955173646634833847249671716872456315171384314871944222370698391968095596747546244712198770871775918052736250196691178040983117758051066466885975933106302808802416076780724189525408707132847370141955895170418309583653904161661938115357802848732298646572334233422494770412720034481682557479118598504001252803556318024650918106948200007188073868157318633875916253052331134414766710686192231954063697470262871919661404310231039584478120112432376290813559023454566557233322881879223402098449703293421690722946891026173831991961136336994039901162135592828868656987302152916653977092456070469122772692499596603367191283601276173207952619975565992590516520672220655742772754037047707838675009649532585889616385093410405637675225673732088977729212654329244920573340170292387650716933482653025868398816880214951756029914442957469208041050204050842941346888141224832490848679455916587232466756924557181322909214355357662586141705538221543805111004577976469316253523477665968393267865345072364271565049616133145338687189202971113784273798299447071885159480460754681693729342166632164324700763053151857809530082965079373572949001961231737247984730815600751819627054348349283924051849532631543612188099004430035136488825335084984171286292103919804169137870050220801774706103539882853612343414680290453769755026867165216051458698246204098352064133053093836516179886601149240638455538345798269218965666818041435230201156052089576974115646268392180675910018436656752576577967577780571182900456769021799196057189168647522810464569802951985093123698984857326874992069090353853800700686887295656193080621971665000232075029765857525520415690322735683227929072112870068140644679542720775780515889607975831548704494704963015084477465595285566148635648844011023233358849167593185363027583789278523416610983058330941799504140250323665624415699429782855586352088031358773713911981531058943616389798947560757734840982324301833867052793147784298471793344225839126836151455903061466833548948586556796673087970570510140841029019760444800140703406294614302753793003972966387026439816828976715564055005612520141902348237262579530489523965076870754994365571854551683539852213964184973493179360546923092390976065195715237792195131993055451626410020818686004088452137046783375680208163230692672338139598937843580559319061151765300849431282703377449922715521183980100085539778787806377762818272053669152709438402474649525779773818085912205564644201283047739177237377591391514577526449562550231617632746054041022962012407858888964619111234297672532365379220134387686202950332980915839141413417409733061263028623445569485992286207417616787663018553168534397618077677580106935871956005946572431879992635249493398796910559260264593955596257293276627665631917271452196469295267822188392538128988889144044891458439384182452697177322243083558776434790576660257767340714478339748086796118239627865643547890398039143199589897710770948695667871105340402368193358727388861263415762428258484121916515441265846787784421429481269989555383485675919087253451462385848704719185683897305497445489384150914012274957271824910347309527248501942369668509160825978505821852860904042330369668621874811002767578574025930172097762691378996596142870154921014206855484601653844813426582320693158272566538968596769151508289500939958702877414100004862808048789381976483017627347162750008452883101513607987589413395210024704696815954464979908447966359461316837532674708853717105649166437004210650652667423930788240361736399186829040947437971828870734970945830407929945254196071051288975555081940400850014413062764135872128329271488178514586502463458845639975799929398635572450374671518795500141704138927564145931507072593483806802650675447904582354735079175379327876114887350719612880379271733019660075593689214411084102257048464387526277293372458895301784139963115592762585740625861375251798073414862571819875998544350238260487011238701685621949737730207376325278541247905073329142600612070368776915096332543679976645489348409950189713272849256258243884863920338290780812274715656859581151103350171898280581369478349281723262876067558079867234648893946584281118965046150913750914161027058114180798373077034948227049899823996873433853359498662395237253988242823747430609700288939071029041416910424019371290100629933075407198332986133616380343593437102707032270459930476832884384363986033625824495991648978548940291804990966833770689976589313232216020014700649277727657558176654613781923002766173759906322259853031640093866582911492973652892399710837354183085973484718972376950507594277830026325712304336437187627585016767210192007576146405584461462129311091775146019954110992132460476540628252718904435476347622015501588047824426305760565326660262676944487387882346304240488722518039491235467786147866105996359587898809037254064112228374857178824210622248109771168842374549431664252097140146635147778462291357627896067666291469066549953083870161286714306792073102075296869616097386568831212489079213044220761634392310869181682299419726431141440184101815073748795107556723116833194859615586279374030418868631592195116933762439467095694580029848916967724011495676414102258430490188813147860851817669542949687235480022204387380592977209768234538218356334773256440737191708336578577750768927929889662235803737722068380511417283211724242971599572461628539265488989580135878974697938145964321016704600424938029906506806806229126119531487516700811188108032713840092057519874019731259359730657356387446979343485098567729521043899380251788764112946238994561329329270007468776780390166018574719883166928881473114887620024701886802461475722466238977457942947297525259681557865121229693879114535289687351514646186943308187702006651528071862711005928049370609387375729244871888037782271388839091468469911458431585296609185779938262404028186468160595556350301587424887596167362640918405055214566439791996757571718999712107932021983962817591280746823566369911823186739532004018109664654290665215926271649895086810570183789553210482649150291775362195584124282933396492063734674551000366926168883082413534947529158153894473901348683546907613670475091146652265364293852788800032339835564136113608597854165233123727407018944977201164521579918594342356921473486867464849456909118095136036480920828130071115838520414778642009286154803816311471107162976838070102260112923431081181066640956839615348910279767735212758636010625163431681967685868852793827964735082218644545733514135392749212182114191431337443754185739830455916448087573545850248034248888994430551409804443893430136007610681396223184326661404241696069601778375292975114600293641390085716550031329904386257528887405609094210452145609343354150376362153283782999152367130426516193140552510088352202239854738005940991421288523013917263287883398617773376228103015090848434444824371086419687098627676368122435600423640508983198866379236030266556992320056185079412048994938944008841327828655565495814046514484657783410079536591753193344328568919345990816506552885429487869563658751490426729517114450120294926481032653726671977249416008661432502773919856952606713000505838660480543900085894219648439401742208592250478743059958764941801039251015493957815571019045370357883121466865659490336974271811662750045733785183699234596663479513682171399920786883842748651671456506620746280414844579756873973459561368583268284525942038478943488231366310637427425586882251220315663502199798197706862870072342754873049314362979326640623335951716292525629365574925517655714091887335357633523753118761444488756895103246547196660975667145992585358575515179303695892039001599196876276073253893637930834270555929792382999028158266666925576683795800061884997654666021345750563986528317316768207126546544499832993077518163380261154794488932558466392947731589213295670759964403335548912784755809217852696679690745136916564589925252519808986440354720441084814389739961809926273916507671438254642479964181049107944832166920877827471026771805981733397618767243483461780018705379685498807281081466008405820218508472639882108876996259006433006651161251750695693849660631070309581452132231663038005174718416226354477754366367748411860150236558585660612914284866460885721783912933724892280488524381969816755957057851727521884833926737053305971088433518072978574343738270442919778863088180694349189331029839416454191008678564531682233970291093099687684303876984236911188640334372872987411400531225163219776227216098578438216523152503850050575208648501075792261320265149360601081264739300671679544858905428842275600204796776708779945900653826497145771522336674473642621745351945171287806220131144903523328570251516669870163385651622295527216001678776288032753084081637674664630486115004825816283526758263290617997351788969670147468842317514135005882344623993099389240814924552331695745806886077068269109136939203873904001211304304133122720379365629510617286255840641687503294892692843393957680308261826439983623571175590529929326803246313512356691457603689457953163502451279090332240091849574728968229846419616731481655883567664183490553637356340053473488871563451003258288987957646025942774751765785776203224709714559223902617512349054279760910486307758186706676714440004266581367056938352551517795136372590752147535148764042217441645895510965988359398386954033544472470790291463635851380572512632727493721092189528229286066119687729485467299123902430098702046430105586970181856183116692141866509331278038484078071412185850985848348194331682007601745674183876410449597138338864815390765671667188272898154145502327840496500661930093459100431251055375045778613808116171065626492957282771730007152717564271750631554719064036612351138278189307373150181015832728203087017610974845149035240544939190896052733957187484234443094820381695850354144046894688485662305080662779688399664293496555418466061870666631114097899297704644979691620133831803036093945851628334454180707646502348907848310482021873423888006030330736389345898757619836504899929051261006925314979117127891723026749173541717619702039399620653867594750084453078374558569893569451838191448835160601442348639528633216134235070456933427875410709582281789385695694960812518461051737892726780118587766125212258356103271244084181627673576168368312982074113776847211647082689329799406129933533570464561022042040310248285559643898585049333750508816698336210492133410817428391505124305242514610093904687138458797807786131246241598783482971479369319798766125890617806590475010391530147263624645418337885343438113154332752574835949315081417721603248693189171809156685426422507318416813752369003396381853271223375139170338898582132419598194032904433082502156000347200338633450262657187195590850805100838564632210080509255096031357140006732461317536969365812412752128852733968204912452666658632429159669880376319814798570634033806245088314685674407625190940599777221452486602780535674803223105099856616501081672867716935218614976845598510382385959248241664219988692184739801349176441033425903309510198152616744787391701933784910066661685233824218619400919503209468162066478499225827478940108763193135794092177080125243523264657339515201289561967881287216291244928584366468387002793122957245260739044612249129198023572987167854028238066235009716730028773408907199927390895043697955410548393697690156219371611372477878807956901684659063826829331007196402444376164651343198496934320057921046189114727632430640362838401748193140453922155740966220035415349517166671680934416246504269372263307574312364755209954371969219217305633548754892169686608147354374277818042821922096872257694709047189373435380551708125794981173544480735634723216673874839262454371569347130287680925319145148458975821309003201237178316755047316869612944683245360247173378996307575334101782099731132648695176897165230293114659889929789126917808288833939661093433509793127952288281487757085433009205078818791338355861494206755001818411381675572095758667200540931634231502796047407117441509505159626624685774197380557188023093793152516757407741378372563434704466078783775242852781840485719636398413990314985902039249770740039392241756499442829467231149926016668175513918493253535301187263418049455384437979291589429643400833046150082084630287922476016113357321345830504997540021211840035790702865060250274135674417741096239361603393129924832271896580894712752369498977673184466456119543522840016895942033822111725773919167471312211160178836925766765031036473643908450141588789406227333631884998648565478925936506860344785026047879431419822233428867813518034989764911476274372519606554910508201585320762081683848215083555622605296702180584286115860751123289835678183738152223655128853727945996514275595563829997023830508424528252597085920172947476955994305030606567172486509366644956224732624972966177034669120112151633324161367481988858070592924277121749732965043393642162680720002125754625724432225512694174848226497330341628383731008129534663707402362449846425265403631323569573074331915809055321499545138540159381920504511555476980716201144646977581717389402359746515367715969278758321911102175243829661513677027565647336988411024430380660471298176070961463000463015911894050955981655195678041890793621642754201385190354890274963083637444512958631585732579432739710411394551645202440393998399218063327416207911313192096751996318391771186971419619652439996672621240868232791492045299598851004460442566440135264997319672394428819685157907293462579763026061752445005361240519028013310894673632468088070935360299789165203515908414419047681929953690500394659704885073388568133084653089072180448802520359113270173142951282980445964819148633492661035494705656176627404677429292964222236048171530766056260262948511039138860659773270375096744481740072767979993481381113296988848936629812698414532012355840140527747738887643413104624848814851596142025742118796605189054499132180215930783611353929732053158821361883848698438881633790078695405134877185473254010146522088553823763652093542797420900923910777455838877504321116783450064312577675649708406109378558569621008536855466938712987457534321023565998476304969431650269264647600009581130171042584334106997556657962493002128071131256621755155922429226693146226237323051710231035236670365757608713261525766075823938803225565264884103727130023613810464796901489611902934988983587158865577692618172934413173771163050135993887160322083773781773393389995219995402424734988189037722400866599559566102176613446524188993689463606374090312287729860825842494079175010344568969880038395516078390811315760542625487439236209840682274726606395701469976962767960394514471818894959365914177099000843913577536896473740431858638672616116243739441077321882774908092573423252995892725151156375313120315080657837655380953164113108563439389300060141530406274079617362922001660600358945918492641229302449426078212852006145694549060228399693999880070551066504336803434767459519121639241794160693703380172306746200404656584578071583353574673959329347075580869785477973879673370552843596506804549482457107609814340589889983696605263585932744072921009063175943292825507356274178416625278774377992295150470287457643015996904488073631461013429445346153918130061531390016521340568636598916701227786813903882336440598211343885720173791320944136811753269653906562724156429075575200686584672426079983949605615884427223630232278997602934205586907746670099455591804941292492393091764430362868168340838307794888714383129292585680052483471934437925484491917169132704578936628644797308233271221910173283315328829493409278175066605150161660465170559349834167643909217632080770612823771762982080337958136095167484376792402545327478378883337845865619941188636367978658146608176519871556642641528158075926894347668268324122791258059303287915496938822846837598494658710739169537294594719161723545376609459386770378602614527120729800220863354349400339560675425001169785697971632354776789095370034167700768292937603914037370182210366341232342838662738382124492677890719876628541046231949772160468268918029352296377531724449777647370876245510140271774064520631971211981517550118689942710246301691901085050278694670462002668409393961036064428172002083001486320663413785709976092887740684031367798278390410738919062109031808183566139148419010850958063190798122135109432463967810329498915679829564762808133735321986261394978223128940120158535146947814030338053606383372637654397960907446218043116617445610363324289148105494770222445591956590928150553202819000948669696664443407667561845035710936921900058945266604716218315260538422530332686106540450536863359206503397102789798078265357858715497527678698981277282338839783333031111880606946067948475002258904868230635875286722543256487571231212081509934866010234287938239440057706418996621889725069623017676891707742637121885483172650218995209872714694405023593954840786085097537752617818229650022387531163293008528775262556713700501419465516887460483199693981606428244884450648719709913008541395311367119820933328963682958015989942268645782915412355614372981962422984395217133537408890958472271159022749267618736464188229364787902071747088733516929760285340674799395214749387453682830769334094534390519747868674444335425284231132151710621594075088892752640920510286403235437513971561849330288506769351792701263906883313652144944407821013626248928537918106394141517183932721406589250955386693888175579413518506163405876314790777294363703432405877456306641024286340972099212288232168350035487953165255655498514347039777612655003660138369060091592650170356261325427039099570016468640434235634493426026505955032336507156159605921161954288890891441271403300242885171809522348853492798838781739203310926431334172999685905979984936235355540489795898737068438523858108976279710011729985019025670029611566839079962339583404884339941973295013842077683782195557629816802361468567615623595194887497813985357206134599255045731186678745978513581514443670048441920844327021721762861491574237677772453958144691942917345230172993910858263822256890565115184391306066622001809668432151979725409787849378958882913582007068638506692336266928549982877962251474230980343777383576420105479333807459555659359378365906493293962006423954947969472175342703422999002519164439525364919371374212518051633369485517838486536536429049782909996377764429298537319221953393304736906778436482996018952364979688256358254066822761281038906660371418521071038238692454763760812866002796940750977177491146385602239260932559038438010814043325492434689326961603301042325365579703344350570275480151968217729652249834541223578866513858144659238860689988897250720954871065699414020788415330745361485847913673319663307391501985847056824598158187726779246906996406087883442297888539825806892147985028991917461511976681537007526069837125588303941371363948820225500878509715986058401299526754590255261718704216004142920963117720512376328565878824394091727126679512404463663308071419883216124884508712491455946212393294753220935373429665913186993916727808419464090368566698211425624801586680021887697693736907224923053258438040396473256480997327224929044647797126316499379835836079424716130169508767596296368566805434199375014026362166335459303096765333225340417047233941688031116316111948980337133343238512885216983252967062902710373378826177818602392187010300157591405959889963414857320589751143841688153565844300648162649828154157814419719370902440328752755870193069529257513961626741543128117460767478168933433678319455472051711743410942549841184997146861088419201434435122734637367035296650252044967845524884251408125259147315641995564372453577691116115567611166145336103676890781094810802045764542989714172811209055908288544922688048805034031797128060257231054271954947051988103427533117697264997259919006790685176478631157604374444065888088319511044629317396146119362722662690028342694069462147744540130250114471467761377225628386121831609316068568992876817124586165554789390797589583953275641944424749656676880839561361714671378978991681256352445709891834595639833094756023184293227348211999311081313072885170633885624808712114981745935102564690065040772898188370936219240193316860495790681599330740239100080048668660267294652215573663253652877231908634129791416795831245277530852219680988539618178930392241340102609964543755598495525052537606224833833641800496227654916115990129591790010306013817441622241839895377567916538967933398948737848601105688990243416190671374549202819863800095577123701457101497668791278301043460189140364761430640412840350104584912234449678362578548397742519898672186653768480479318155582552032119392162551196373178578919305238489050723657160732114559883481791341844047548627024136600808969010268427499632656065028550949971175061065722816679607176289004681709595039627935118024961059231651060774014849309053915852331137783550827591454970192844112814327586661112228375768243666608336154656252251775471240659206367972625997081030407263637650220096097210380582698927156424802967794411547667987638289121244160171664607584775739391015801952099262453221156129848095347553861586604768957385136058516580189307609626193967820155740895607732737973338342417541347547947002554151890461776748411468694463648704518309998100084702796726563468383689592267342221642694682977172597158872110025574918779370442201743890458781634312657807254050960142555510625437718678671419994826085239338304756741661071032032622113377840209412967951828407288870803471776969454191594187735407292450922241935086337964342637760012867827803309808701015001860768500559657790607438994493853730641765687625797494778854808730468251355721075724827366804853693345956408705293104004704784732965974361762371921924955307393028608776365838814946983298923352330573180259770606407029900102401905554627327881265047709583846429835176980458883359126657943471908767752002804189761455343214888918860130568463148794699812669510479797664794184313871789314576812730366729151481392644373362999248641848925465418836502112082878814488384835755063850431673623247350313837864727149674632277243768428126003464486661224345870458921846135125404714131805044968547338543326815443600454679166524591336117205769623768618330796286147807165939923258284989721273870325535948774072235915486544411192671586028132684624380423845446245761322007353010446689622347991880521226275807119891041996270332230699852344058763790666501898438669163890295405572004282735842351903570299259648483071575976043760045320602588578725175056726317459224844389162540412492719889401689275633198218662699038222519843042093749043643196612262137145522506633945069533302244434914236995360646989369802241497012772487347378385710899477823232854623519043767422640962882383216512865493015407681921551749748194733990245541358930549751027511878475453371637264445762611408566773981661395215172875218965511833733308698180838260453192460163978939712346733549049513414078676217985351883033926949818831882798965533235548381138329414076016569711386843755855774355854360909329408555918913691734589685866044104070784861436738831985797864895338547957861585468443005773803092708538517629410364224544636985646748589517458389605906249055753438062508029232229444649848408154913515524214220123312987739187176554823258236411289545589729255694198789038288429447817277714736454264680717369509288456153124027466492666955590454065654821995991106285235108228164904767740762717738692491232552909268983473589502297237006972695731124451255428284327633282359508421851084665066003796628212451585649641322657388778704510601616269108238674077401189223314857092227880315180268058137437388189156436085883884709485926564198850623135901029170003593990759550140098586960494483968204373802673734748139766423951783465161862268260929588264668064769380756746401459342898383106929936098081997252117730479088399681777963600457439859994452650373005379354425252389005143889141070850903918829078621259528995519757306914685839801098662124252651421540528769685946378585272107228084080427767993262803939871264528954665913236974059421270830670150062526107630704247096650091791657299637457831300693224125090551579654441171241674455410518354300982566563246050910952797910714617553598140301367814682172849322344815587737838844027335008761919365908816698426665254289422222929412204273263799001325394253826503601041332543269945599746644566758670704074623687352559106533936802255200782642659185372873281204775720687809146548398295984797637482696381130897105527167075203692849021335674046898183433103604504420049582054839550839041845148928534623035963002175127418635641662764932406543938131384335500314224182833914715988610805433089366785561633005923603685701324976613791705810281069907050231051464585102560576379874588944939738308981840246654365342402128170640355115601543159579833035175016399544276575213061971106694771976304826027118209175326645755792008291993644675739965975410901824279614086315931882287269709701512954562695505517378227620086530970503627097651862725938547992642664636134607750594964876096947871497149227366640857509597874242719493040735407678275094216896390595585268392401837288758761490193712451421298973964379183465168639240033182030222911926187465237504256799418147949069805164180086025430488788295797034257625685616026173235614246178831825466773946692167158991018199560457130153806912087151106208718373552691555097977310379389185904091625229881382140278203118628639490823568089987373534738195947845746537307508500059873503239742987273359114532627381574306153614069920072115460863346985127420996493578141392973597576982357469490816842218995360497920354416820591784537636324576562035143475297005748194520744239464249966758420573415397837670545091795731086640692405675808327801221827582968647382015726431925431388902162965202773343889284395776646659239365814098894844999154716854185530588722170730087274414916930257201395873062592862376621327324228319965802841452399698059672403890964044688821644606130397353148874801834271021820987664103987713582094530421312990974658266148283701197112006629600766501086453188127933158087649415197927706683700522930985458694005653697820368051433638088324514198358772571253254016048360432389353697858179083014479234651413214211508519590008652018090046060894942288864760264907767883592431184115194813984126068800257645779360028078860848935763405388334438626012979578584722876541511075067612643516753349475889542198160091654957194205045773074087996196176602717584349762121870491812134226274362165134873349574603326894045054248016757198269204703386049907047649993146549378142679054779868144807255639287503803911784784288778487117551639077364216806898285226834309112022857197632622132536284935674995169714567406535540919379619149269219675207297727657318512042876862754782306775714736227317451907039103041794137615141255297482586004229983902827125938890281298473002632469028909156633888621729874629087281818215108783134372555064219674672009646160865919664448463888842679883996554822074070847602177558255643375666948620960157923521725920257587427278700046906211346916195408784891141280663396353009607322073429991705814199466919546578449850155983265915823291134129115605854731899843308558356804539088264851883602143186801276749263429007345982998068123516883216524851012330168852651392685020736237092913989483719008427590861451977472124362857695477817319760067246141269217344874643937897610366160666476237873307899663818962781543013444743444285598126123318184566543738488645411492704377361046073805342432097920039579815752837261307796025914516305199065071286630376701379308918031621112567902915511191044538192500566417288559163939674275665211292908247410348372773739445074281153137984133248069611846263254162424168193466833815278085023063722335525579050842884775915741163956254307497356786708976342817084152433485125903301909142011955344895949574602325182092890590070220331337402305428572594977026995977462547457772190078904078635329246587046727330538639176300171619690764068652051700539995125678107674168609171058868839479095215902987997250255697560106770418917459464199862652227888933270998885005146856761165249239791653745365581400221830835684647976250699848027240104491592208457510942077458478379210541304879468287750635568494357432991218296035266250576401782442991243754249217709644411016458973902963722048217619801042382265691330847729616265999557459514422358870845860410828268050065500747847093534615603818891762751714687500858852523412969646772276134016681489837571065272393560247394755129360068090477821198225785029897191589384050686669879158112551967956395208502974932342646710871208979566227001112373268981126119439420142044690061154134661987038870679680276929793629429718149624044823407013543101497995549430443746215862912065563209052076962886911358055685591283307055629433542356698414443307651680684567368138444984134079529795560398112106267205387655492680411224968369814588505698916471438084997424858847782843914943955355086536054644623972074255711310856828029011637782381080770821566153558046157952939833749951748952421607428316601741908266277986136569354156161143404515584335219435854624413015751735560379479551248170599313003269585404462531807746284196303645642565363623423973600690599994300661154120528048345535926154506142406262016094107809745232374635758947869788975411900232279924942831830120970571657651426453292578755680004792516370326643663665909795672064484901280451667286649345217379318388110845501990506465262511036198924963527697651439726509489514857642346467723176725341845076850821326888720331909806976793044472676340065424370732604772091587481450770517535269807093872084694710082234355946021083857759468696346350409161681070449953960089331398116243313024579775217964108636738986554472220153173649634304334071762687962561565562751663464764515608380534301077323751173847512140341913073745279422419912266651148268937797563869488668230065347313403548441490505820780669080819234511446609232921826847954081895411348787390647413466468065068768239148809736535618693429098153114897621185942566929794033922361389385644203776064717019381287620300855494435088497386376484314779291303855762297402442921411368775949646941587581274332843707944152445869958435874038537538615155354459465367835859471421596341246479647753961949319829457213609152348195128573258458512478328639171072615154539147282596802926710572128776030906657286056979572261539578045179116158299871765850400481733854229833164581743772682111646840602824117979670366010358247380306560010531783094919071106606812498197242870935071593876649146270130218212457197285830809255923017954664834803083728557046999884750979457759578181309730880129448954903074915731775820164544891287607151292882144447135383931417703621619350599930389242600931515764829775938015166567659264177713472907619739371253633167557915272289647160660684505163020215622770984886714406887056539407020257707627205284882114037753675727130269801105489310738170402303237958248190994072450646856914012540696820172723843974367851817197197920507347986019684432410408382142241327881561054116092058121160863785449178763128704723551414897681088008199166041853800647125692242546614861314344499418034245242563257778757586390335725677163814137546044827206066835144258839728403657405439275778362020958123864042631900479836450411007877401810841508856422237763702398536901691154094985005867087305229761767413924208226982362791902738573803825499437095995779586691301034497386963891807792815042871014293825803371765054700390415598494852076477639264582147726578830190517239355709879279511991911165447783022054714196077151771939840500206592681631652856716618161067769980859966796117236128963274437115264392582024218125694512038138789943320440142817532722497112031410645171452438529809994501566723469953157693900178669082850325670399367027123804233429284082784507484746710612743632650956107487059797808851147717582381781952549526774007508038926053994430196912395787963969352841776805767645799692854232331357485883122028142300965406934404642340846008385607873086746126198505612377827961953665213743963414927284185832729657474409504681516603630413781566482983875455127605010790221291715293338708737404018816288055813319500502180802107405765516439999767011919656652738946928513635350130928669530414761015739861260669725104481279633310900757684210152331692216274864525116441108309551802117960482762493093988082104511190419286246421395387229922654621749741105971438967109530481429714786958958588725408084902149678635325016229226240275501119540930598715851491307797255801833247428945081065200967716342480128340433330250577363245778470316298069310000547829549880155077238506420388982275738740237806053663791141892925312549700054107008789850909177533251379361150918161441526804422628539757591164667714188855039367960541586815861919452373952084758256337729122279761269562198684142804982674946381185282558787322028397249673780112366115188066380151619016372172612260420868731146550075240238629347651726903715488683806301856595971998122892552019212395804828350387215617155584619531287419501044254841919595325654811497865192426732751662740564591587172636029137594237087521185417125509311671969030222441734788598281887159963359037822414942537210754253144646271787783642011698018981963155337928601207831895341040717954042393032465593154101955160665128826200669715875945827010100352257873361542393951151728962106721765509753971181043907399512397640549758018985085284941309309777104465660720143479252637292152546530435023488940845878583518865235525303433463274468405125556429379665485492959169093505308013087486726548419533824441365447376268606186260116923970607800113813453192307760028249070307903503554648561635138004246693311773850753999105298606663387646566082823774980054436114799836100092768329635647548352374079141892888996508753226136785375001622380234300113097455161104000326815658578678919035279170536449060851997318092618760898877480831900432225799508880322527880233588921157118657101849652219202541144681029281818255119754091880157583279820364891738677655910267922813656083822017553533463277297912473228423646854474258759850303489411785691820846756921018868909293322480936593432480122928140424245498669497739765000118856462160734482238215171669779700895097916773238133673818262311399416514411668341129783271946139096812241726422627978817578723064814266458865174756636001022379381287008672719853441159143442267556930012253371961943930075450398967789620916950364639503234148802777436705333288405459161916141541193730418463821228501598016457012146840571993506120771795128835996316342813631814698244267142255746012439906265861397855384461011285661169465046061970364386811957262987883790944594414641812571311462651150188377937578095095284296353671116614364759979993372787188345988104368275992120558605075758172271296221332675582596241791473548855751618095272109554839370190320399258818041622493676042264291861911383822102885872473553144899209282191616125184515601039723623914421549038606033243552203962572114230773237015079632322894867522136325959970170037408880270686832089194759738075674737579449902051813267496384893435883832814699488359308235262393377268167663548472279525826045717043417632798774186442809966806073196625556655549960780857063786496049160534081951384474052920831039943935776123822650674171598012967169573392074691748918248771123236630450461554243039634008434262168530848224649000542578367379229853530863414669886110574881617728777329887417685357700476389446675919285194155642503149288291575974150846869205799164041920281504841194310893859604587441230424613956431335886478066084944117423673506696318901085689722259888975498084818179752644090127484648245533755230187193403994228260867089943394201370316730718173529256995410701343009420424053893616483513848980569448097377368471840364772442158075878178746313459339745163595534255482855370843345647021584697938178906186913808262044036288103814960746055767463591922449098016334179342310840514460806941254060568616061966732970581375728693337631594845202946978735950798408281816770159522107921610752459139138263285227544049957910528939503826600974159016253917500288307659380565762457497370748095930739564370986375419494932754621999917351983991100811611153116186510413809025822679595790939591337088156854653271786891762739898373535218930064869982664084334296857325230378924253336997672869445423593863085174194108556538379274698764166463937291943272145147842649732978597037762464324313958471743880473238516670838638776109511623822679567869875377692376739601918350319377136985405673415495096498382039820810286621760543064991284794312943274775654351420928346399247257389952363674973782676167837146233625041371668604929280208150689268259491464813052328188953216534511194764128518652109724482010715815418066628840684017737808394033998840812684077426764894026477052825662160517657476027114382633976132494111450270148135504406724107552147658487238982508883386594814465828984637167228743394915217862426590316791364035501111046131915858467203370989259953360216763817182824481103685518771077777411402918725313911396872258209969220199664495437479803383330983763829299327338412339959509334309724284944745333235058861729824954670560343456041319740341731503319872425147174238318910247426611578186003370042340047185838500237162859378212599799686889868535656941672484186545071206878915352309465219702361237247217987687318617023773384427426104833888472867994254230709716864811934676340441702262253631587172239353731059214267369606591279991073408641985025282029449399766465608565714298403957055626071897983057404734846811369994054850446597767966136089523867268268541252701423406212095842326664328029047291158080410654079619877629219255183987759949342608960423339721981348691311474816114511497116666030971172730598375518872397929128588865776134552787153022889944035373205832370528258112769525902694948954296497985974958142404112714247090995706689092886435844681867582102915903717565123959518566212006740895879825377713375999508860892647612767192359026957256680629714270121947298983571368056879582219707497871808927470864889066181504610700763392585338771621342840345956092373176840252613417661614842391100024696598687625127026296150873255524970236962245427268355727789413441382055763505284554244661181738666108065261220639911465811357599047547217722666883505922732348382253471851454754332852858012617194970495509684252583459350037655764633834330879301479362049406557556861820751197211221415033735405555131357014986530166293959819832275446092661881211057400086445619628992426627831561461593821782146347077934029482234669417756482667707493732422926383210790216232988249256164869493403052294813103411484337503473524579698648645608932391511792069697151536557754553078245420844465843776657318910090345624094111117161895097298501561015206827900330258298618438244990724806238125311574109585129338022698639704354359162480038036680629615342784494986047825407084117149722946593266232412673026324771377292667397257300120788487544136109942965384820871186168196537590048281682280804117273850681415848220803194510169001107191191588289332046392250897420717027567061769892239101174317901612876973404165719577680300955392718381495535255088485742650893382258604975071624203991601904998292947037430197801642479981936336147261330276671580813537028542478145877492236328658814752715534340176170299473158442112288212860004621053781469577646040273107994376888353423746220346407204527561993174463713493774918308595233521610020903461487586013852915574426297957223489438397892425205976260422378404771493042954332413449686304215386369101832525721986483355833726111006872563207566634357268098581163449915309602750483399333439192812452518150651466580844948484950214732682535050239179989848285878228649648010869010857022438242655452810379594206811299583755202315837637769967220333338405302878238550547339100406024531607786039406049614274828945541150786888806506127461252454789844689712093325965842099242926429008347608664702992312380664839141510348092216114239011749231114934669610554019966951001720147799307068131877492965047089458981483644164784770933642036362833900827677010377558021627737504538587615881036523265515473134792785976277968300177879110879545778998013264836778344133670503706344055176734396982814000853938373463481557826925082909981789261840400886331698316068468626954514728606761687740370273197397696817071408381528862267693593624748648519066067660792394516428447881517691659010265176784656783284168443782917121093217848007013754606418197316862293912844999974036298344137317389645145534752255557096658132804408440980580820954900411503966639518235186662023813575564070595785795459642203083584398563415976446045940100471438316227064883963964688738770488817030210877721792188152908746533000373256930264724745063431239594191388124819416528759747156502359791387351097094041751040472032249533156571406018943373518203830518962816181525642782291807916882258308998586808726736000471342280228892505374867707049469561009587767937414099350907021166858845766047931883160518407499097723189115349196486734957794746443650550993915397092743154534663624806302517688312499973499999494161142061312119357837474712262032593079741279697320028238569194618445733395466285720691077222136597902500633703925679167917300529259603263481028160081624887374899710990634742670845580959217993661223412547328182310784555121417701131611918154027302277354490637272977432507947499439932879936820382499890063628495019347721834905799663917894738856285055881093793375373893830791571108345758539639160872812646116029999045005312450317469949419506630499777119986738203557886184732461179567013554848686126171005075090344768482457399135258030537284000149810899785266903111517755960411412678204380104506221327004810761535888849890731108074804069752940796424264467354326105047578337172925959976411520470890795750945093639962887068254362150128785344264162906993757796260343051209454880502588355612565618742228065821710188043711400007857260229253730281861249887269054568210679612545774289729696031923642343241269468154349329265394205049927720280005996059153089702816897594819509589814728584415146928044618612776389824977974093894782251650313567197387030417850020936534675405126321557155119022277092439317115121002411409427823409112535522897329379105037207166110366953671639133301461319280928519418159208897144093030067287121297233425722620784240726315447828052074303526666015506282197356158020349769893110062812284133987223517495979081550770194177182870688742591767150318649066469038735173137775477306101994156317274159334309923993686082148389414972241132939783007103220816842232491405526512274943503592096818161238069387208423601924546017025501022833176999824799615887863255528880061788714183643852665675029375007142638179605113184265450105198257512320474573579169690582424315719608788725407390124659742860937140563491084363370217216626967513870248829815662670018773165128317451716981264963031171654501695459004103162667379322736478601659533069675186164529665868555897440866898896072972938937956970079560671801379324672013061626977497661317236624263121041659839428614292574852272199103142699911355273117443551912972730340052904950596543687484421791116359395718202835102609379109952299878118701117749650195671832091420608879601744990103175739390129091121139970500729592806127089976795336472050197813977604455818015462801293432785119781603984993914713277596046673291725393496751346800775277241023952494357633295125482656746936398660317766834890219000722447378425151365423252939446772296633721576964056169957133595929956041557936578878064357662119858131491210375459039467999406785534319472550403771972965285160714310618762194226118488733569442312109685298666289876515121390069638758480074414946801554148746607910799755061769405049656005299863631870093800483886467735064725985143536559902796883172779609821523406173888448879345099594567228023091828987989177571195071266827822278129598709893922982644372063106493553177157262017329454843190367282552279698430748597067248510497348281755591416420312012826481776168324825551759700824512399683658042307887718296545344589816193551385964482019300035010060803818216408852531274858973408848040170681828644219703734471285304361839954163091727524976458221030375437206595784422474997540177209880192286380932246831212755929623379868674482758969092515007786571720900196638263234083512479918018305165760671159635582425323725782362114132091790805679969141881717701723102351165256255207662438647222934853849714126192965593348843693975173208418635584057570441675087210703448034220618251032827093906036290850114928623382927377706052405704546468397954896701804566494701269243780214809743734342162106765857576291702770563274971688568833937302168891734769688949050552572407628146984984698223080551089770083284934320063005995882684868262345737287711894600090015831033640708810705818580739960014054948170927662000955057873849190090288288804786983080251380115188626827937132886176501231394033277527583169637994988480605387320979245573164815529509495663280293137065294657474335760162991060480530411902511916706592937641057528611367907051164724507629900962622578983864584264516401523167020969193981320870405080848077036970854057929210464097185134511857194621358211447060800290598314483873281019647454739940927809930999376808697997405370626666950145076818933624857961839452546141275786647513497299541913163243215784538589360553941241541326298354448104487705272719425728138025096173558252282395107849821581651720684121567394027942537019577630644208456590830813719035565013057320722315157275362350560953674067645265370241450889941131605675874433507443356381058843049963233115889485513345833656472085389946519541077164434770056562730698309766558195095298379762429565018168949229218765384601434181568453455651187518055620763836043029237240066628916338846725491345377283129197283994471136002903437344112079013391403054789559054066802432219277403964231060874286775951451876902313038114698650004486682897909499534702985364670648679549280326170215152828232591946183740405706350192234013386607403631057397480473036384858554893187083022499316944494211841480381881385093602405077199664053455951147956057181906803545172213647291537026053851686534594339980989513449387804074870974104368157012340663647995689403606137668637898363524065922916836709563876422172585435806974998486287739418826718675110921157339348862899940316845568035759064306134658122418272119701759203965174504006980155390650020411780292318098051961093451276619137864623877096485504357594191300894713858576564336891752978789849757576090732367206400730691015706242171100598342217787949379503231513590115801574484314544716366268093509461268374911866608725411853365418787724574309958995250607431401289742493251372697833689741880415970796731329245446669796707309146799401234659877225728124722619618449619177603508602595855709235984511635319126642926693697572023346333960452358291461438912151779179504529777879166314271784735019771526156561061894695137225056543748418014369992346807145966727958799684769663212718473365074975059685421453485264718941252648282270958454734027041077251231576311924024670945495647761543802395602264423912685838285521546903960020126343010715333363968110969503437163739594486530706637641884777750090712546967975560122423636602580105893728859156538726069186394515636968340005575157466090207620433100751355166049211474062728302863536834381131884556003415640262753084984227784275111683216869446578529519039013149084416513352500375913519414747419369236997592224672670911086960696971065376791324126300542158852402827571154249146068037456413436489514276389495963367269223053631607332464587361637573304131344293804922604681984099397630360908789774471041896391420086426559466884971710707276905224281367985225783609803315517479495531769535331948660564710075840816659977175115641392941697536026101556991804929833686854842525960661297438902532083370169548634182164795024247448367417154043312144158970616201673631326804100027878525937105875700347095108227832907060761593455084815754965570190175534813315226147023868118677770366910163281947445940434755143637010361786487878327797735517559942163810052560044259733080044052702593388162775622199664607794955031721256375436899694896966248188820441395629874858620586415586537070403789868126409093288423530453281697345150451895171532172892649079860419832299124419423518052539652741434487195894030432284910839730924016634577293622702203422816854739239527972893174762137473232758389131741211006966256482627847679127713242773268253904481170576817321627076791567268218597676747422112325054823478902195619155317209213986944185844795163908066440298728405451956339778657275212434278703931255783995972490490873151618145796072588709953366164511306603124020467421927038750202622109655823656282378986005117202166135972929191153373838935026542037511659619787133661719804415686624368174901963053459374182618527091981131813676182966164081209624171164611498307352229046058098001544768086056071688478735387207498588693919864758756760261426283637742464197300557423032882995022674233337881127305827235629713548605764875874550717654746640144071987013763475669653998287653855332949137243909045178659581376966577502548386333172670507230875921669906670575105335565944449832322858424068835410618841145247815880955018763679181337650714650931395336429043309254537473447221343093086782758767888301680423631395961158341108785764740932992747596698903974654523451098687693057043976257679587166038055441784549037322477848638101545896820878111809093314377892065942945710810769571186119529979859070023588030853047890759825603226377621071920415729727399353356116122738747759621629610839094645099271798803584067804702673823498778634441053419243956485909972896400243874465749650930247961633089450537648550657087981046200097993931366286371608627882504140004884769752691626218773402684365444304498221649880633516838923801990800053034465711204976932762617042915436586877765497482159598755737249380120294371984719853559833981388375472386156711574662911415116103581667315173263081459442631478532422966561354880970962409301126618632986752613053841010902160339358883613351209091333835724513055166084768627165933979792150147026327909851170628268351054701556906250103866139279955105163146080012588764122131550582317242887133435546955676946257621381319833739207694711253487315330341880717480911568295574446170692528368103029603873559072944265111940600788313656028776741708720480308384369398054190598863392017385965062458547774473398870707330095577719878716254149016076566598749251285662600719631884658107661743329605123892665196601531953332738963775017759998245825332382606641529290797252579948621748054562942381695854804211018365911373379073531530096476215218004192347047216931401743405388316145058032528620615538190837594655270400494437532055020543725224605932435924608735326446067322073836623679119831881386692346721077812378011969528716026924079878831352781956141226488637142277226534147946763936144746739059588234811750247643163400847673567290346392297678082793315914641349158636709413904377303549820896143861476452905081988963364258351150322464700226184587619757967226104066324586304666262975689302522822718701466886643240723988570780863849785686849557121779718747514886777445966742092879149891689276899530343495882987352429436296075454846033482921609923991055348371115035125800220540709663157327099113325478466795583467318315122939481992213342145217328291317925222185235482196029242944316237165442213917397093959316926021152561875639655512275494585953540930862219363419449107517072580190407250828210838030587117436137287986166675320447614032979476960225474542533127543346477560097690166046803053112120437162761005011911132828370487764596738345496178321719049042267175443712469813960169247092013076683035830292105106635923029792081141708351305087225489299160089929323355517395062756486510251843567693971521612762435405806556268178462714294438110990437759213742424562446059931885131356807470791800057002168312479729998792247956147137490178459908894548398025327801871240049704018360080158448918120231103787699236525068902995296140159689667405642950251730312210304727670747821296780089357596724171454327751360857358228793590883886931908375073849927508058385796035105017761343073424171934255257328165284867515266655960572574331557756667626272638772103399366676900237082412461660745865923726686013668557861991630178682701531920479471202600873982211059057730577685666744161233648040682016746714891398526267794236324631078682164197470969055155627977878814472188303048038386119162063864959726225707511092106889946758201527171539660472992879019756893499343312284259778890202908506861323004940090264047420563552463376361496770672230299836277238233111371855786124185113334663653571386754940423144387344485618306643011206215244518398898702791209223092006074426019550947389880044817925055070113670037993841386479245727055001039597349454495846580515282787364023671764297104850685456242695158723375411303781831251266056727806771355705243070553274376070044096444789400823898025682693604721131799357725830030092700123302232045468857000620182271255494026981904899515816086447900148147143716876727896269105079500999881720487630832615388947775425125687472888801905089006454010445320442810251386205893465042285831964343504285671453456435572164269009998376593751481060932753168747187023012931449207526263886386343718709672190821766182829550206182205009052112895614979088138511812120102600292608002427369495262576596024406151235075496660143325751716951148988890926461704946039718403878060328796893330490719580311628544652399183995128118372384309326992589126700801529891012265090627660862894348453711878774946218541548418750109289780904837042777142489171057947517781296348756518481539657515977771077804036130597864522560858264760800707848407910999132420837597001616076081820330371895599042565731209281238598288465068298628611023124792165832069182085168485486423959765923799203187710890746420450239735216820929545752871049515718446343502474563240617884556423071025093918324394052794662411567124725087385847058954471178933975658513091088037971863028350691014623096393690894842583674466114507801750637455500333389023718253783008712043404873400521680939860765497082989584878505001711320444885554173599476206061747340061194617254009811712615980654202303607120243018306854193897709899687530316198774646107664697516999528223955220472979021083551394215204644839270787701697394164085733388359155727312145190871002538298543393600467562240178816058820595662770729285353038531189537958706770934170044357286119257981693910604901393875202460589737933539454530839909991283408534924247159471412926361217464124035560526975216933501701589710252508816287860080334543122212402328834698479387344766949140200841620684550461351032423634168875557227198019021497621699388702673132067109911572446591404444173157645698600171518029657248811467285323566377320837162865005972751243116680870291232432328533904081153623252890710925841098661465187164918118620927633297747877158490139758062642840049007134434084024133292604766602400938098911413715111971455776517724262521955033472854507920052131666398085590587091830928512161620008739705519554300889978174432892082825554023596502353969773925912775818366625483769446993954896512084127335325680174670299482281739775867411446351994315193828646566042532484958030890385786095300850127737179038975989123862784684442999814796819370057722409891479760520625280055233234346303342772934873267203769223022038374707972997729456730868700365173941982107104670997615762014519847779311542373895370234655497701411805447225684586321759237795757246993230100705593177178888979907289587129992936884808477620468403018432782401947124392666651474720075624344905771297805030094553448453332969881882841759052335704918970966093125773933041649941842770369825607176896644915266839702526588632867769072744099873824465278181399902966354578425695227340919951099827061620260579159398394853157008920959359557085859598519671401242040016100915936567499514556907999913692784061046900607948583801779076664598088421185344636828043273409508480439048855517846725714186693985178535213357312933274363099594261304233932337242504256249959124506682326813949589671381356358751477923164693161863427759731718261024256338092674249709405311023852654494935848656740134585444334035995525515122659974827054687885477105693237252987772438636698560500768266337901451533462094493471854529688062894368036182432619920165262515143530973508689484838101269770133252960210868813674727369471040518215119103650467542613907420003508839137421880533415104536857914598780483361654562651429267582876969995994043803125414023458759682566192396806353288005868984168269512374978571712047336844347121447038160232388191319163147671681512203510584260565143075979382085950861642452246194892396727903369532646631983685810391131021841106948286231195336979363346896535756817781337709882306268133320670535188413957480212255096333814202015056282308194030236881474027184172852853414424018983003190386889476138416671848159515723130520264309130013021653370567511827219446647206946136882748359294164037288497449116371433859092653650226435453268960694419015482037715533450505064970914938241128024760672486778941831271995659762498285667968256502870813428679857730624693842165526278920973482205609351006875991110587040166354995872198433222372924788063108916998853465209758936773843968910823161021997879224152058984370097648214689534324885938765540979612208452285025204899639470447631582855128725578880910427075845317806618015595984047044398442041985719267790526472248627275451086371088199781825829093612104724144022334648268043359728864814414301524710717007743710538336796117309662486238215699191072729337801062346120548228378329310889260125546517135654181203819430542132245107778314240767323442449675232898675466176200842680417729905845851757315309244632678335719488850240828284896820072366989186400428110854739916217532951183986133435241965294760391116503152217384669385321321810857832647917168430473486756109939630267988880934058521869934654268235747408581012516194128755085190521543609080593616803741334576229587756107194989737039937151563367967681485396386841098551233886503522509070497777051508252880112368374138529975038443040017001079474472469548540476302066232505738090189302802764193174769441689894396360156076451799350124911249175433549636496867883774440220723447071630852873810102822816286966299555600120434133735502846781599913986152677371266511888640896985919227535748278672994548141665039335143408241560910521710792132958882089056022316340468907796833304037285760226299091838163037416842243383494221439944113908529151807271661563550439101571512547871275216708756265616340493874318325950123698656073143153897877058997056690323189602359627426850149627642323998890340337330038907984873090561724037408867958706748371487344370556076155214667776677345410276632061732292973494653019140884379837227706790193222902441257326203997928766734473712534814789264023504419127634763708030353679323854742617494828185259712853726896055894315191412616853984126762737022272882019200864607765374807964698549260702704248848188949589750132493961639072256240573280810199668878184563917655351939905524406741419687353264922458836991844830643718455021341533948645506209085111054037035433817551872930801728431854471300018427417544272629161386236556261897245685941603601939599947373479554799624750716640614457544797779335048254735560050351338202238037050623848761146800063238747883399654509642694219750506274488011761024187052896537958019567787614052649050052624780902619533099887069862299860337428598278388279476701187774027243489726543082972833980381532441804638863991664102600900717936873142059811135844025859220745830950287776740130964852793547332093203395459394260378345188699238618463083316920554279851348706819719635040866358385359359388382862354804758582122320601790224744768851852740640050690815960078126164972337063902398205283668247193776273901451765601770892791013068553415498340476072802347753266690373202902225214033756754982083153056926089860779257364033603296613368780462005737485035403850726874519724253941472921023897907692739455147849694667636814227507153638776123291510907510344745013136647723413337965655847992520247591558544620546012679527804053748482302006362023269778853083239914985862441820199538409133358740638789254950228009381707232200890807100070279835860314093662871575172094485445188786146116443733498371431940553504308956313757891451207480287397141587892997219143655659729013483962535146748639362015391475304880340765905557794940197272614143168113216869902708431040992206161107550046589611232922383020500131054846006014766508268679503247478674987997967216123298653006415008669678101528504368225382130920508632401162118202703872803489584670295900503246747141004216364490435753793489635863153447080804089908724316849933740874902071086440667165578275507800571461506220693714084466721608220605796693370460432869179603349047645524510851748310506189360117311864919761398537341636831060939311607383600391746548016046026261344433364095989468138589105503956911886335107642062759785130134607579554572394660636991577701210399945525259053133706153352730747201218182649288334612783816651900961239092644473988589790177232256542622042248567899635768953285322980935323836128839807018026008957201397999469541436343176770468917011721186185359376545174901857433936062885665977365721749380655386056124796153509797694588253895700163188548132438419259739457229689206623976460515881148704066835519047129928463259252993181014356701566568041596927007139197940059467118470791960651825261177586578541453420696009124491762821747875190928254576947940001169737057417427199814816595824311677484848886644303697976923829561197447522323136611546147493707572938604044108776083588381385066280774275976586686404673034330170397976339533054009823620056464231288734876478129866220558058680395121170245024917900095785887919596354376209386424374387610786218172872150462428444382983341168711622036278030381173340471284105651268338187099902910702485708390113042552592343716744912065557010178011468065773902787214494568524682375633713568951518422593655987438085862797341969841751798441894167298294543023291460514136470897424217193429874506518058849365260893277741218889687456954491575098541391201916069668525668443842436656422564812125863584668157177747829613211213573255026332367882366882384722352591947261802702144479748757973387952227434894652490572958988059796921912831023217961226291335335115379708987154559939404393684476230722819335229936362648837761068426203846413791181572314868532869261708831167620582660217834512873121160619715940023818422420164491154732285510314406269228612694705375270178654165826391562506624114712463710076769941341054255041132502242587503104764820859380725119933144605000985492348783254746110791420442779362649198034649771885396162174184422550851685701468636708454510869834112208295602459977383612770534603127117627044109446243063195903331974432106789086050002092169452399561279512378415351852632035774568296769017466709748317495271053303795612623938819270112077932639181083361470700981706724024523520411107668041587725547651198587288514667783113272271031570699289644795137760979415282501120420197033272921612900288305573272920126770662390768614205565268094907585940566205775891880951332198120101378113002159121681955124370265167963065107608663363246923399722427343602741023823173474058728879226745240885537220387598835640975107594894009090971830855595117691006020061998932195454552776820781564570429082154022880228466819170524151389911468804991704751478607323202579490849113674635418921202405749964136281800100687821813347280783835469667785490270408147126196667775084462720255118704692163159464250298548560780450244149450911556437008185336355915411235529077201026638836366181756783328079611227666724299548956938999764712543380607106689514520396371533955361400288814559134224215997678178930965928814775186994121669301913412079949380988149156452574604355675591535439457310107566392362780925918823981733563524953248326189393974527314560482920595661013382193999737223920675539363491605027215414904250241406696995802748630098311770462198034650543735400987187444356598952461874631097164430873346513287006121816933086595821255795041817886210558058501389662749984607848458121460903153464533989390922248029906275985557062434963937316575721228527866576277807012130596566861241259102254481065585398923618386812035284236908932566768868925875836390187794782229992171632169183331002227364149239487358099548323153205092290783399283139643296268330206260440749147062520870051089138586971283265048405802701328483300956979712008994618515036163418443228344462240832603993734391058956848228611625857195527146922486206931324340078177489314042347672060346621497930553350184423597010252843617094989615099406085181215368458074255360408095385205263370653699733004595194815842188221989561706164843758201609599602188357653272381965336196665437771344600084320047973529966292766685331831934865319440342983366086996893470376925381990192937921049409701400502891911337786243094946184913244064378714733153237192137110535415969646518488614323618648803475923366409194174144206787560052123098087663594716872814619449259912579931235632233266804348151600128824201018016341768211940680435286272341741314613809725427782423801973803306495253494592517450632851939267203168713427076132827471930392571451793985020544270493260802861086233343653800178840308926835234851494732865288345650428134693360335966882154745900882334872101089588651910612853029397352970443289138962505320704436695909647219265851845334861940312554625330178429454331712546377531653424848954332759191665736798260734253090385232817328412804774323950770379741700521345248016172257684368841245077297393441898771712044509627568935014349982418816321302842869601467010396933502765060973104630188606698362743513211917091529504793854122351617832140475627971196157408067833901849056144651801148483705134492741431943246039953498264974768166724950529861927788479839010662087756443901190036257096658079380754788691994860833541400193095589204059308047182605163658991654937656200724411698725170671219590418495313450671566299059258009207684401161442279379237881470716345132836164502204376690776204299324766553540741510849227592758313344502328530707536483204335313533771857408205010196187484972607323465654482730301137014702481916850321929279909778515200862649462598360971726254980291291111926954458727899552045814170155264677754055880900687526383927955094530277509484111376277956996049216917207075842457166520160766595495875062889649902932554187378834339963797665497636374085041355159047297305903798813361560759903305852714908983874431032568753656960128864779891334783606710769356199115537422696027329619462879028040160641432274426382838747013654785041878153240925598819279787663038974684154535567672773817367586744901228771817701983401573440059121393162591869899649031773980312711814999292515319730906039112254625389932511835429553775031145746015709340288226589664651450307457343126909830975611345009748893495399187643762318245803977246493748778161014634743809721641305233650499632191649949398775544980599810203063793043402910102311994448937906614214547714247453859044120458934680014746417745475871356847110651310329485995112171448889613257484898192064364048187539019952998710863627878808069850348558130742382641094938047893664490040576012346856046246904342621818420666152355788238462980578060825750588478789489159812654416926636912011568579342771366056092508620574493058901878326059219925239145309436426508709245284855547570730323078746869463135107755545076567979266154508235697308455344388431029376942467494028004511407059496724858400664794120610459046124820598717942460223068289369186286160862297023316921127387524639292191020424687216984949329161302356575852527587822395370807109723672737065423305404680746301888416714747415096952043688360650493917445847549398669866925534702051213777485516258401286209947098617745910545057332250166153241485823666920359477902477902056694799039979265970024872851701168445865063273933165561424306023277848067020643782321576537319857974210742905708491515164473148990002199646201206428429474846365463620187777658582056556428790485109127610555629018931317734869381679825555428649533847316197192668700045627086538483187651567676958469040752427209051043173425029369781248431595647544390092260212994247054236015068979557942095458800891256005425724825636626672156000952779145004124023316944848999121274479136369406799611474391142183205767111626025793578998841382209184138876592170430252882783574267693257353845661321288153722161443094417730741146394411356516890228146319620195039337438841882813249383139829740180312048511942009027320592472462221202770928515476216065575818938632925722712727544628288217075016333144115360621879347730347703501174275041500822325296318074274263731205461710527598993694337135743577617375749148046024779242930027995602380378087286220503794683195341387252678443274756827222141401528504848855563997220748575529841229338202912722312132730472594547185720819069082660735813163037512793016617137609913468187848364776778778560296936673083826919356024486365134737641782121440169473516829682752142885219722073973633535016013761664014569483645480112055260546359881234395220172914692685531803237461228800815972928150490018648446992264168234785870657040916783634780975692370730856364291899729788440898068394559532939728543810474665650619252592884320388127058020591296843080675853970324367223125449853594643983355819262819235632507487509438499804080351621323615439345131964298431879968962812287823423065769439192493023707003035071515745376602295087563620520200508490020315676459972975016682203166207809229731204675427910744215091498863005923544540598697434715332001036439196197074406170919363422003195468301454551497545058093851684467204630514466307058343252371425363646064863937249591353115417837595870397047228494217402882316920530715378574911078587270755008713982968173069509285093184763456680228777825748947808794237347089146369377864952558539749746715224870062230454882304941957596688260867847888878271365210636395478876045568875934123374143224968521838456368356172708083620960294410387697267396752899515913284858002919904786133536007957552381561437247382199991681049650615780730455175816404485211727954142923650370411146015086018414502887431014678461562514050403779365024015479998485103719927035790879917432842680524472748786727697377602464344475643252359568416275969564168067700124595277491280891975669890026766137995305220808441550590073121705409630684986305423317376927958551445444206310609380039420924127669943585857877114351176983032379409563849812730533580924707729152298934700414376374506066866471073717393588400990999487704795441067837635409293006826975039967961147148547349542870465680037244124898646368122206102305412849873048123502579990264983192431904708932032922612997364800965134588005146191731182567593365718540518509114441003961532112737670948156139537399748734487204386543063777157261124830211828531277778346540555332227640146890912378785280094867589423306486251295939649471159311507702033991436029365285562486715692847494559169380039009154749396704499035654329070273914006353224568121586778535649959413658997386951667331671411393813651422258376946862047197786433821625589685765195238700441834370894998323223658676420967003278559503075658994822159176219315549192656686615231584287244385007977660278361787799886268825874975854805766447113955615384543964976168553945078857383564299640838326570328851072092566725059960388271719041124822258430091679585353866013024286204222226635447291481665181360188074703068324644328938626076721143654581259434235338867913013944181208224774011279651231470428929440189907340496166231228531416815608722138930766218842635135031875603925005014225451555167940190357306554492017463803962997186332710302817418908009108510668309147781824035277918462303964936967297195982943799701376562584917810730749305161181495482717550739517972845671655690324695434021613911387468850437906341520564864563366655855107430991329707055699617831881846512331434404164265422305511800408375454990388962771227625118548439337134440701483827777633634726162740205100547411636679342472155174554191785611228925268243742043156411075980454868501937188656594524521430896442124778116447347477514055513562144872580106873514299996174416594893780060348048023560796653927239787350125776218661743949346977304503467341441098988655621338497302080932236407572809475613769424388755709435612831806582728179265666791618253366142174130233964982706752045518946524035576927597125558618442038768899545567621988105228145061891589583125285838313930016958095554352244781217553306646675635092282158753687153309054358901911092948374410303209349232239797641786780767113387350010495350918191714085405596319202765019750474711517274786569956904615083845913180450378456987036554082306578843101341364155608555753058628732776193983980680768042585959247185277263672968938392796133921597846040613608970031288668852895953843966527416674572022580846537755388558940471903355149906664925332050754106134978598465508241528964414120380794379933184466694501170396564060572523799241065712914268618004182262369636217085781644578835414366261918125234838809156195727248244494399936720946383695753446663002639618562248884279240983221368795877399208196961617864047060070808882465562614858394829384197050947836443902455787801382869659651230630531443152405987275069599320832363606415644551584572425586281344887317935176414309920981802712634955673652711154888613076775115779410692011494111240289627115543171600356393216795356253310161611457653373397209075376466363881087972458230729688465619239205359092846821520054983566910263094677295158754438079541519454344627586189112341717296851422785867935858628836517823148820743495793058177507649048952278216552405984938656457784735787683146268327639509953804640912487997748481538917181840996778474498568287668986797438056772010150968598682127520091123253347105959736453231137689582590781331546033967417289778264079880692630474032654479957706932721098401737394388637392803393285028461418885433135775597889519215513784878053817786055055219825745151512035134184978026136130381037109453137095663014239521574869324309138763504161667971357079356444180251304732948329462744251806214018312919889288537490576746646436030676560002412310489374952900928320993999856299100470323550182253546781763790559308468298515751553565357254351635570989279951865857185068143857909529952601850179291041114595065445291697962212590546510089635518813408113325310872912126308534493545912735405493737495881810081322420223038992355331885765265386935834808123369083558113587368569170007636655495923261937886520797980665132875292685600418701242215661678529424781283782550407708524926678367228794421114341124073611449252422116164561959891052806685101262189124953394009576392434509064813242298988187996787208511041762061355809315469462524606898437574357722204345593850015510592769146483082943082311361449817331759505899274622548946419282756585767017094581865578513817358902011449993988258770343894279615033281811729526145143072906893600436640179262910471731500163361134007613608801319570919049313854527957092569156985372394581584288568434642528391865739839753179866766289579409695099539454604009834866975957233768694136723843485100709588023215832828048336113168075949274169244461944658277208828714360419978808138921057904615882407890352508160612171133085418959674449481135280823141659506868568050305436135540868693794219588750371914583804013772954377293521297189007539906777908707524330564640411455065157828159424030242668528393846052521660149742144654045006999504805291809260372667515667576784153157688905797820536653125208940891856090750220128869488063947559779486781730613717443576401434464566460747576914874507130158379927875257896027575922243706673095242832398009520476598942107876248336799114842443026875549515410909552943963366248937650272945582210162399571802898563666902926300374837143010529414943104945026168557176260665305211229584813559128336758387943775541811027739113373855338496151527860580416978801309809136606586571595148470298958058803997880626070032319091565116334711451620023752290463322317444698240902305875033765015465469004814586062640230796278577642049959694817763613711463904814350907475854543853340911770518768301716872775474357599832294936934680568089149183496099736215559918074724173069157722084291963117806994993066451599388839988968183639512786259653777195266029146335901750487333952630009212695209316572653090552750225576260033860339246532864580985468468812677804784229839245002235819433220491593667810589713023696041968816020254662050406073630024054667634956377257720241876170711462082848871034384594269975609968033788670217921520099779262539227336979009508653604957369617264120661865157344092447972194123074410017968833431565461738725947570809390960214165852287474763504924877960956415625931934707128291811098033773582271239243772325953723932813897660027635497365356872761207169211587907928557286676111978928608678372221527739620084352028246639542922122171523424249970846174952945124349679862742944696644163433553257046857459383982843001283263408223470031044689732115953839577464986283562948438106959491533661827294335176173616746745040888269793016000252305485832532285700835425106589534578661571431209101073222453074038655829920623991777294213344306816037921982723062204633431591919341112701686729492095116373631788115417898262595660211165579382533782145476963545701793685307500605112306221167118787140910507004027309320626207847745099720978119465169953593838501242236397454733398454825292754168451659769169513514612228582608655991198914919012999791333865230709949963075890891104764688292004047569848772870332298136034136679919881718403286231722764260609366438634790282847094761182618207820835544108325688542002052980061041322099930669679566291551322086578632023891723876881331141627358910677618595178810341504571181816979050738993904744777422987950803406119333565546591443836142486089337050697990298726595285140780690101552052637131475458651247690066267225695082734319402783290371196600191547873736686772295102771161837101317142041848949698684778321896070251670395702827776063074922777684314727596029557956727189659975203006640022332488638546367927294691187292291016438245751121897508423541173710426113027859026182177511786227086266450679239914662371647246147043767392099420244779463377208307987911698103138562311593800491959900331064009915166814752919405441990436304823635321073879390562397260606700854237357248207762570741401365124129864897037758469215556377536078266872763707745130159833986527614634281697858912261526545055616159154420587916140791841493856747061148278578678375192696346128428799020646673052232759206728129786982487812229484280488554511311696551845953802859617862461274207875910225053637555872004726675661928195441948243565328186953077129676692228030836392553195141363438875262046476454063328029631847404224239662702677660477170285585730292635230314664903480883576147579751291795858487667563232010155452821823330807659069468089583367188180482460574727722890852588241110858613232024706830229642457085627080536461658598182106677423801466635244914704640113852274660026459754921548673802870003232455493362363074019488528608158864106603055223297075782350953522504341421502962578249331919358726873881776183446137897884638081067247300485345191143546769098234956105843437639924569615764263361395607469459811917020760308849447700649136222934637002504992186900399081789987732220594401318454760881404614752431194176357686814178722341837648258810245089516476183216367197406292961127150893625073684155371298247337137338477639070630057023046879189389530114727908825661874565096188056923257828394745817103586982524693003567662834505715660819843357413132017243586994965351288455522813222731884762947787891512472233877652073770729673812946350949090725925896395234440765235506718180983748662611729918453711390156887730247652687547998300320844524657579137382467660692646431120025152756975264650402519449839533305690506021437160696440270105883737414878100043437608734052025298703347592205285733806871901359341905011087702628251251108244444861355540693638230767503275924429191162712216702409447487692325263227591295088474844832569178117627543005812965552202272405270509317164754916935415707724402952497821355815397677086138611816205586534167186886368192619506958170802506792713844949739304405409688584100245601439813936646194061207136166704317039018972421157138006185617575199812597848651965937736352291318555250189228732146858654312539786575639953478426465599375944154734518572718186720236270034983408763204444486311837109916011886922542007512148969028849135566175772511749539414475684555569984846877864183237060178665441165621196324841792148483298920801495089697015263847603913731591481527531876782502969263875816684136043479675378421888098854760383539300610055161668255990767473040874513033706967260117715615412720993013370435228698569104743061050624421343267203275585646014674936615477888234806792191787746952605022434743704124371191350852952526524686456383419160101849616366328137748432363306564519467539316429633198701899383412246807968922123523923823703593950224733972104866609028535243248609501104692105204179016142433769887035145790212208975939248943544951629024447855558948765860181857631049782229305562563460157119562778192600940893517159610358436542098132887879604388909513790019771171851313265188417940167529275157209965097522373310840425602224942208906090915106217360643576238521188873220891111799920283998091819973095584796535715642995151806688129073037620400562154917114428126359712648007622294812924211572873397155618171806086881658380973289361420581867252784609565675284437226176991354222441103409336800599032894895460487665620160730260199534046946731451128453193116152100088500800699996062441101240034628755274702904139144810559159614254343746440224429094470156536197243808176041354820023375978551770924960722138289898742597549668486348719113865424513748958444255136370617376637588827209123193865340771476470712671408368017356755372699543062406826288999798228026078031586224212953662616447870953298346295443352964368860729310362793869688179713053304541368591720346873994482782107967161855267672381217916583600236285680185159225089919135226461629587986385599000666752004186642570420753181241476579488150609327751063178617786381658761240000049107015029072303964175068994497523317099145240921695054308879311176975606028740630787523052981940762249723418492941565595232823201124196489363961801895800004952286758975040182602161586917367348522974669452003015950827235427132718834890691004455378865045596833212291008451292672496566699740065351407541004460601006328916267281080783012355815926207898499725974287485630983681594770326117946994989403707651922090033747325419377289803746840778022079518457007959235053463388904729029532609382848515832576426106786528865609723652074101475650773148699531630062072887750491002486484588981783870963837109569676068230006342209147685652819083997250926320488037072254160799165052828690333938471412048025611316874293493974747129976427032065619931791722395200214574287555257528359001308053421383129119740017466621157708361278337912806874976387046377772891999092155909268537211648119883286928493576451971949484186715909070636014469853354830263875379612497550028223650800546260942807597842538924827206977680009914845492195531206043344851919860854230970074360390686849188575238803625242202076447484721405691714067480603912942071094136407045555803387125577214505336309171236308991207259301549507584645311275527493689156569267725734772244574771587780948299266183462538070674387792330484734863799697002206480058599206835270328009333047375703067448270353416181411532458163349711377726666902813941982296679471963376692583221363933524458780847999151084503306582974573308100488336008795539726845327101765727131710816134783224879164453551649627648747241963115905480112455676380955694075887098088757187899966503600906488367311645767829945703140409825932202095644192152047885416110019737136557185307083486562465147480922449015815298115787936985068154902777567618221724295338482204591183711786801213772853392462656146585927489296031915390902392789700800684037086841508367132995987614337746671671372580165550364626988344452221537429977570562531339120876501714934429181363002646255524057330459332399096328397747762671866686548211965597754203527496343126851196316897188095231239329789580850832236269208614165164609425826146606239160096882557692110091622619915602692937862740911439602917028585234447317844399129581803383201604460552820574913453294091922154598040722138164705110991285568217023270846903542149511367957381167953399129617389185645122002085807799884908543828465434640678714575110399646130016249957176455869249666812227250564731420447135150719948035129642861764095747253598375900131745934687434592549486553793462044170693442153537399723230703828491207026067890882720338036387375886710925650014895584869706397249677151073040541158868252874975375452843084436397222273870771325430528531828569526228135277467075730241409756133322510919830200816135333449706946708141062628437806237810424791453580552281806100350397569049334414982383687279643544262362786897845038111089590165783278288619232105674891121355039292591154487174497979313652558056677065107697886295505002385344781646195495997606086982829804933071583901290112177496023817431488234270293746243037347311044668156087676792239842267853634342277293787382961346142261668073889104448698193341567237082153151321547797571989816774648287696433640472523341165039634196764013571689695530752528944917620302851444896905347640942583778349934014179433593571642778536358789205159346773155446777869671211172862397575411201889983280981336311383128523380054711234911024337039956930905088993142049630892968302421436979311596353266462304441746571156713283819065905662648577383590806951881438766372858627899521163024951081576191830139220049849281199532815711798240464174710682198606382358576438777004135295942650476454904419383936956845692839244476090108502596296745085711902563860453306890135686390574087123086052514582877692892189525426135458888928618732286617696777440434018137208708434575247817453535786805384966906584857837308697498627978852087819685878396793516831927162179629555875250903796063587228340716644313280495085849331729212282822948520107360072138872166885884239563384972737116463830860603275975171105938859726825806913759946458195571603684224441664169106491351740689029314444910397264630014108518998775060939250921706293952865572288263867366586526028549443456718989196136198708195735143349217142586033791694445527674580609320675397573887689198639529249789612173612095975766910576114631532537473375632627606900098455767591351560773737648742077130514282567777401041832549145555078805412134939879932703168073027599182177195355985650009675337008429846246676042088241653036181430810455357133523329915845686121793818873870117334092116994248123463301359959395588989944268896515662117230719800163302247961441045528005475304148784659765929510560494010524596326898193344371533316993143784943460464345743008505845293151681787458870377585675019733438790030144277643659112776211762485465166886558989142254199410729674791449384603576374387791224462218844270241405572573391476819324557736495121400756808895882951834631615280857559478112583906219208062258609425469464074451497745660068384468172593260472574275713950693970942119640188635343164216321310680105596880419169057075228154881822782475271166980622859332197098876622500879340829475327374068648296256701799461791067068449769650788439006174737481436440337432829739178204456378153541536163679136264162414605029516927185253269596350059357202349068381104072950306855206933715896050574301065142818308756367918760169604771630192473738180567922229646783303304381493105568240869385404033089833779512428403701665941314805253715851486403705320776906108745492815426857072414440965782848213406996622953174609963287353759039740353757230058758295171848888474032465196168565542630775037045976330096050964750872922218615451775873821515151247465208175117848468103851427998592011786513729584482028223118721608108888028202214717445700878098650805988904907784649485714807703626911336913506701469310652292252987892247384260055280169928359077006820315551092146295888627895220577318004089687738345477731848186572077784801792264603202369093989147372989861927614572801047316808161587770381106563244495320002041762126063931304143922018011752130408648101689101370842181963257262374416450996441741766917347415797757087230632115988266010058783656585484250297503465223578051384624123718907118016323384399192108237200588246164956568499331041179519109915880546595273961133084312786107673319026267471829973611532562705243845383241448653822626479820835008714529521289889648760243948128550760464220803706413159388722764527432150502232754344026946694005619576752197751727108297752749949791790062760888750957103558359607329439065505226653607136357084273913043332529898717441928314622049743991381241563271521763020771265561728139900116069118129200944796297386271082913974782435513705718942724656766588532256874429580109242987957109096627032560133805994513682530973726192868951347223808509828976009918963232177766861901000890162177015847130382813047231895857466189231725940614867860522238734858224555649368605350637345584081335932834428476149034794418243099300449240342526228391823169059518558238127982174728724005949472319113804743244617665603675432266560402732569820198568886035278850076995033745524322885121210905918234495744449581518403736517037399075360686951142632748627191549410464674025759287004194160917361057891458496961337589520677273481186518854149116071507025835658233025476254081757235760020687609627477624907723199371885595299957055000774009664770821147595686914861918905906068180411442984099170114788598032990566596993837678150436622401386049799881239158841591074195786464938284029777376097234560409537868854245014595518195530477252713110021327297576725115174600912836538157227821191903713381407462437439461216566540646756841759561393731371060670018872161503786424439045934470208686748043364769428746990050660224223934708794278314028254736842385830245926304959413201837435231282736136112884728745611979345194675544557222201621472584319322983271384573957092154759591017332899867558599767242218664484978998005111005709449050709936292433274618833444739107098672794800856028756670796599571427166695744975881079290620299450682378832500494327464082360835487322260943178932759716112953269296909348231156946264320255585425182999111665305508852956419286792300722235959094088515042140905055110412021319820245698894222514027685325137455959092771531814402817283115231282500393356164151070955580433237519433108492848883387922067312573529992999266049546428462053509284158984536114191189867097846962309406859996877408116979338038376705534105923307875720651255320753610257789667257904893530683734575730894842428567064449833199666277319716283746792696997776118903092941002642006553588251511337754771007475224718818465100223939699171392312212759699832862363159693940350667226598487937074231656974869896575828226741601001119765990073202066057751322616653951921444720660741903488267509230452770927576904158941357154747697731337853076264143728358980001734176940523171267530363314956936828736778363253997623254620419384274234135235003695409498508185968769672177878845769688769978528040267102736695259046003086672122304507560560647796052191734073311831790971770437862495364304821741005110589160483259897857180613598764900626797727521173468900564839975271979106695578083876541210305713438253329253482985251334856522987053209435780533778132250546372442879966211660539693383010537988694625389786178670518951410270407913077246818679768459710728454828376939494875037871536565480764619958045077275161835426447328051838397737679063455306981134656194771885777239208616915707523621999774254862565656148558873791881943001493795387837677192100779881189300298666730263189232272774643546112893547257931231469813500944696224137712790362968441731836676845825321233205302142461477899708690728778457298421176379430299037029827243369531467692447376125360666436876050555822239407090493566394153185916393009196237970977196565729664280661824033210739702069973737767886086869289508221006149728887478666250877921197736567652956414835313279345019616845703677991229717546877503904833184734244726056640349338860432937051819996633877290193940739355926218967009060452627647085397574043033471024922825152946106258177255012417255009138111882629251577304889244604776546783264992650845608703278178619122658814442654468730782669790285773495441568230564638680202895648900937677219532734685665956909134861326866209456419394977186302512660015390130053465649283495801831617870455146525602449315219551661898898623758046354928770157599212652753363165098385847621322661356585920278559906304174072337228508837582618321163297374292196346702883269430335216513702395410238311753698228584349525947088539130415745126999343636614155044670402100930892760744502893621708385871698488705624107461071173262975355979517612807240484830630732010866691923818041492420756274570986848788604358608893139726112300375688564031944020751400327610079498016481082762752172446709020494581013904698495051909282399656241027739921381329830196093528775110364213804391740185145105982834231945607971400503671782032680576526420273526177604177554874436438801315358984140377473141303230864984509581146701040122005587861776567803704372823375611750973425024283529289299193160389709011243233632211651099116843747041836967821794388056469843251598354255009769654789608831457207127920907108606354582799044005186227464764543771513303317429585449225651998284121613182029128138925216990802263714975492583480091341311196622000925101108997957938373463279072046678075675933810365063919835617979749208383057092485249674091911556459839966981891135076216202348048614890504183349570321375127023881687343332371227456696776653682625321022228700244980503063153544484953119611657178045381592625645923067372341620220852909915427593116310933914721221878789545019120167283393073841723696329025168286077352300266264144405416696918694881511241727545242168554683860549860278100178368251355041446351739402622810567160463194890444462026409298773410515764241000802672683164555949931968343159835594127655268249957827811617343963237321149325692964452094826797790087556904498783237870518014029060049677068056406697200188128014478431608918454932394412744115574150373953028973959428227911025827270475036251137512712349000117395271484345908709863108294589769457750984968974582339150222806672453795218537850393150859356169009351965622909914710504957824734150667776499856257265556243558850597754099127233851644078431690586261290880855939173768043515906199859949602749131420697022829391307310552199604191531888129613695651530603719996472639835935334143733933298434040967820944230685862754066934707419574394491395234142975259031203900782092252088863874783190251288604647319155262632719789381634632921958655307254991377797547797610071088154990195833056829463310701350971082483579067873224503748924707095486838928613191400015796705695998178401145986235645558557918210211315080895462365650187445885837702808638185137633132875215954594694451984446560543425194940389374911165347022122110105505533645331230871179089724157985208837929659926663628234046630906810791789379105427322731132292046036892862529540911658360688448205963398833099910938628909794314057425658930392750850268250562662255256119761520003740009125052489419760990797446574208463102309252257672307504455024097600210894894477461095864363887642491751590081186979263531667464796164357266120967128854307273497058777939192424519553854588741994912961303455857699193353028742472901363485334864555966205468886230504782689879992392387135972446229612496490701267736841107593980110225317434478743719084292814952086563271114859336726869119931372797733707038468269131718295795694065954709100883835465713699853073200872948954508726911725506917747526835409320879480760253618427928853172033772639785274032778020387816322518072740710408254716923030364844252816187205823684742119251621763784312688274556467471307443028251334676476603851397773144642512022864253595443155664157095001963159059778045039667673445499763271924834569356591997538603779523790362672555731136114309315760730696083073325549280378488336634127265692223083617331430761412926481738935391158019773689621268983690694370139099326348805909893618787189513547456530640339450406431018475683681217069288698742293776937885302217813744085884769697659489453465514269997581527369244594214989253049447050132828179505005140838933038072288795661600823001360294111372662727540643385695536345272633567351847480004200063031029372947208983035241248849350599420789780518509873112917082153792681986873816532055597752790603879676357472672898167987494092757685516665540912251170678340938055098692417955731148949743790419695033884026010229066612112706096087777259966156247975460596180651743234691604192392021091765044463061630851850077147795482151447611484852847524385906993481593454285049688300128296108802285768907924458368508036798121843965799283501626100840795136277315725177701757117449015574859621767478769250215595856157703353027065382776704418253878736924632310297533226594199442898058535010030335267198478953355105134207064784988913964409698606831328443104109328996469997226966587946041588612517179329607450074365106500554288742506130676436928965092072681261451730612352184691573316857869208657055483244179899921470687520380534959737659044331655998535414649638078365300465048838416759239723560065499580835906153855238289131353778325513485377412649795802087612149708769072651691943224794847687543772962418415341007766667209729887021481072924412715625062313822240552420180371197922647364779065369140529360281293045902131537172318544971652131187887892159180074545133483320284659120928834559883673901860565424592152847657708655760458803017866102027390357726552348998501628929609136037853713369425984194828664256029334411787031629205039010678190927893426179543193858722559441558254679953606291481199840092060771604093142779120869792920859517362586890931832018126796708996527735347617280231448672231863409346693898837627482477440201769061026392019378653477275834570984294161940820534615728235438281035902008690106378826426403044005664174277322225026030688935377589838980139233784391815456908961047011115460655733731886339452533989386034189885538403533024816822246492754838148372904236449231289210652598984633246873911617756595499154332958709898054832979440277999148083470363511502086841426708542025386243223147835982704291501607140040286080177851452840949653556538431363157984622909670467168494452360734126795627675138901320194727452210979359480996162869360616731535725959366985471427207430878334352426017665272720991498815861297972938669928719263461874076858473132786655869945090767902864637678220339995570360801936350072529833656119166510038870513670352602125762145500775950159125786817993718290156648782098628694119323609539135452325315207090228214684625285096027199673807458000517394897221889348019225506430470206003287437189353661492018309247219882147259886698941626087189902276058234989009867153347635296312109477860437602023366173428047745568009900129943867121122255653263733340906601643790569853756959252883576612488609679113116703210090706490216425270415530176693627280740566830762079980304365753183435207736327704549063906602749963452243652715881545687166726495673899760255583803261662657366175912581003990113451000050141792261630293714965771433842687378361201665082297939209960626155734940682727763322075698947122698588904095878509491179006272737635391047695768146469978362792474925842789399669086249231678427150530415712427669566717035088632848102297095736878184885123127813598790298662299024140314748013988093747033724299483524182756777255094836424214473251303531261822171741905991985057267420380744188455111344372560390699126718071919380746376409726696659302333115411384330861175810644185922468748337523113621099433501147226725910575471223448090255651284878106216488103890912045414928846404028941992798282430796315055228871860712114251169095135180492035085954337557214604362118047980292978822216286150145282223650643526187025988195003280857358084882385376941317680583287264599381920313553068511734338046435474831302507612326633263746975287539263887246053442936484342499802698431387039610332991210022360379584896862722782959171569019839542154376612886772919569989133555560352464464405053586918064493288336733916841316781028871832930501559607349786087494961865946897669639446677542459625890205398365534444808804545994111368706898185929596156375105448768059877116632702049748429849748553634578235129389271906883658339072596518974381633640339262377996546113795230132696983054215058074777273813213201785209003662981324684954887564074535989866192015126023084149852056158277506390133051293473494773262357455793017386221701504594619513972459147036275422511995212965041543157767296695686681418895373133772315206206440632193003109805806451896403096256872987842059277717672797751024205059920987657353775275265996888329641113305002953925956658358311989002786381829295357688407160496527292622167849365069712528826468558748326863494340696435767705222376699767975736760310207706874300699345390953786851441320168141483498665972348262712660297721911210840786300755454404461138741270044700119765606342793694874013117735446362779320738505830292370208014244157430432747954443327034600475611570059053060028222970915133130628344728267995482321167912715145549134553580585183303727874899140859507523124830228962102683295885520054860167564688058751051610223577650538650312002877011291443628125087645638362148156894479875905401378890279800873439972852018166237601154998980599622894967395586047805229504319513939878338393861918044497474445050807448492014014283393804127726512482578707713365852926074170767645367600517690428820832537660007284267207869716013230605878999944841809503161971066142399799934285883007695527798409724362920110319559506521647298568548904137109133265108905154060241149107267214435304921558077620411450956184443370114513696342161223697173859086576493626080511784166677580186940016950235271188892566201336519355879295446576856460438298608649940991493433684442344406605170914155478127154383914019218260833439255549791642552319338749217341437737274336288029635854643929429978490708846945221501326104671761016346851622408623422410479688742743335633341654936791751210754967698673650306470854493103010647292508063253758233055781313736125613764733505595172874884355537885972437457825832034914539653021176679450380301964526823821883517506969306409512053517876128070657866560103435983598871333364653183651371551080804593886552590818848129433193250569364667424564131611805893649381559142114044251101950142959695140059953888797235490860294856661574999007313944441961461366162076417510361026559031958995400377712257449235309548870162777921716772191726258027156463248989672532383698554026722293502425025431237230276033228063960015633718042483038847075025089471989259315650070910409164179285071728587783115483433936765055482612048015592117709030673657333499067588412767905883975661324550875505536940790810491289211634992009525306454294868239293938574016095940719392166725499769707434746410839528920202530008671086378742448568331187670042582844065277561720668763558768247817085236549685647940793484925006949917538175385243274991887254753145036026200931338324965170299861827341069411555259386549329813867301163173930915768741569753902942899153663009773730975240705128662250879179136577223515633010597034985294673233320011289989229111457345311099419825236168796817411099847916005249165008997612497784875033025520541167589858073480236525373821575688865146689632681464761128819215939140503965284420148859691760426038405521789025001688678985414022346450311393331824094614787718032450804066915434164373090908330963269695449403595036659909526462206572587471723410513315177863204806166650287470016318519082796586662339686832545669126462084206641546193071568360783444083080241241628096678525958177053079763300066306544046718980339929588407633347931260392226467712668420125871920996824834548113926542004453443461361170489223650248162819751725013048586740605785300346987908756898359797207202768303531452857101739355214413173482303194554837978439990800476591620149793240115645062889885087518745860451653477443813828055394378292302877308690855018855941888496241534762998048477283212156171022751545399882989614311790188189364352622580740122997951544616110017468107007265917897900510332979579764520331203679979554833700532149152974767337170484052941808105775857116268789544732452349188134845061182167173245073560629511033031839276951498965464549989929922149709904842748606255778269828042932254803161713491781088702936074431502108081187210860064215278228835341090715646343930046300584579716847334000837106095335260366569818209894164998032839838341802385110479779393831510432301668747196864415064405179799655578044791997466501796597013081699225463468934778807627040665731876674333801478347728884978640887185501491345853597293968871165326876130638373736207730892629070713948501201955980061644680014279621519908385284445360183702256480212329815627606518486548767359578032919000862071865459385650618371567051092251515020087858186494785913237676979250436507315627790088852003372159126791424253464848633741409769062193116775998901037665692183210803569278017117611158768920831190571435910706104970879653097203532037687915720717624689583510984232644577053530493044199979374253221110277901269787713632743547241044389335928495755286354437234003289616010211158315981991969045514313393051179863121182237084515643754837323682222458101204922735614999315912680695535815688731585765102914244982737111262379376286823462824848186013153408164360944653700308370148907013654381755124020718494442699205271120365455570096521378586465797028513399406385421341264505692106624205217398852110890095649138458244194699124799991401647220826006747098441981909918254291764084297399577616411174600839380194924394852860135245994119717872481551670599948480315075041617845966005387375190786619379792749466500500197560280706033215658617874755530176051460607476642251764092857648675587741526386356658437722869570996927661876251152515766768287972881493490534859284136260729101726665173152848900614798910838865395944297826124316219723196042152315998577237270129484838391673245996858324020477769784927321069351754814785664655296546647622458200997225650072856084453891260209051637264477953580886120087776087057171889997803007606147729300873628986057931604326055440994828440781702490531532609012632228599426065601704986432587188911073298285927125837001265774847368819493062759197158816218419451839115299886876806272315855540948074006839265095668791719146970547443664512645725697245107871744702360484611245722618031446468849598446892805955640431688884477809273701075634257901613762033518829502439001460209068944585308707203152895616103723534233394930012203769954805660690024797057311486176374105420042401497623641789730661905369448739731660282231583854567259315688190768904712324069212921257499742918971073087745881247996703434637970355572653371141769141236625505629602020148346280310554477356884850058496205927776039930132845206423555323590393163473428562449095446649117881593057387880778390751607277036152353372791921483856247083127313418146491593683846284126687653639035447222910422902084336904045062172067453377147884513282246579105350464785813417152302242311307362721432261124187531085938463680038268504961433713199114667651193512246092045855261974353662252520384605025917783063286148718407985574238822093238566373863030428643316015492487865580610151002012192994996089809612287247645593139506323191668591767672487722452330488372230785103378668581316654476741343294378310434508187113500514067219760730031191336073717984764764932556833746572496567820185616054010728007205969904046700934193823208975552832732589968872201139076612887137170775243128751594218310093100532627777795630647279177918206374563724397525532011685073951741333795653737877273250240484967944385264485420452673457807955764888279277629373650790820328346110485749829163879661077174701640193540646544169301446535519100641355911604731140178326580387306591020559887694069384240402471810072024274410676888990384384554325685845089890060078038289966520548770730151819012107130136836590938715868476001251560077627524390950726961108851304201563625730899940356045790790684470977587217930783096696863530563603271175500406703319412857245196015962272457031457063720434200451761124168777691904876616988466325182860464507090088340342488392379726311651349699423542022786273376766590147175154204598355660172074521173798467917575621689010404331964712343306019824954235535438696286005370067732298655043409116696813381995651845962377979225822428087514717201234644425332334907892731102044756131441024712794885304677156417143173459301156069696129386892462980623848783220070086591960356765240061016085946303665121117853434690193425510391988598312325538159039925570634650874818481999501064676524515843483499585576148730807286470253377012689036320338421916378992574457906960711112661245318618069617154107666151294786895288235943885190310126863715249546368901423104520882908452503754089943359129078636166907134007155519850214553051571412230556088358308650435757465718158459668900685114846997950430675690714107175174972538428306386127957765824163312537844966594707105958333117417367530902978804867194899516829613722950782440322401955467778648701161359827110630088114333089800939632590703639900373761166577022085721747186892098285979788746432104512192629614373170073235863284946768509743696435004818310908589600895213970430953195750187968485853338780826964332651613900821873418482809694891086369169214598411847663132494843666913025668871974888017969657302629760618937876276482223885836884299161700094089669882933501916131260971386969254442812017978718007974420801086683625560976956854769244618002076027483823956099830239575426600790385121491037150232818135376277885220719354533079052233215207058242419806839475095070852696569364639251333570198248194711196372849907403231259795291042737416731085678231301755952925595484794985380266720503760778201855213287800341228988431296615858674614927986647209667395742306928553857688109869444962324596318431867963216937873010202849647888267688023928103849407110426897574710772591279319998551617627607934899305951549579305324558805512828400455977604409833457930034525099304321057948411419051059679134307594852877549953845494185220350954324103632129044328121340203785813066794259624642847844780452014432800546364469237181059212504167412198711767650335514421291649488183517242566192507366286964166998578628323885161406100149994732724929500807544375318126040496805921752247321121514982453765125144441858969911366867910396173085654393424962842896125059220239984366423669325428322425422679939534792622829320240586050546467387526722347150994899164443001113682995430877912574619378703609252104750971299821836435926090241943500079414235262163382497470976942072749319236858720259063562663658181946825822570726671517156866850755038713215415680073644465927267846911610024644611038486486244972570031223769490210469151605669692899550300798223406675111402969406535783058690126498631046614632355449232629028985405972798649288019041869951259829077936221148716985242502908512701309737885185598435744779633328492280658335918186281120700356046470254904739382460338381517621911563481284147535789781908093336413140106144270510280944659870578675908236615894475658775337412387878067374696360241495841450260467928362451282350082234879159269941630599455763172082831043987269954567090943103285773232145551483811985753371315151483519593682714677754880310174847233300382804442079696973469874685211753734649688840691933628423053630236647080923871994224131690767309010326068430936582796383257200557462774307725132429774509218740783103744630856967046951047116120320814045067897784079711743673748689112418127496802119600002091136541643220429841170925505084670507795579960924949015791936062802202517965226245793541989365112790067454219446801173382578595630447112309230839768931529886279082022697225562902707005149375105507074601632615256672281854755233400207860164596380040861879544071039578498770758360161437381244724908201479232262536589232733840931008240323129770279117594234932378756845878192829269517569020253013034150944763179372865578258502548585311142536507363616822190275616610818483384730115190459236067957141218303430864067334976295527439141295631065164235001009394503131205891442213985929772750323640230137303203878413534907868823397544088006442569826548510746495492137150808669520397949543322461095465956829022763710791362999803338931953425114133038011296912199591442780247740337009248987363506151199462733103287020757898453970513254045067170854525777671472325598226167010876216743076982724214408145950516842964497375508412675107824190282861525934123085256881304697068913703120589845184904376033591463617243368065910435687486817481189073017581897205110498191737535561546799990573986555323875313504471767738400842450251050047770112875315867913096157152660791918495421076690574504144997635720463211338409408734143483631322874892088379872315502595852671816944336654644832933027914571191766902243547400637557404700998472322002625823301971946666874360766051902295511201710294772162724908841360779351336546733024453755291054918935108811090052096525165948584959227417256248025094417425676507681600458472308050150461940256404114090477625091115162212990217063379851939554908141109597549012050275481710183058618296362000013330558611164317037181803699165812679261954986739687801895690672178320311772235981511500700781574154900068189996207961698055112571037129932025373788052418483233922987351058479910055978345735929050421512053691453221373597904322870541672649264681798294535122155206119138006937317000992876724434347060152813641861002021416799293642557624581827178188697065183142242251556856305418141881680975455471776965713648800326477404089946504842832392545382804970479045705891389994003193844634097565531168227416205991360908888207488843058538103745934516822017087934315009329919228517903610693764264686537252651813193069570212258399290669433805742194329454444237517531510774787898903943937116614719096920413935429401906472218314061072976233804210483691389312802801601990898406876222545425332525912468868795219555368159147683847447086923248538511511653243103884075432920702144288695030983021237285179442393481394245572837491582944977168040261082606134683720323234585729816427148428923521512868579144208924982200751092901544940653124654112918220264318985700160588639702071491254918678723178718488462329968357303923208963540437293287869268581069982588159271370540866471993096979731499706022297533927669397751894533485758315905956129800711189437421774271210468504283989205997681128041713704243261331555474088633405153818006201512637301059653575431908110472914244979027469881655683625459516433649731484925559532714905546143255977638917913325468988502850830425524902569017577347847129290919220190589991266237405772932352108780182835198488843195317905945182135696865987031234021312418201667378440788115566653801298249648816830924670612962106217832266945370127374693663044727703222906590919270619914537825113434666506183294567805458351781603011926301218864360784962889436494309906062424067220460426248140681919819555098032891497537436523548920604412554047980914923931867972036502970883472876733530257935336649016732811702878672820803678818002414562770453415332997301614281230160850558423924265537797695830330942055212750297174645645177965621462918092618008766389633599351726728957740226678647443775650727007034971834986633224376169987087356391264774183961890301745157936715833055779658736835744810064488589998694019899723202486695381998789707154246588571867060060903288103141554025293558635639602319425539464162167231602400526454733908178623826032232480573865022163286048647624141165123965622541548061913465289437484011899300687197325246019707115957961294260858526667415446217469429719744083195708433173597034976233445602524683276382483406458052415472496148447470756011753110558296712732702481853294953003866108215944810095476698680190084114388098735918565639054127641247583040393794166630123997551846165878961079493696975785219241805337959610351620207999735465497910822562093960254728412466798128955583544347597507283727798541378245811029846097058335597780458810673940972416904393799241068732294113111363315219609142201725764066935785584284801329172245948791558761965197533881525650876120497803557799418240611960407809592804712255132395055854252394678959179645863974371904550471219774703557149163577008854108150617936155567844018822027894472240399704379589726239174764119932932251766988606748355281959835241215897519404026538942547784002324830345437733245763161929335548889816533497504392360119719356046189559438612364648763874663623881795664279915658089563160450745794558217861161568307737170825752916165027738797436087270809132323211785453478663215283338717516340898839164630683953622844114420252759856406260078735901345159659165050382918831863855122923219676724688956220440039111736653601002764963527085797842778629095139388195472254321239695848618630047832254426863606602862672663801131076055897785205176811906745175948536662029582304765596303772478917921060059232662092406994524539407762375850945591951946560429452105794408849801950200357820908898825739077344032765722788658766691770342777473680911601167867477574014224819238713997322852485674396245169966191007911510615395554989634573236739657209053081154488906647671778627793744520179191487071011230403111464288605963957744468650041918705940942322182584444713327002709346337359942803368823593723284071069183947217477480463608293527059089037304078615681802375133834016012499871484474916849369946381242792249335853111650393820153028886497325252469239551868531919746270544234859349292796770077935650483558806538582119265261289938419969282539612386990697861368539040348521046925634197727328773288858971067136551709551285904616628918833573551425455737130309004429357608290646183695052883287638834400326674013098863758472079717234941701156751568282789111749115079694746992987783065271039987791787844598783359688563604990731293715608324794207363304788937699174203027779018384902532380133444398142868564808126300700187073505110640102438976105446785568287299547354804874642231342126110217138442900801503872300584959941945450656226867691364115665246259167240662687556478176773209736989963144719282862458620419295481869321339293595866949068000093377425696761110145839564086427690883994962062884686460897465857661546640859014827222468663294142613370872940153214839267109642248987030177284794646354828144904403705665648106021571171955230649399581100808201956461211970291281834905146016754504513796090857002238372697375975128707934502046711650208082710024679952967286757595131322108934962870533095246944154078422938280580510089947416476225722888614680336449613787690354248549418087087087603732201447203543455972337860717802320002531373015056961415472090956735224500812361790172112077834304663629185986786594062204287857492939222271529885754989304158427254118536655053099386567629857116468624228659933622169588017366731361700058717754393492092418170560088363237589069174849826073571181878537514323748056085198114805750138945243222422060005074433157974227003498417977430500909654174766891618677787018531747009906201568031065359377596725884015801952564091100685863611148849894074664128228720354459490917831334515847210313240776988773976486205884902641002375817945348119802294462291379265224952420915709961337659385278227042639722699842452507915706701405497625367416474051668830170794933973699440054719754975471843607832551818118944590843773562748171059803826206139283855970451020822180170912395739643295587357155446909827649145274344037159321237882570913384357896429223441148894639698809337631520317135108267218586011701564111982004490562344436601218719495172078268745624039385022757514420269462222778133925138720745692371106809086433993523389585179297408297285138947446743128185352402395224604889372938197682368135153898520352527222389892192214196451824598121832462545139012896324729881470430860967909962686181484202405086842869199880217626069022437726428137037093193510999783202994037024364591311571278954669853858202552577268886169280773914740509921910122858131600396044818029532463334295429252853493283424520212489357135276769296316908491052951250984577050798438200483544912720462816264903096658189646084068010552492229921820105836139357616108576935354559066706505306871081488668195755234349573350600372172057429852624102375695846874276859390452588420456336778700522294633506986222086521982571042114098761800121565182987976398553286749109785488934587485654176376875386202624775066774273873750043841618816952223090200030767739144424491579607179220054425651027541734572924163141044563511039599134000813445692859660384794902440644851545514936590174569423964262219820851557159702053776958595509600178082399276440803381710629355142613522628675764644654026911930496508252788074522644017615264077266112658451888596188508461609154666302313911124937189669620868635694939859686535716831505873240104384292706477277281559289259423719034121031874171791220982534641343464073748205897581109121234454690759436416597858410292743347821312986801426917689008008206966005684468166817444569953316673419255929271740845801124909547093595298236796908277264710667569844773859383179934294889045840067259839976367190428775628830292738795573559664664376510637003390952919739964811420843437024853879494094384502175613445345561164200590647137187103315412346943195670394564851923099030932693499826153823372163197748257608425492069857811749845190731433645423230424654322821758065700637736910024602301038902674320022272237169788520360059542287102298562671530191839289804949305215630659415848473181010608516370943496609638786689010583920762296063109389456304591851678674385363077375110597819230510742363832806296107983749277929669783803934810333699101651385442815304203092192127134584630095595747973274596139357518408172762109735337954247635090243965565868846966480312316048534442784801390384342438022829887594913670624766691311479161735873179915449422877879521114453821797958794640448637474857848766188455749328644464612872103202208648404376413324737021012477727987723874616628450694243517242518351171800678514377069310003531787995009376587666710692614369619414984996955757657403291085801291987718372758050430772819064163873173290206159169192747744454647877931851969521546334292321239767189650273577388009767363429061130531185456084063686589202446838936079791260328568330352449157987763980796453397428318123828406278625729092147272925031842901720996701528034551281882507391288456779944098410465354041964758306148175267255697408813650533769228834821067730067633558700781655380760224923286679649108385848704176818397840001496011612197215405373090077311433985625669219388897972460088955346281311693251587403079912962021772928415811567093767455048299911664910552798888385477645632925895746363867426114295102816922812784479676029155094617025872056121762153648690468407070441436295251883183205892287721184516689930421166053260007179274661040983012887024860713467068300001280866255752643388622762668068383854392244163205167232774466911131065814804927643270402184650963145819078858519745890507357344588725091576773151667874341324230130195288416053703175948039605673402394314382945977502320008116313213006275208610528852198998497638134063805160395892989988950536134242948539473978788300321867292750433131969994302726427813931650812090343770322728148325062912190814447635682098025504913470098396585044257230264313107934843854397665380604166554610202151424392550479241949090232478257443997585728490874407153448314994997848268915930810356499969333712640187740286329751734521111613316255892084875102829404727832902728730657753366333175548821278961441504068066584732746852988825228206819037608663045267346101902889661149913854509684460087612521373790760713074907560125755220240427279522666647044761642033700259252767182851530436370305453244315321130410591724148114882569409288262017601256669343470406420695550327701473351632757003143644634273709087907484714740578619534531092564549955542004045021657161152936080001050582850201270339875108141006345573573709804799065283093341598627964493024995114394637709993299825085540506879213173386465782278072902553465422366165585702439997633088011313785609381304218404342272183991838724248022270135615478382937275475337630391984818463788766171184158012850313695480110867176959141545898903107545328402879624606643537220276036677265159294075053425389357566888598979582506245073324393298153824329659764774541277750039888078856357874115565862805021282313022330613677256456070816987160185917025547248343547859512595159353212825015990001613986892169774327094726426494574614403318368136021708419507899986091238567089257543919464953049142368430044736038986688997056256481122599327995559092395177585473876696391029451633572717891345059152855735233336578115120569916522842948286564873637284409142170655291846254487992132317451006423516642052540237326619528784924570382860897616501289417328587771856719832617387855865727218501653060753037839507279685451910610476628465157022768307145970129263367841838304343641840108264650996358576266455851088675864758430364564945771665001633859151360256614201043635361245251934099324570656128783687390523637815812586847225954455619020980723703019079737529009180757417162574054901617648588549423880930450583075349480349476938330218659628732823426711620276305071958020730627243635791413966882719083704771570078683411208806014784258733961101167679179964468745888146200279091171706418282982648583363763070531926474143747346073896941040526010506728140979706756701359534555768086753078366931981906320433504316061323696485526154353921924946617834262438224861315587345466801101694362960075306615598764222003878017304266355923298607222477555343245216243251761729751322552648122576979502394794487586336506192863785887799101002232656912494647311002015564854524235233649210948928492460692129498647952737097350508991525241126827570083551697899532579690824940606590303015376494330169948326984727873453392831665415439058701355996443496307465894745608967312483501819522873884290612508532692901874870198590846613620693558562609604925138621995779152201389079775650959048341593392066393420964810572617444796091081457750294245504966113628867983411814859033816659025582117797157166736319816713952567322404772205104375769132418657645112398618874314131206024962207676252416969726994316077108842959239366356070763563452071955255050267612780531530197786297821811193359952254996421946697214228317110815654062133995891778289650584267512539099019810591057791643437127587515282369936355833223587567453348143694612929419941546357039988639308763573336847334788238550647474279329331257142046803001153649071449129170042764707765886541700609257986798940194319383698569314380902178435795141674030091709703448589585657205139998326308879108032580375313658653277442917158084637318189347499073053770542003300252456056494794019290580000911269884225763866416876474934569845842105265799492197423117679535420213634668334282076862567626248264977823659437300020472869880194120443355484603312672199531267190618982248862920373370084684766002287032905474429330913904805024920647271532416087473173884027713794540105414260801565544549146441805100989790463767963886204853032826080926021924331860893112748046168740982051617979773264667964680247077238819582588469843642707297166794551397240688153853566132459083175163472587162681002485340340404338229402449512538974055046893370799578866982648168264140713851555914870715804301628249753031615243670730005231853013606615393756905624297830125508932863026685832511397679816155899258681930676604372126186181812669291139453384739067967848811234979989042781213820941029851571090435480879848066310016091767640049749036568898320301804593557391525995603597533006750813162105176843436227082908172569347672146074403552201176121244145563593318120899323840376775952902842069935674364776312250354496062153578930943011500524760849762118944032716312057546795385361314389552574324504774984239939878744518932418697904873926685413207418409929857591313101344138906229288015071853080509764139920296772381094377704831338033039395719130176251303677478299153095691253739636359347368041263085938582844804599937834657821631319006054255318169252175345173291531205709580981536218967255089229624835630144688599780213144925378108770606316176852533191602493309330961239344373415170189238245283243332817667229591975548441989871672478385348727437138973267739333487255283249885340657689036981497357348942927160542671860598561515583942060996064956606648211893154964897639127752740901624771432465550909236832398198342443819273264399539250344474558202798846054357784817666943381509671552407145930625912015963003423088485813581168106589828303636442529674126381702140219953646396699475763100534454481945084883906575408354234054131385385493268012115453773455667348782485959241878999895505118074480059268770091853135917171298969878185819058667421457313798044328749734004510382465127305290290507540855791389502417779174014502632368637109647253608075513435543243249400418298771106876667796151816761729793859124849035429176998900747568998384124628437852541340319931866070431196046913284254059063297954805926941503377350467505266953988280568981941797954357521901851092049711131384395027988478863663004912370788317060249530997687999361477578442727218846890804240768315739546295872631530480790369935186111158549989944181786460644505268828939374644241588731488596887450636013225785658611970354073372490581679131929258716271852123192868354905643662025387055879850833324971104557423472599226428884900155459246974774110073463468070913133975888874067299708558605933975291975880768291620145510817456628441909785794597471261274819719391304541354888743887767404235907015736002632042670279870639775256628608106395536723008828977649946317060477481184950611697722447170590394298222715527900010290873465639339833785161394250053805070605489858423474046848305059742283385510884627865245717805394840757291083767378119740659086632980955596079806808562701262417316028150690126184498347498026818573066242654045729641774268270713748952772605445753632237895448165199080917602186104061512424957646974746989848689464360279348828816610287825372579383546386075905079573059223453012710686837324481353395584380781430589270805860755329115484303720089008547872075767796765101418004472527874005959641747788118099497626891100651757138872763973062722372458418908574462372789149601725571169999947633644220019039243489502279993681845046196745994772271520166255033735332399198530649147876195876358300308422228194082245085976783472681129813734715174353057298942764257901957499722857478864130330445254946128535954821519687156032581550071436097772879252540353377133749819088393032080940402990119615339799645492672790321436892005273550687125572084999927989204359870700966958464278713474270577095797085254133507358660259035983058258066214093691573826913597966276136800026181294778686833246607537167003815305244139144568142894857647306608048616191971378958152827058867254812655909560305399895254171239138325080287117640751677353598331741179486210055919544672370774901036094662006678612537119106465255977830960948986269310698175859731910815286635761631081382288340524835701288025938657768338633114177977347719117301031852707317083881161675914427795970252241974359044091786946386798059507368745634705484369227017639324818394337299206216488613671575824999270487791862370028539397023782464589469477063861335387217451926693709698198894399048410242324747934668173114447256313163649650343837195485185775509385353814376524724688598869951064074143588912720046141058634835346806644738064264810394493945064482066565578717274336560856031147528750179708991202831886620230251277911110840354125986224973506877499087888280298740042557996417965420958370252462774309467635250062943548018219563716470807164513104718593041032777745169687255469839988104564901430823900352871489856292597967317562036467138343698251045838597308867768792259900632392327043960785360682546161677530894058234748678178307496239147598224141273979351605425092187895522796006317999920947884438553367748800716944997203120423382898398069925675856538519391154307996810212511610728445392241472314846203010137608091421940883286219175617565892431187744867317524328030871462072937106917573778285395746532933202555263287735714324070438915735893638706763730134147509190890135778291936557471544818219823474068060311808763422448886355698808692805523164368084730026816160282006997813298816371631019707358725681583165948822142913375635559847767676079444340958917360659505104690350446070638718849021991879977168463302913798842954630582959231862359824573420880802670085663266670078052358626756949303209345590515885405682358550149704954169527298980284345130723950396451916402258522793389598087953533712237822546603453518732763284282568702971908904402811385767070006755272130993454453762512845847612521093405227289112314097823908844680812310908146938614733428932095995655527438691544181810699226841509223263662299003582552598060380221411266596527543676672690879123752386018942036193729411422967731295947344869392249297147460700284414094363468544871636069611780112228080692699652461044748120722382484826862081727658041380264627504487163684071266619809453558999817134026789287149552581561257217690000162036903553949501377147682033149032488149559109861648461426130295953282426635806214494201752925065997234644528126711166721753211695298830745762870489739671447342600207746780950864337200328032623175705769320005873338700727907780359617524406801406993420568408074889154367140826054711055133609472422338330209481781507028537798054491289751960512812258509485428143896349466211302171078817744599714362255885490745794881319772885101175014209385387438492831723099840143287826293386825300095318392071804647691196527990215369715077510725686986510832808757800163162887267771418553615686024684473800401947397668834640861148679110848037872325627020599451240859816586261915032238828929538252602744990485031982333389344817759247251500010864373468764582101222756897507114873151417918349866782231451607074545466372128216957403794185916930033811630225332265410258139637463491279230652088033206571894554177688106912585395844909141887543752235155912273808014695771471525658729776156061420014875058816309201803676860069713237170542289035943194262276248165182377157003993630519189928407932643890616587439076639169987010771213497102638386447167191125818234754524083750427415524951057636403013315794319371078579734506327288583714756879186385203625129058577079268498415315701110640958569642870642564146574045773927075509191586552939199504186114431633806116420780396425733938473510038168524612290017283694684793624211821777665904592764365950981266488165534085357227649263393935726736499942059701182821457116977290864545809612767451520638218744381258905061285472512134420686329702966869265605961817238754357550494644468482164442265362091634066105471953199031771142031631712286024520839696470496884050529471539948432187554721240341588223859898609026565627198353351265930576010554963659362424311612272515186268706638434834058909133433375458008549099426113421717465556773954495353366028853685277741547974439091985395049001170995933270218707186914295060043304281575652847363908889925847865479026182176859506689740893567964504315872479199924912103779745321538284497879104794804072662569618584804633590003999051606682563463709424477742605449132236731306261795283006784402145029175361215374161754978914101434000029081589360007131635171136178181466285645895372724415802015597378331417936798128665622227692946012788352685505040537335722895384150126709467669147006980284808486226135102593820118455378175962973139134979650893703161453410387740741308602590747982308914796194027985905974024409789119835918427942532722953232428273062744922290002927692857278793702580342837569320524534187172653879340204861262537862468163612218162027080154083760083709541652271032070511806483292523460673378042929458476978394637579457464677941938419880728487621633373835452787647485336942641856797117877172701180627683875983979668025843783740712809438968667211070747068109663744096171286095255801985879873587276466691904149572125945124156400104439677155553300201265902083516962870333626262178024268343847262792218668651842640590834877578798254215393830845637942410870372258490370491894481460439183222614643570831767512322685060051395689917664826603213232826403280009653523721800979250218590794710422528672806827751545943501959633369022990681041065627609012174679352896536088713233301228395218688470096761603031743421239362977075708322502193689523129860199614258706450769254817614470420914726042039320649136802931596577204101765538770952165366947739039800977440545186377033998686281931005880830907653341688760277668738431474795793259958327316782028373336730704392336480768936615637683754317418958201360028878389715628519555910478987164695099852321069454547378421802437844408754308249100229109489212183034848541096443045741945204767483282261174919763343756045298901262090296693628318579952205776724203595069529926682037971684308022525128546605241763258018082691068478684037233833356652665978040847931924666223079911551473300339865911801631839595108868673140903397925895408919288534781734916341838453021941603619980127783972862831360650515601045733238598500621142088755079419081926637395032964222107496823898463324371263470898415761257384911294847226319265781789249215787952527328410593562935968618197979254210796797451100996632970309396431608854066313745099696767104097423042450438140188412952611528137182349687125227215254498534269694205058775657593127975561093271708198384276981384082623572593870893924599260455601944591046078498889513366888777311724559085063548180993742080491963136950753153562730659527562404722630434203456494153479682282258077785291109957391446282394590812660288937632028659128643003657752388932431218392335408572676007117863900793201760229270430065784698652513309704427937824338980377947690978339740084434172826431730319379753614029369499105199841444254550846880753464824256762067288031005060532929900447768437923201437446571335705897619035930611085204069605433133352803596049682230897355716950479837402208635344002922902327349151221734256376590790831764870900789139797105686989936040866811486412724218894947614058972994258411109891545409616374304248020758339960014117926510372426359594442230663002351405901741397808872452538174038419100439475587445015722180743529767514961194153015314234738134315671040326161500245284560090675219188822409648284752389903060595328504430227800153447407763768214860544582357228804852953989079791273789722772358479076340698368780878194047291480432224770106011864933075664262359332026356376826366777855140133403863148517985415884803999731187370698770525417564953322716081828334002040512682503087745193115165481704404946059946327574243175284107088658030811199635764344891915877304887153846364103906852325074035261748228282296424781555834799453941322594963428266646714110582875606201480867614822229399173431129599772604992579028386582949265650426340639750641680562346312803552160087834692021595500260931574591394571496462056810468683440948201696343713434443082699345842646503136586447977085095010610658428348084462065837790708340385108319772116142719014420129697002292013375232419669519578680212387003424408193548362317865194769599703705698789971045557103272544941887366689354483874304170850156348483783092060047595008881829379543121416887149030892198915109492859911411383590130338654094386603980845086660615794104248349002832705030624548334672556508266720234938076538813033499645145105433781837234134869697264063695858018775427951506978867460655403550188589653542943758879029704957744133834791528072959582552163803343090321636658542711235026770834705229894031802614664682466141472697583025562836640534418826263915618131685585291215392333813851082913151103545897658062030300019398345182948908138612246531551098716747084959374987848529438442495450611511264819651790922568231750304621267294752410852287000650449078659822114280325908567411302996059103066510874305786353255571050028813734660674296197910165378112520418885524651596995352729282615927472811037484491574826892807316355679399975182183891327802617299580040352124741737642473660656490041269915455391597020713505106095193389334370981981340058408625026234718522588764748543758141106300552448086720714611481619943862013965368455025021465000896554223355997968611633289894917603922303581944111722011736723150621684502671849036701923659358134236102054970029179938863268991938371375509658524894546279827840155288736385885502062410356397248244702986516080194681805370516104118167114171498857039928153668385698453282390344846719937271290676255356171504915990850445743581916716749610312460007951057557465659374629146895744338513382518069327364571418746327342809243891736394295683676631992189268520282380235265693854211538562265205322398019465388266703869475570952246433762100203700787490973506963742989704918618977296311166994354964140776566629135210906751645230150311015843352093724185570940024097637454675003166192582176115043949866553380416592343083512939253847913876769045410867067974223075264379110907584968404915841657029401575922258745593159643145196150193783768106390261311016135701742800007239745677877995849795238964087603514959845260233214955917074042194655386694341428378656134942440862320815783832888160766269625396662065459877620462641914708454460077591501395343434884154022095524767533341646043292578942714860236935104620320116443486128374136563081221459022807810397301929560349942464117243039008061191001657363505568980671708818210839737731919617543007168191628088683266105753606518898834463951618582933639458665053230776229184994070480177433091932859345227025767318522652863678622190758714812461795700146242170788514373949097817490391717970221166542029187659112890652240163335962340203759530790085262765303383203529446055444371928922440672177387544404570477256659525092730568328819904008206588473987896113026899683444346926848202913112328011685352896181642514738778798629672850606233338786702326005580036258930341915076782331052961863510800410389443690899506127867266887028291193436044892070116499150688046541188609458978417331458521631591104880865214412278543977049426803418184878500601858426036559673054352063229157524690265610859971802623073522797509027086571550631466708081748614558687666096326631550606847183511690333188898928839075015854427417626389480075057998706815384788269572489865371201297542511974970770025528787392799641877630965221681400663420518388946928750824756227083820268906172061973064807940175759335953214631422016034350440581399555309138742610716660832132830045123538536344215086263052147909697332891577914155341276503504230371486626821473746965538431718449725352228933107589439859431935963028480277573549582808722631117107025477554238234870351656275384131437985366751176345277986482981232669729891282768267967437311225392681785381191537106375555840971975797586361919004191902865712953153167685257196636417818219067999971464755356886426271341134426421557494624539307013189602149527097197510617321603185229317666264680675316001151951023019506547151996157140437439942519258591106448630987889342252850978055396613050738416624339044543889108982163480491359665006634063480994602098876773248933185376226573718840294858946860106678551958082334069210437234791372905508262312080154663085411814504293643093303130122081812574133067874916741100692868495812415058038919865522191823780256688094488707183753961698645103893114783798032158321859046198002549317898682444930282879920028881312606280689849256038369165710866728085245871853481627255289706608506972082584722811054766191980829386502373162830719311471328348741337731811865428411860551613613917321341992437432449122422582169213031396137004154333293268967596681514355888224862607525825882025577418534976487107731811853579682488762920613953626150054351925264439390941769716725995837443678369731339938375970087450161886875060120867432955933319797327327289335174828440804471956052950115906812541282336683896302501314771532456548718890152753030144266485285857004132550504055081951278217824627573167117290901513830428102964260467055027755000249980735031773892338211218840226190855600582073564966804452009562023210035312853525839913449893660610510087096151606439750881698317881415172660930758712082107225103919891024140860522943215124446825229983637213098388071316398746157581428203932392496967790527348447942873364318508511267908295038286959075391324042442172541956488141672635473099770901154243013671206925743910240593949391950955577289181383491911299769280768729302862390687339746688212717573313944657042435138870096530206088287690700738049037479750183731350727823661550786188455152503855663423715098324214343589299830213849526142732302213121455828650289153158624375882897448360808487827706901847135507719346366213403708421798406899990715397595920797127590231568203886020732567593556315726507875500138148123574530878002115972313899483866951530024679715052891311736655126782021813053363342722955386657437697538450974014706332696571126148401474288662708317645062553574297686171105116116883364543823362805411301937452287782532144213109144989375047751735202656756380819493671822081125490847327395121019387672017605917912261646867251502296447759477398890777598163575393183976598841079860514098680226428817711142850421871648057885307996121437224787630297201297166140386250590494482328457861840276485015890749224785110537882645343856063484241407453093692780631452562675039757916491729314395913925484103377494674138814904865879021077093451442743812051011775739992596063831414895044981129396607785769144273866417257548166897982966779937329046325166256961079126252893987150079095219569577170224036232393700238848264384527480673015989128811775219770176040680963491358822784952515365889097234586457771995191910361926866077904244347438683871192003798231550520996499422016603376796118177788563551763122226375124220311323849235688373030659611359003385549338496674935230839236775105355423116406789945784942462785796961902017184671118899585580201586082679994066863997304968769826664352347827504319856143510705675118487210873231961406227810195859615548969510196539056646684055087617476321851253872553495220707127852879181395339518488688848377349076391879985905469753322304495434512779453443128046614205849942665331419209246827524270433346140126556092153244965625117791464258883771419208200845516061749361058092417085273244479355496598378164643329912383301927645332232651904306920694016393568200463325867295894786145502694196028187957256516081889838084432797383246655021536560010156852471653572217832382928635189715825990926852152775455489443671117106873029579429288205913011603990753208417574370087337731381748752184326070118826368649605736227796755233115006062037732344386692056258611209116237654295404521414267833527185946138301162195015346878392945455953882883280341955815040433606971872174479498363113223420171785677968385444105936257425183351522582318895860568235751026980272456177850438114934196129916540686392660872604820060877087665780856740395916983439522544686895831684946478648539456720527260551271280022438692953288615209685406326049274569079333559670942796515279620371601308546604081105341950881417925295339184441786693860319314327903530486953542146602411083571725296586908368653453172199825548142847089632271199486428636906021331838988410460164535452723938336402360693099477243050797389792838918851950743740458556585135027855493744524257265354348724629521646975892400857729941248548710488930078824255990108117799898958752871273960765821455970210199723334396243331002825860008688100430715062784489266765234329737332548073923552615310332109238945424879377809412310089359081604191422796538965874286646722743388002465920302159951396509702324267710569759870049247895502917686369607161861402956865764975707348828855320970477074517178121380290795608914614215309402553334731535286656011447856004698383738247745185254764025051778751196398506211075262156560399836533753364573186289416921044737442779870845950010268728833780397182504550606903122465400769538147765144979592804464595560309829915295842197066487804646407372043030256790620884039520872909563582862714981090342726052780772491272700734048109021957921409532991141628735568565614321999230000758643900856059829752672673682676239744548540753111021802057721921497702376871707574910092850416358649227153999031391511377692958828017537522490292296305731413436558420380247024482258905699954854355825310045997651145781632364752783757824095136895009789088270028494455730818368264929218184974326105580194285069686563861375421099379126303573586240926973587888704392237882453042827162350592172316260934154240238751294606653338786168992715783453612022506965317127018532456742118443490109128758580653538431884118136305557545839368548799588387549337067973480926336934457804858103223990055259413741892114270795599515681560957825198393009533331217358632970823494082973481409977347386246423257288503240327315939413396462711316015032070526187920287866000396694380348126715525399782765583931228856405142194403313614378080329648525728799349679175464810150476659081549234602340169785644573419238498631909586720282185604782717247215194192801391222730641315052162760385478072056039173972455668528557124041045254487831833937422639789956671585054450030949995548611441999362141132333652148573345404987176966304960010138881454345451857919342003115416236490587654731567791221763697734298033757776370455613783401821903212414105772960123839401877593354837491693401693567297036886510696089828209995817596029343381271045510492727819868034172955883289314329333733447991418767370825291702430178356868910551377930511937811251366487136041135757643134144913412960835038580155211844831985167955345211679363363990358109107613924496378793781336699334852372522032188092702057989042047615015276224127325023973274337568376024063616383201511653840290909293290390180177795216914243708922509373252028284957339762186370726397702762149055202635004829003825621781996143361640639561714866613410778402832248052213674101359256677835231585149575691412463299512301974486982943429391535084778405771412336194251162010109929399868678121247081728780611915169614393314428733690426213888160115165660544266523019834925283870683337143077955880701933777848570254930280053647995374075371729608157483419969043623875523200816595930064179536964232378433909778425286326048312701619594552471892772064433569511286661807948241853499217453244662802124727568007023736148860387605053276060969815567018843541947756312945673609746593905936207656278443214525632416850703746368956762778471604089978836577295237176131873424968939548266712654597402646258967517644448231219121187666051235781969188125511218271895365463721750180300724168558564914381421603344612894839040105976679302417638865510854251881386019186225794738246313844184826328986301658335212460158409848461259955696757636294836568263327282814995301081857791859814225635686942433412403182323335778623810349070133210655293274238663885673818960355142802094951131965758972231612051403241366914709204825774601385295295502738752981544917860838906597469374682287871964245092036973505838039225399327114101671854116225766216666768306476302500025107369397644913588825844868159344215420315671505832357152935441460760687999432040648877498035630829372992281269893504024998210209805618187539002047120752000575941331968035689270749591482913968948314012348572251440566131619358462246700535141776238829900708618677377035419189090854125981333625232041292062293563725298176143471775769992040203224170007067793743290685173881517967798054105377941094445804181953789480815076687596506775677018578761611129014473273553148474856002524196727999607769717095987935770754966986524270827506929996140884572875299230790903123038371917391178364121608591569192895198920380857411604688853734843892327968682357884212842589144812503687232406547863633962432550432676769553367166569154634548530445393758234973603888398906877250895179400063753175736414467172540700796583703253503098335773496828780673339960161985879104007752325905241835594753113685940673523474332798427286148868298738419592583028721736127108084087790552320909911274718045671743577499946176892241906997157075894630051328217383334524242031793917706909890169383876473480225553828990717684066623297389021316736973289981273440489924887520013276867521674634701703739312307357308282148054025597163060116430959554169478955033081806304531063617172997913460090776285323811427286317656226299953083134474684612550946225808460099977012495605116191094555551055270381269981515633811473395599074867604741233586819240742826914207809808348056505602656889797177772828245095738044860541591855904640226155578816815695869230647067197313670638606441297220926968772003854944393082115591165577755272452219325080180448921868136129222627595057523939813594006631673138920780029499433264366897331971252300397526337966798853687647796669248311693485117703489154637385212638020978864169994589898963630711205488658938089006152014065181799067245030756425311757091779166184997942157830017744167385699778265250830268989453137682525458578652589779202682979423486644037909669148464010236768565205248910592962264437125534064708780061053854651592708315652966941826512211330754615411134286355646399433309051150740483922477419973873688233901463232647770245785422276487420849268810569173003389035078064758115869480571691918706468488111094010231310256571000138541139939898852067080619801198023504281113320224871882533388242458510568173802133051488433160052537605134303871583801440310402764903904383823601319081510852542010340014566960169860632297906642447179454761331623050562554896622648187536705552198422931162632893905196622848993951349878177168736608162904906481997577717757300214879696659261730547781077282150332688496709119397617793409294258923439181040866857244513946957084358926240139676665132228590974374854957733499493106437822225120490350269780655222233877198881486052030223484561766518800992253977142755341061248258254089417400380160139648990115121240697704913583894587861717723043999281511297044470526503538446573408950352602628341489609423669710285418868610212414252208641687386422151376465145265036925620935088190103277026055499781145322565036678572424573430130444574846648686373520353042603958493723778351974195632598488350846348583431336853609409192699182492077049012528919077375271288807297576731533541457012809669699808028433587204917765795375224380252099956590166187998532732283989062873536242665184120044306691260081138249714749333394082219194948070540235962531222669416832040213309307391086206922491802889399040444559058010656593576594409584562922958548698309115418604629197774346904470036762036178884448172085679542061616724468513507089987192459456886036683102888522262554238972312118239752623084437069239171632359173372525128989029190909919503032383957225898485887248953205429870159640281176632847519089253944527282253190719729607046733460666133865256850907119419336614069056809408876532719055759323770402774387281342320268077501555117771642890943955461129982786907009763331859836695473696298244214470692456970686000519222288965030247710124621597575724592535438090366995020913003671530037560180067433922186714236249662582611120576097779903720203603062423327496357063930460345442043828004732991118271139068237084319546888937201615685830832673687780473841617189279218922048669030295276379999007128600824216031730207107039783151354185321107064390486819006901115688270754313377796876377775802381866990860817453642465775208832439706504513929580824252471530959437933789877927819274579592855323719766116745751400669568860769953611858567117217028074663069182294734636973397745487559014534356771442110919453861030310405346049080947479612577339137603466084687106235845508035318193689461251566288685403249077271052716295528690832758342820406465128402330342434989790639819534680593507501621965238580229662994589789880495033776525711953311545737563321676211747824546250333164838642434566313241800720159272754722787464373896298386454400359593303683912589967806348542491224256776119711907403760651953256685042823352883661981987197537794062893854640727719826822544965103046892312945294320053054674588538338340281397860254173369571354621917723816791393063771957593436796111779223841821466674351151774754998336710194169932678174878012414485580769955795531790101822710615818580525655863912113505606605082240344907188198477572964714344874319310816058282561875933064967949270562953960721933496259413280890302910279837983153659987064249425161889549576455616359080776449971683606219473463689278784301653991022617248913710065364288251402027053813564620055752424519236507999990415019674583988730899469190499701797803295549005729839799245074569925994377778863173803941946395472122708447630286642626658079103255504249977589745449480391201013052389483182455663392925182811143831264771848272378727496912171051366671875973865289712307315122317583968817435353001233429991391165592826539153397563668456564927045551295582804681133022601218916893936950851274107407332615894284065777931228470717681853314333811462481597085069988792084068074309024589238337871506171086916952410209982403920681352597335398287334518556130725745398961939904779483540839446186242070740779922694202863416391137975207586270466070911680570890457134105749053003448739391092404336288964090503899586683019083425858315460458050501365119450919875155436809919049055366178640566090747856853243099777326035308752714098792266566876623494202935667196952648670349973834844899993775153201409446509386186696986466144513582639464955924941181798007681816531244290593302702924347538739013151358632039810191621215478437063428943781945952408622142393222601193860607291464159374847332259293097888156091340628913416771874091506789091499301497680519527363962516190644372020386569891162129223789851689208339878498579757860107135698260961651152014676786768970106475889768121533531786575185048500321849030182079605541171659483046985092119202594852332164557488228740552123017795119832189925144740534380646344129476883133924566389951694516917730863180404433908610094649233761568570474849225583235201792639545589724655982370791758186304739774711889831320717888173356287941003944197607572243924434046488639689132665763796777668466317556155780994848533116736576117919593543915881241603496906841383047635822402460991090708310884423558119220945517236318616594567014543433102837749939819378040378369375839287697836509754995052035791325704364920256167203918561513776295371834086080761567887001963846315397514273650331857914366248349413349750074787511519808496123511797087165857316588153373762345953795681536060099561107246402531774513520359478347749681473321107877552512924148068457217561657371029357635747330001936263553358715527659927038057230812361744391612376507382511502652909481412348251936758009293396868591962478292703437735285057881156167163022915885110778508424096560241953821465849326338634583178963736197525691174954415548345949727359536538949776938146299661827437786859085030399753222552596477842557111671794666099062120145566200257625592515327567000783447896490326878238116976262838277236185427525676178320497239982330168088915893205876352953055170657220348948066674760263475913182726256145251861859966759028360726164872711159406667874555151513793351738322631730200313997483723099869122711899740435196650852492256811883253238266229923869730682556811261765401702566751200103995710276059394826716413426010618173968559347298450992536329232476545448505459917040915448366224108830315458418415380993902482568779169668490432480241445104746656020726552404195053984805253147925794792277534549114163168088164519446981905695336593466820610559291281874143214070310860344237762593719564408005312161671388170249583704328595926862958814938182613578318862749013751023428505270591002379846490259742465534844255892093994227568876980861864588165450577140186064277813366686309339522459442400360150562803435344329626473999384060534830598840273963628687821574994388689732736745461905814114297866408705689046457924716990326435230605419014670635632246733128247339562463669244139475537303052671787014267287696643045177200174527966999966118788682962351013384430621975980300972242452334368528536962880806328204293972712978710981625225305097255126926024497685760345527970658195158952155369337057859604525433599300630100068956811747761716723543290305527936393899230719119915369935521055326535873736703123614035189840083764358246367720764363117861101509949768232379635112445022461021097156106942930220749567830407685168829336206970203301116445075216599004241314674537505170274507573704787782322420516909645176477090370405408349430435490871516883043181862358854238327859345008443307870233387057542935774374567747777047059142982572935039364273548781131500769908274328843041386165011191044732549113322794106289304598294566930318947116077627161678277549703943968005813508415109459157192477943836074910581828646619471702681606941140881275121109902250865268373507164884137932261999539409306214339900769758443351450297926122578003554273096635335637271014605052947162189735051198335750638600498711446259971701437567813312470052895554575524374043269844523385473306388806112519775036755603889792021466169919861469574659249109248536743150787566796972267989837298316351199045049652322361242085493701706107230691732935807200395541448859739886779371064322402796218619973675510821500890105409293025069184528103721694648770826746150991532453896911460552442794328436303774499168472592947801266048884511621651995455145400598844386632646488827668954635023667844639511502739642653729940905894322450932301917503529997572198960659882980970173989278445102241762915403423867718220362427426732805304083902688355709609176935597396388105271471947496297037773871655410447290992394807933331812994131984113080895041998409024325777689470942753502824152179728053460057417561014929936595051611471817298635885532399842417033699581633916310717550843066924652143488338396918233526383383479441762002233632325107862644236785196456395752968413363374868248423735138872864962256859989864167325737798395391090427557669561863931539982342002568790002963022759146973116414293614467615072591587420752901285157880821313550935062180518236487003605407123036612596356658694149017756629988581995592565388781329058156743502570734851955031252341330871450222089655425461573806123243741972211980853271126186817424093861738732254034937104588695760608564653938045025667493995324258634424520760947173800408047567180255243590646076937209750388692304685980164596971721042223057354306989747406139335340158983464669119810391626410024820656720894325500911796789417940534902524016981845137773547932745691744689516270191855808320232008566208800678759698723365782633743376046946395612514897872649627417619110492371622282593053853359626270475985621800235138548832499861850314367977283710718217833956099839961101855983354400369489570415929072619571500738915512142108130453073766276493720889029872526549014410718914011412989112962910441507686641866001118523172828939733479787882375310825958055474040578118138542741930933763635450996099507298663521209333919949335717042397689642722024910908343844147242189232333385093970369501091873816482536196060310607350934707408988360314889706375176586958668753997539107987636150935726194729448863451353150607041698903210865234292452505525122400559229672436679819124007891863444477050704328036387431957999740054263323267258244622431014446595082931816863427546610238062717046705970083873696032411721759101120223239097937707766362692136237939873254882166444025152393683465028676965333501139624913552294010634637357158903503896469704910292092224346730918387617910939514858215759800544478250682394668547068360036642049239682041181645998644377310199309026738087338060343142600221696480121640416324100310344255136451108822968844876466180358910918455747936848183634538411070977852856844825930703423421862154792574106613139636209975882344262779533197788463451817287362698950752512111948105355955844512260565757720134675389493530036385235234810610806012177625018027507942173575934403540569851422497069392185640806570153853163992481213299127419071758719500266568502698945576930604944373785281481692653296777836175173456205757774415250351928998775616732652355020568748798049993543992338612399589714200568066890117569626795490539262171567251585088329190456528771140315431946491762261630279236389708141962168192986218323260988424942959761449363881449812779122828449782395254212134418856035256348749385900157518052232807083743286963306168873707871564015509811630126175730342596734000647018435719415616444073547516137839456195559762072480024846420178239753192800343096070926293652285974729136125338776762667615166948828815785041002344307076631250133458928705831444812036698915601252701311444970587565766898513228492185510897670520337733392654052825507818662204367895714757096064237521464341250872589485212215132321991402300350072394147166176380907578917968289990553014934902667835909671035602141715009416558819002963658821323696674128763001693276588764652764877086821830271214167644609330492609727351801882826778109980479935101440444672259546761134463472901895622159931371965750589506213838349309036165202607867994458850434511257770400445006985245311461776758940611080908852113041947845331038319388407537158962921830928222366143501698139932755144032233160148461566414657351546446511869727301669931663376717596277996319246673201457317716291260463113154630140527295475665880536504742854063654779175517884502667147834937424960706236989547693294604938627948992953294974803911402257267253140499114662352377968164810198444432686426452415826317269229963440326579402062033290763162975662941103468652096844239453858774275566069677724800458608514525656133755348393634144929425648519357884823383008935427749368148957638955843675158564052475183206320198973221951598443476222062226347397998096554263416383508829835144082299038871246453138437316001268023010386423497194005594470210773974053411361748393469444351679426165589018137778542974924468811409756005527688479283497057680950002184174450820653485372068642787843031372743187988287291990823165848254286534848197701461434559156499479436485635089127994178446318199697213783873458440818579142409581029645933800538449161112033393494339826364575051504360692152558764280151328345016084605211398677865863374537504612303940957612973526511016178010772515545914774461595743028068200896999915737138814292397570789520426392710618762073761571828950014262657667856726321863623501843736597927567806552372111782697225039258921153172351062913928209803358741225808806998098125921985272252102339224040748830847119215021694905359639361008424862056275788795452729837335317020214978015024458958261444178030852888333612975023567341279985463097027634941270199833205169132523453592741464904075930276174184589238975690576076273273654653286117528476746043666844256791640083850328414458760015094798108464163721709446056725475080511610415213343584472038708313941418578377365754396138892680666630966502377458362446284798302161052987548253501049528394083410495817830991444539078241994864787665110908385359496878714348821563549602884086314642866421315854219032698931525063256440839085760371688963724851317485372856699746594751854068888474601292996064708174990699014504904252109075567560564581057936404282051384019385374775279556222782273113820050881896442039560723522701862353043823180692610608746623588078850519482164954975928122182170678298645521480997345448317108074642559807525906698764829593868299271331033715873371974081365020056193185287374419230415127879486483662820796616435084339287521585875992820520841474895700527832143054790109386545926362873518399215768099549635455862944327930166386534031178180046518712155807505225429918681979732570390751700143181416873067714888916682709801667966934630497657971993743544602138454400020387200151974414845561115525881279453292695080318554123765099763831086776200388764230081942867971352347179277433614850934280189370546621402921282868935932485594088624857519672636366031430473742287779575554084259103790902534232371764557275057159415163614735142078332407628350750040606777070859634876366790773326041134921795069100530786729311337661402838784537123669973400537827352754030795844033765252687085599386099975556748664086994320821382404352487752171164454652004276221119570982692765999856085240105571633851233604060003258567080662502373691364316874869380230251789870715922450345784301362206405869563625865480383856649813556818045772313238708211123049500667527609139748227785955822825529625351586281980619330683970044762116327248567265994064774508361906246830050133415306467038836228025972928818006101095637661965538658275327257920862724847955287532057928346544337514355333889111030553068305575057506850300574926921002780615231735364849032219150822975793085025278737863193286747737737457911474224301019113639533422871471476805518560242639413666023017000097409470003758328123580580625326188772207444335782108305924337307915531438417041662952167339169610020187008968631342064192158412564319849855274456239360229210035013676499148706853542284340872870973550009667778885847056608385313206849987099412714102547152657954037764308749527743029197195128082816786355460535417948234160953525297674911506154411227733352441253267375304807125973788650281576606115496091910210522977912654450952654636893635958439022461473192775399217900357254390484651296034600557226414035899088526616965418949147803098698190641939726497006291071917855697008653348882091156447083036708950392347353832811421855423638252669674378868709977501034160658066559274171910943383442684774046663167949487698985838628175773432726625986601111124203588869525621947858213040962979508051368042068098608061431532347513435461986169863404860675469643278850430002853577657575883311939045907507289376390572664508847158759956671211251953105367593939751394793950443666797413425490972484493490170934498533786239179347141011593143739177132121761296590323151481142982685211275714444781110859516522062762155399444073807660378820159325966381071456288862139778980757123255440559869610413295687491059311410914940968377124567386761781170388700986620468938516415595013381591636303998399448256064999070308531646652554845020958968885255870201277760702548470270193248927071559944696096943505773423429388302594889399802806324295700654193897159230302475468954397432292342584517547917867343260853482017460127279301924655667701517148269699666617663218105608667435746870473337797107372135829487620431757115713110832837058759393120641151744629705942694405766970799363897059131788344279270505015965030753542098473084427060826005866962213513135755587411666983716195244116685736343494147952975148478985032914624074751737208659455935977575979070740853234936375766928361020836128595625385700757693265167449091489555030794986644538589117119613449850363925640706768652190557713744636537421443978980577142511716337933375118917310899190169715590087383301639596048838983254949517650298325744645660755078238045561425599180744448275606735831967250560415725219397057957866565794571402816365423472836843163584166320411442000252629872039779029646760743580716960630149674260319549633702952306388858307601330462740784451397998977628765599988108442991411175326921824473807978455084074784988420352765167324710276977335647354664416960403963447821820215418108574974773552412027610025915690876149256161100191295205272002187462876514092933364979297467400334384536092545574450448972560619817999535351819014817803233240462479329414690065755701847877707239270467681886312345245262219788713531378311553036618628413513926309483182164800685776671385118754499033653319690982454690129413398145571265497091413598232772752581799674166206642855138743794426739123787638793821840488546662147725260083089021983930652408627784629793482870468707576120796223969932178948177803519109219033366090643212357633781229174121312953275401021908152971895369703871709701150680864039458935992846329919616166457442893854076819768202674815325909527010789310802529128751199579837651540385879123604792595132768699362954443809165110165311728824674282843733283680247788900960847523392090390166030453031986852413872940220146307996721973674728743955309540829613792707083263060773810438813914578618220744816464050374410939320467152150760391074718240663582032827959653409958208905119437526202210405271864567420576808329401904395817279866146976358254742852489478818319297455838832561346868216880624634955261017173798279555199157691164953806410326569903554024343481109272325975183787001037245322513838971572128949907585872709969383709596573289081268809991026235620542553132580910582618748203124280455181514942552270755258583681148940904126156125860004400372139624303150989206189009767809957647950354950553526547505265929887075311665648655855694429842339965960065999278572789278771006604262725994450203809354255280137411625046004294964354392958348195318180028446496595153762247359728899096739277343345727710644742262064923282210195027195259499150120763068735729282271276892791321273779208564910578015567032889372048768942312563744635325706952136411524306670240761999034504292333777160277110872882564495858718828579917630384186206358197708421586996450120673900861664035043999716618540304120177400856360523558735876505304153827567893624506724523175216671240331999936673487548170117802719397998438969937771833975371674147733061634394625789915351567265972338878579592677579357716436391701105686084866111419616283253947594975182412380690151837834972380099086841034124508147387708317709134260003679020517250980995606735636370660157569029309548223920501761913406795160644277090977563504641602384634147650858038424916062868970854434845996997315394926602288370382353286089134483095024838996938233573023057382941858936594828690655596437239769016598216653954371879831532626759215842562042964805026516733470551590859539294947725053439412144278761685583640574564993209020929806032630057491757905839464530620383860545077112725292743624604929127188542050598363367625685489743310944426665352856153371152475485350944457831236477322800604229997257481265839194871989169254914201771515745383733133597768156555683087642650485618629606053187108983028498176286389040918358048471613049335606994899645778117123287997712818000003333706341959185939365521719212487530174626326054313631980023526511167734407280662725878634720860552126900958579357357641116843414031786063119082391331341841953686328797278338813610056133411926748263942586474530955249803775755819289603272336820970285965549048569096473650874949876528589607259395006203617004818236375757322469423920865440722712797904814698382469133177130690006408364714580492167450820033931682864207157029857724474886655792358258952043487373621514322743546222345000145587107807753007984401583869787933730872910347114266640401937771764327687537464970005576560462547662390151062166485072547767718007982840444171937567264790368095086163521981434640916298451945143688581622493267758068689319300128231596725852287792857941842453494641668930468829735347417942832923118984505312361567030564124357859702399802667312989775583462259571750675816804068269190606140540495729529403272115212253413351216292118547372827500985713033099782549691114111818353561427718899883811748071155737255011231269578349838117761713529172626995127289735523878810585802344567405279632362572024356876547797497867428353260062989734733809053723551108307832025403091633526427608859921265755082225134608919857112076981732280544308995769560989984935763803575136434923737648707315926462542319704932094662234678578503965598902005761783781601072015728831955194977699624244662920887617053996508474680347364068425392096207244093362151543171529827654776453627372545452447091457745721949307890807562871825340830046359340179933638968828499162808920222168011663029102038070060802895888441901003307842364416661314214988109272209905697513061599071529065088430090995542864068848802151558305895497260493005445166498623874090798579859929931802023977720727139060886957365156577907317377587632783103629997809164165455155815455068871538396541458538710558862038273864744178042978826309039522576262495220721656852738807506699122974264459227923509303519496009303713325477452893779248174598049640409393128796578832726094779776449841990022113475083570331351790981445487791017420048902414234820794439244806417622566760786243313319745142277617263044313617809647036507079415677742258894100394165476531493812401005147188064563158979029892015072853768171491381176894233453621369820428856935200964138283499671177568095513836624995509051119894204885578116099592646476474720953689584156203499869140815658372820088805416502008028554189159832580163164963235753825308716286207733227581211157187944973946324530450452325144275202803745272569128617128727835009150299797197982355755073364568834969247257152572899843991695033689058553059616548971761685763919010249728022164027571150911679895214543894307371605932269182141953334428107989501474669191289805803664400221679408639823458123124535627770875882632890294136544430433182051733872909796502749696636698521725776485414625250872365306060139538889802023213546305131468416562450783701375677905156645339756469285526852464078783993330141505225206315333157480204328407198211694398106216500810817977911683520400796339871845397796268636829526698726777949604485798816687825297561861372556901768624602634519305717110784332816521721135358288991444608438893960275425572078690070064523595541937831780955874845901889254087696171410066009826889010019134548417258276787343147666169616269120144170077150965214605046968656714431806912374301696527453091884839616739219019559807250658949669388137459703774704611091877015514025140626491693374745733124509051711185285587513860455902575429663006879840512705800084660376172396830076384057766496063055964844214369860542185482241561716277231119716491136669054730530977135725547983103178474644027833084120961686620128105353754552253215453612800555803753675176724173429416774056894487124335956293736591430026693920086801505556050416779489706081103899514386831268040711166225862779861891524250729425592853607083257623478766514025196084284613049652995959357207704585490935435694449296692919308283687496881638680114856909095606536863246567414236003366455871602628475273655510421284315659817879086982671748749407649031997031427252791178104859327262632620183805285210234830754918005127577640428925487823873686950009771990991336080140638759254085885964907910260854086427777985258218090839279503029327294215076947917903536506508877309370510877270963864763389658756580881836945080344877137879334343584269666604332466960878701562939695878172109375535787366244671755677164608784952782910728809390379552041700844456771142689305781363481604151913278764037853610129116087035305090270983030199795604945717597034838874923997421511090034893477679853532719137513945985954119796403226805367864173062298061498103225466538115429671832265880071318118850313391592067913001335128176781422145568227461224493617541580136519952984164648619075954386288792812443283430685643664134376656937355653068388853084982149285687941407313240196119402239771733491494081307334591693524072675747925888619444649323718544949354112338071755560227165082051636231996212940280560536354321805493010949819022195345624095747283009720885769775287473351836517702938331506286321869141334355091491406187601518707363947119372329610036521079888544531416445392070476522093726381903693756746272202133969233834152135623313885064744724933992553266872774346530349661532854906685650710843075207400192597553094890264415413471919509493027585136691378610267836824183252879199595651459350797652493604910513824811085900660996575692127103920321128065884456354806246415135426322384273604466594968240468887914851071746584647759880561374898289991584779523810400879664050669049381900599095048644880163719165063082404009706308405431370271448289131928525960653915744540725272921932386136340597776856062894641172260385984251645384248003322936446888006319818568284495010333391652477775119297587890460751019371127508692239249635725090355684254440339294701950159578165968067864175024089119543664048018431261910753135432281300574475318419039095295611006291633599062098721472337406414107885496099455114065468021719001998218504810341547681419647092458669700829989613709930239113583273062596280538739575966771031013585483165335098858498684030544574286980737185614763673708017499687283027211192754204945058105184238221001038602421702052719030328917879282473628651458923070873437060898048876908847011175012427060231916272145772663769971356770138386583487686329902226215469851477230862387276859857587715404254948365559788537020640124785923585645053547446623766997660539235729079154372063989468556717181746634575554726687888026793977562328996956783399087778313772051576297536997702914263036166961420149907008953196009059243107799935363596052463547042160799706670178320319156233219100226694235978718984205771175500585338849373638474347514456970277735760302706165138013628928034591822260835752015781269797247948516290415939920500578286867269330898467605877400091430371666171756840921770490199186438329633882413568351943047922589236475235726355944353455581304124814233910399944049196333848443986154085391838558011763449914705569718480980316206410252462299965259550902546736247874682181727866187682879445784234005523048100653043083612774267016537812940660369021405793279232293328459203275859610258252188016423731052234148753964938236328947140070955242140027173143668456738959267110754447008953029638401909217604723492995156097355321977951690782865871460465351959167865127510534715338153653788525728601008529568697119307939845739031118903703271138576316431993793725188321742652755082161164088338317143249433488857531280621717005697930899305915005938471812874123838830597812439822532006756969568276733542210998221692177819486715321569249906662964300456964995799810289916155340860725162231563693846506398026691749207326193966100332556079529985249174977143683651506716112579453356674967494572547767205591014084329351731636532548453219588644876977437108051507527096577070899247407354559141342656348530341530720383630348889783946742084258270409081827277110881588184573853225231807210252102704060008717643344332245384087871935010266606488456824256643303501663209060095983314937386066115049021899391043303824539595177910443312578841985317793152898967511348835845399525923497857796320450313521440126766208859032656771203942210665870593945793405071759533046696048787314781688339855494953982595291121704939707619381565549137115021038368008814693466296599071274386799224893452773078385510877616318548675158251172840946130337792077808513454928618564887050865015040924673773135677099741930758862196613910030138953268694417514671742126361148138910793641535282433423420956072796094302147095317207877460785443241731381558451709246806594941239599870646488322869897252619191828905312430828458788676036190653627096413497909653741464249482517884099222753780763241888898564858149356804696861038486003519056256990707560899226243225371797709150815967251207203667850889894921500077001648439804811944592240825128927481981761919309371508802762296462268564083659348533405921828153531661636251070391478009523882682464690543693568693283552115526625461631562724057259045988820100398743024645252685112957500119008760975696473604744972439819812407750066711230245495536163717304665018805140509761439299670161569168715675541017341235363167694582695984029496389337286589766140509960267765338498872956725677687248931122524832662403952634388472767300061418264624035328908442239602230272628488373172038744339774818501945303112837577096993161912121160256985218679262992560861842551462586225302702583373889739766622372948026127399010787057928169058282681656504002608630374020941742926387331577437869336002773369114955037621602444619493487314733553939664494955600281999837082956771470101121278887024346950280424022234959085728576696753727973941142089325346394321695500843708010846293185362059475969815836262470140002188172495520496585078372345989198858407859169849735897363186027445525833674519288271066537181531483339032165294362583276103283121077701155727592470548100918189380126640870261894756096703518951886018148304824051782172781829235035108594439226538522290658672854723163965094049631891438002684137497342545179100814686865192469853201570364799407308540651788250385754189657633365540597312026515394627179727740006017655654505849881983980588951611701057925540001681473678348273454844784100610449243118062214929448024368231382888453665028694235298628550657794637242660649372256414700656800370670500357515231225330429324248095962652123600089177955082026819189556457757699043026202270178938007558025439625660179346883516800119136815270709680966516249307503059965395122074944568859527405452157477018185647995560887047866106668264331338827146638705778366571928088276300091088593313957237219565406502705768199853541150681325277429771826329177955005247019406772845860622340825821653716170003760882942525843912144754424297864827495245519258903363275368549767508073012341935845479028631224017223188029276576700952908311985694857200563585757325883311835009121150522487417624640258887436852046180361744687148414748972254341643826543483174562314708485279529547462783838980648663476955958824921226780526741850683888236085571102061479669808020837781331160577556883802113449145614209512785186194386032839595992907148256821447407893121242211603197308963630546211174671496742673903006517598023469257776724223190454791867859722181327337658705017731253229635305777732530870210282409545438034677543298385349351081157568765880815648458236913179349909207107836043015848915057910735684278014187810704007983749474909154528252235954203797995679449894499454962127101101750134751606224381001666490791259768412636942210282924106305606556655791326825086150480808537499191933490473581056253793636260176900883820384916855602960022611741095111795575286300211639970431483286128137046408715028141893425671215359909213331684876847778898598876690323036982657176041293150011289305995130109611041172629073643701022181420488802458770537543306847829919279725916105665166421288971561847947332166168805012777531823924947188966577209440691381974255167835604427335671047597254512384793552958749650471032747643677606641218571382121186713656660073431558919016973397434097578588794274320539929048167177031621504592526167311905408383345808120823105916890017428707797907340324159720794777648053902359213229149257248999907984696834355029290865291020371598428688883584589025568256842547354897915835015085115570224730123701002793121070795286669056633015039057509128755123003121601497926734672486642658715941856514104764696089530485417480867807825309099708217739639330667388087812956406505828088035789685559207973383495213336196999980946611417061126957239552402597686075343032960046837866968996028137749055847203368122069905969358184442870773682529530524478949075372858931175793443357014521465602745309882697316610780295586693114049677936022442094306575643725859579515597012097179878179802546144009584156469980743212088506768212111926322858845227801391660895248283506776473379159929877982747839408665802569083782065405901750933028433504019641775241990471302775439994872497870654081429611951076596664975646993010872892501919141057878640818221807378152773499162129032535938783619603608757164869294992944005824948236714702754835384613330162607262954905489764122147515906255458303043459224794314219342838448920084271842661680947431061382558665482124160008577624074432355335027497024953285273732573922106461306671754997621831670347251805119637107890602051944701316862122913348722664611312688555332381190571520334565125135741572945253909633939124049534681960399646026160935662805337551932823288701758421112043105253724155586420406241424561879924432568729586864272399931196013981722684481940742951682998459799067558204812366974602434955839638891362346375254050024514985880465262188483198746436179679370601612436924612129206590994074356527630098922538050695635718650905691862312618181142446071240426960623135325849534717900575714767260116734040507923395092194878992787405097535732245040530408368824201586594313691052004326423362703172014961048065617855285344258677946471932515376450679746119476293451198634225782581515325822228477851384270453917344642546463547192509956045643748816462998529943976176008737254614604523803448883602216319203961421927120571480950987358373882540189148155092093657708040485436081796312057411291415949891261493315338727885026142570095790915441413487053557568435657174366599761856185863223851377546390321619503348059907282566175152467639760950306308944817745834025517277532273921216988026614365685032154571783211985019048294989772202461656102287614748791893357664670490407423128069848564136165072205051312262732416512999059863000639202146520333981999822144580001358821028201481690544030976319767641939073080463232638758300585148032018056025568708780483685773670104080604065568181788565107319958768224270808213349696733270729203076291532278575688745334137428064950084124471303558664274540435471795335811184453810676754844936674547044040517565102168825967877526295048532892898265981951887393818105798949596953680254335821846490850005323114363102255634408288086743879396005113787445960769711329299594408931963420704115845167791951960348755746010650394684122937414629087812394050959977271960913843688539575966244598372565235011061605250599420317015874109519935269107089371521620538304910648998179757529408135991811191786168873238722785175025380509437195162514916623611852956755935312182126033432289102400605262953843016616022168484023031001746666496349497873800708555986701823062731525812562895636277407236903462820068332883643384722193958435208667971335132872223399588957108199193832419706041232142498477654929949846986005060077929194182950549053527578235882412514336145666633495830169595302405630535783016026997846922378730317651895690169236251211161849716577776734339226344752922217195182516977107205317950035453483390171061279905453450057283054942909556190127030632185097936226497911431805506681949718064482765420705576312711572503266456546716541749542258484981301165212242174558232402077395222440697067787613790018084239484666190782780374489242015990478741300673560059729577164552208756879932830490442972922716550312812868031540153517773607551424843608682072620937037765444753467263337673110180646950430375732281751866155264042143979437957875923903256813089855576435809016568702765356027988531030427664192412742872317384668140620990118595638156513661916056538786239351158709063245664036164833363534231775037676884094040963274506413818921777099464520773260278273501120504503171781329510111872556697497926581572146183007478474473757878042732209438819457134776371657006160352104938935816061386115008630537308450954560215764537868046181679661617416671307134204574203535932300129012903295278404516057515285317414675870994978988924249430609118306828519175778326436946308553477737158787804719709543514235891271812256523174083228461897069585730474813287384645795946744967944930641101614807968413472394893900329321531156748519579529945284449455823895842163355368816070000684804957514226521298574265186125815599210488250391196154271701746958267500858466354107227570751138228098356269395914760710727701938780880560985826760504680832294323847803465303642405821857286337011203428410657623308164231950591682060985836685034958714556742442080061240579097168204357161479965141319517838449728253580844295708042965257586929704719092692267913213489808942380285912660111350908222593617089231038624138309547828956765446459449802547135951688337524501363062937747797153115538670996439517241487998226793477540096447197060113041268247650967109646301360480901071445256533054210687237837171792208459885893732909308633726777747901444423587524448380533808912921407605798694444734665077852957619293112972017899677592218315542408412865348974726146908528441236348943416582758716482764787863416371591069807066001342500681522534326749846468720016458238990416880706655714382991777681722300798984755524824790369246524916144939414332618572183923866071639579258239108840332733178123673385039455370418285138395997912534597277550739050171206993528052159978402098132028670555198808386838046029606398444309020338380127020688753019181480748479384652887644998643636036161858740017927107022692483629162237774069019138995172986182534670508042136216784723198020973049337688867870849623839261682577123782343569184968925785899962728806624218544629906790261164494471523224122327744485457448592783902952274089555831974517373643053104214169557266059836152764664610523673095682161013228691477559837350292713238334719600690945081903835084299958868220572325430302000616733894441899067350440324540917352292057827351161838015114854635365202033606485855768605323795039438136545197868084474231983637078984699365761438672805933234919715881421838203320114693249903427239885066238349448346354784605636983339645497495773657077452962433499389583417829205201023120620408617987739698358497388294547950843021487872603612073197187430465053995163924425559543484882382855782707414864061243682276076974791490600494118077912553994194616733309858781203299841750610246738072650617034905079302596115247272102822435471513395464221778899496936121234530652961038590487121740303383622829076934613381899589339430376718568912709479943134345353266229240533515765383838977234639444345664573624010140901347550051554794028750958524892330473795671313791604144409776097283035954263220152006518343341760212130554480547677824252275430574451960005850806572293988851134658093335574229361358345294156157096842622516061505530321298082627873186206009766405872738671599357819251758992057254644786388438827140085609357368683279575916633197273808803909668802990068299005892249101765477844778639787112133847493029678958131700125060460932605532420134198644662997387681207717034560122063426320611737839226826308430570747872197343974497792846928329408653826052193694183893769037413944883580826275308471983556421491820247450594754470726403869877970695777162626584977939995631214652294957751207516225546420268142036392073514724334482268241194669402105817189310819183586581864021379363248031063609949050900493439141409092858574928993730847201148020398268355985670074323466275291818806798178051877138833246449552308484015050913787646709022225041501194957356832751201607407738377415732642122313475283233725347443621601653689671945784266344776935615071739169517583058323953992083746126952684818760596408529609583050630658415855982176337977036373288494108032166556467318868300989219010883010950920171245532814195104250614979133073967928242365606005980902507761994789176945840606113448577557583259861952011051296856011147996273670340366180573470608939552603997656092948595365367294453225554660321605737788567070572586695248990139733847275449769585966547223532277181762395397867772979659409345857734259057564118732384918336985993881249110409253015939949226544614053992063329360269531228716394122322614749167933194553390564454468278870506498435936703810073657264614607484710356886250245453174957164846400721235780862220731170219392813303240166703436595995926273491040153739525889856335118462362283429989480880341620067766173203699086375352709026029813828216536274419331626159470730817806123143874873456874890689851853730630287068440694840464637330236187889012497449332436734884839853910151719726665337914405081671333827334954146584160898104892277326898465213837719060728685698666329165108137012460703190452768915136121877290480394091752098083910379366697092498636257343393259178018629084410898531742832561852196216535745579090994943371138799124354801752289225928688678298381689384868642504597229597535823949674776287894942794970343573870769426734495899011215502077245838878662972630433280230201764254047335502090436784549874515818682739965759361016122391724546720267382587320395060736990411799900579716742285054213203935389714523857098891467559240967013808931300297683950548150459920947696705964242830449145259639382493953018225961957364812741641731018521493065339003488992352394027288763726703316654866442231699594634476499884375754357707170974757180439427626602951452420888707368321022921744525316750540183945375127108194711882634465706557026234115061251991427339067070503022071547191973741109008311621399581145670269358165876075857325004870925539686843870969523881071805646944174395318316576614355221689218749671690902574530826991760254790793837625070863749617345269622749630731676034502481455767704080240750167183588521384193536997780550111203440029674434487863473384411190770281063180140105285965797964878062504681661912970654300334590897197033357378890320463000701925627550164718381354422121107861714971279204504098864574413875835902306647777709618823841804769704931699821609906332187138152950225010228881798659328106143297971437622324873970919721790768032951673253053941550051046525169264518662802645242031954613013466611607142129444761111288703388308105391771656642727702954189516002927378620570140621070086757483789128332197625556762877617329514403595528147456903322222112330279559455195123606630534748100738380402575380432490820944446064447353761460626105767180051505712238331616622622145012101018194406744833495924394260900318606247807001817043008109226778864233875756936007621350545119745370547184989623713614416060633280159026905891384103063491071135654912179552773163280043696592443436080332387493320064152036580630834326769951935134340741572920838315904035075480082351525592479114391585656851803073945483477444187608987607977235685561811697273855541471454489757921651421821137211460250175339471144142607632227615468117218887982879581667358050035789181515223392537644776377023118189666935662823290665175796773465615926288382120338833981117497820829553741183005428994938876258459487555687792719947198251325592827907548449622624577170744379484400595491030451891549126078430318590621212517025562048626653692143144576740316062779119350381834084590344868792258725259561091700874377636464919900865673693472731844024146971456782301537203748321760531700261092607308443380950980673966788919281464146584156379279978468380348141381313265058643376441600548924003563013488428440754096912889580181113914678586758072213564667536082703287858126897260731567820377886333072675067042257733316357461448655752381966934085294144438102648520156949266673716001359489542391894593809956184803520167631430633096360939729693210297241962474719244467977769343397222325708506824067314873896884810070955396330267793815693224536517560802779557220562425737115330814772975998417919871112207488905215343051935415477571348640419039127021810505196664978746203028979989128029548188712621946391459356492251793592376780111718809747102473786306709355422406501215091189270403975980745462378010338736098472386738364093087922519239317100881451722595015864024815055355632389247327492779329264598820023821490864790219797510312259975621710658734878961016825864500370463981595141930949525485816972286027311150512827341944286438566394336127284026519232767044247973829311827051503880518448132436758744620220050861361266704343130075614956064574231645935503964921198661328996435442916977634418284605225992176191055574297748365165410851208673968354738677096262819261562114671714384837260891255803610141581455537497867999351132590542214448397289896236588587395237343773435241641739359586870512872379146937434149685031197752138237380821040007518482631967316511794085723251362439094944403322622521962139086962273412220315501263889168811801721724825522451706173567069304098029698869602349754930927585405298155973768734228138793776680404199456211608993884387807090750512949651229889850696213478217669775362027024380600670431168045851997937886323498544214208719179053570541726928900762904192323241065046939268625893535580868286063181616771458560046891562704091921853555700549482718748428900625351179892532440591074646993307207330251847336787573699531220349722382982122331997392244105373079337601640429076920191889977942426232078578079852800986598769360330522979057237974084203952336759516827521363600704055052187455440971823336979292370454776928131847546096999120341696649344116148986423230499296727454305200415310638106347215792232575112424604738543811182497799629233301916594232931999203051728550626329796748207876482106037537066337448396029987992320086673680287183942129519915134260816925100748843008583292207602955380662377322188159877211989140406337896878065606227680742670770088103257790273219507237565965376753009477146747480019592360939932266756059696261875655807480677835795269033205746844297995498662629306505988365034529658598853877194472767918114923046976258658864172246314441728616993525553550861270879316908118515206721348903789693441432917734526583463129626272883986220915297629623901275795930839682912391369845478290369052037635935023558907274450501309915652523421224500904884725789283129229113900066038075557509421279304560984497111002264595607237985239423576372017356355938302176813189500681863684056073896840700822253154066659412259206114091458622630350600677331134196476550196008207724672553147979712063685386862875018325569232720147974837067005842143161440528995747949865298456549965189386250220028968962844573400190827331366820252191959633853878972969521997922080804264374214686319573906900517660899214519135387174264934833358691961814830915071355534059197446624271948495867264106457597070877560357707754766460612463238550701375327746113245288155948254339781108857735135561576172457141452838063120424848234280963585268719076057437038971125166336227054915243880898040919417029827729260357781574300999124201034622033046613618852741236498307554532954872568364420190366515964472361216943815327199062743278128770221735094238451656630131666073214626944786890795628871759650933161272423929570842795539163874443181296075397108847476273778643807601172540545843003350640845984918218075801501859724839483671178258655175472666674030499985305116505300021140799708920870511687429747302258361427345175360799637299944082212905670024423754537760842882374109471739679436166747400220634804170229860191804057757339803261068715119812611775285497830236995423263531653766638095638204193732307405327223064998214478950902594550204152120809325473345065056882863431591272127435926162669155338945983894154039769438787543525954258587344044570301474982608149173264366127463745328403031601844125075986566796974694736271595473143529242483770656871008006440429516686779329188101813979620604796376404434027401574212622793550780641740932624023431965561427098600731122861062258123719504270934820777395928948003976405286284636216762163277663611328281842161949574527072633468576110489501619979156208215538510365668473058443739164252278472634570506720126035441087206347678746249528602056493687647018493476489157788360564823336989243941822197704623160502544547434845941496281707060133224716310406397525262535419925087458546082362332646509296905519317913575835672088583407692768734478416176357429182275068736831313188496013251398601886413541654360632532976669551971402497751349720800612561488316428247789018927859866013076953347149059662663220451290630804225634435201184557046974538652484025355392957125939012755331362329672871434615192643163476559422001746953689883964517285355251537617745786876231339023183652706912392789973651980829959501374835248272180000006234058292241272285985124564402489802898830526385934363661045921408419777226346898898515185540663891057977185022676470560622161923961063282309483176810488964989974150751331676820732760777810517747663651479732415006522824981048071804309757885396599831459014259529158432154997932552586134274332947631966810431329242131146973439309631338276133623832378797497805516368242859654227339930123156165728373138378567063941125828075161092550645842678561784112385665376458673489666139522924232738068771169188021045387354072367120661456025490367715264979910897748161637011815113693004054023930369964508968124009932007071429637532810129376686659159179462708866155075339762318548032890184526112135534264845437080673601730139147615596862911498129965118241356366218621086390958337949196040097416044492705886880829186687783243860649096723769283818038681657049115517031444823269825655752903205884658168241663411993988670639282463147328189597467641623244220723599718172949154290928652962314480226288952376134454155931623486987749920454644081705972865402062224102324972093532864860072319425831029578075491921283409999123334162671524234618343549220891438606830188219678747904399401556998144274907369258314582328946383795970498978910964905657734290160906706676671713940219112508010888164688486234143872982813192968626578136406188026064255645757867643167342260358270550353894464434712403237771412563371699111100077160769950922152741265958357208874914475126885358405197523759607982186727978428001670135709271158161692271279466153538249977221144693980378090504506914666004943887468420754302716082139702391976794276037653957006640498201887124485264972646111529303591374294847400860280739950589791407355890074936078274424026600443446760982060486598838123632561022095807574997125486547916412122039283294726427212342830346707404263134022345990583119485482880867201463213537745808929393470459588230191648822912759325269511674537970723930322578941572255958336929835231347530955407186438883665741936615895082812457635198666162965916048264202179148761566022780545225007211049928452414594139239901014394189297252811580487519145786513879339208212122945379942970205836761514013739799224448053775967195752410895921805990712362957944370301424994390643454126248694282153240323265633342736816293264862153347927058751397087542146447576410061179225028810085961554641892040027702492869292325692092915893978960731936360387209513844486718008686733914569373445567338139781805667940305240981448719138823968672441830765621175565717446120678941274010286994511982617253776082611240431897281043527241026970374809491838774530916280862690606221470967806082341702694935256797259964083005346209908602357575935030952032200637202246617032492109341145314380009930123351919994591078356394092916600106235002965498887633356288888996807180578698897806229552095681100861172134099527704352177977233128311533011578956841817841058494553195377623911168504741493100060891492464086857248595107294943648641027951488268197636082035119670728993126577027535800897824601053339804308459268203277886068078140993997005252183889937352959969196304295086737453155341570657475500939439600854013704762709046773053421713435389546950408242408915305515165839047823297310202800021910764369399334793399422284385886649513972488249138861103994689641050617252810192339317702691824980005408379730643397500218487707913115176151081834947054043111966077991570140852260312387257344843597076184302418998047116143337067753512882814676494301921653200706173691126744749303590821336798750220997353089210785443546676431933094242255008695394677688994688553607261453509353228096766033194770809330866864383831854672686277051904295191093827645944471835974912680313766206902141103867303980547739264067164290460010439317335465864869177828202970284072033656742568447294927935641828202702784626739217597993567846501361371926612866049881875428999084382879697519946943309578049969362835321349400582212619214793800760866675442722597364372671180908295141502283968820366549277995226505726940948272018700875732708219670378619407707719231872803413743547936555320504843923955670384912904504708732307913731839722163036754755009012539529581017100843285477441279445618839296495775791789821516596182603697793716304560253942005118468286518089273092995845007608125549230328226648509604008133476648578752088503093552976127572767034359849597334082569811122413784092830742747575439998502899662743535136075088058618568934935579979707530944266220351949010224037391950089304785454440541223477388264681285860084050600365019182655096444853701868437071286488219804188741807395720820574785408882214777166710990937302148583702282727969296850986754938620740602371435942920392102647398812582898987633596643696906811775848381800076780889716203299448482968009362062160717422688639288293984323077032227878532661117804676594404094969355588846321081861139948040104300588728574031996519376692769535028323053536862874853966671732099098718398923533511570966198556251733506555669609669777426777742167015199686044330943952462130666678496413328968829958800071975352556447090175898173373988517328965893870987854479348724858898959854472048800189481840834940330963305807483111972440894637413875070371397603756468787600545162002720308892728744534061226839558357837400551374401805013218577037378739624528524608057930957919684045785738167632524832565371461375970003293290969129968051538262302912912484404042034178354584084587946741797520294409017680607856008564911250455201937409799504440413781469728892922091844898680942054025124498521292792721018577414037804612291948912352669015898561513535992673532251862868280546951450982299141042967602858056109188343481206257365086365838232482116811252916250035745867018008986851351954493850540728601293316278739083094603995187227791874413087018579709364260327242851761195329712989315378159638647774325835990062268033774760115872647929934793293598634971327523566507036091886425455353968491958817263930487390695405882358912691764167383135837108793611246369367046747180324012727766176203241077094350169972385859579951097085562569053315792032946309176208547343799523230727052926809716476448268900449714774219857127974157679822848289357233660651822687686545165294345627979837418713619848405000210581402051448795796488061198885726885105628027642116856340925365833965585865726964826694993930474743810715641783022359321504575863143686522924472891192888409162776439519417517697781718421136438311769084438929690833931421333633510552625658039600960991934115352058903120464496570322033124154377584176112517109761730359049147888266393861407357367480588075413100786358690852273113152857205884272961018426279575786001179941602636202301535662176874560304528008748413448150451133451614326749389373454323103487144605775390611487511427669085111540130292019058027548909924247429378305859926110778133538814524824005640275496478792903461807610371247373966246431905835552844289333994714146527095810668459139503043314062736422908358958218331621930999470749417746573112776467419318208438020362883301000895720653538860774334237218745821495697771507281914590165366856395348784787746023952444295644869007170386782822174728058701331100765802168048500172839084239068944626405742054316619079644148430755591879190249901850387904177176163369414421281060652471158940509370176201443841586748433826093040504589875373400966259128634525664112031901224548054435267146860105302957490405983440425427698170561167265989799178675076059179860666139208515986909374489202104643049629937377334837436361541156178859109979208576624376540152122225723046757991680653518541566586921157421405492665838685442136089489258548911448297315288665080008905948687296538330224508413243792374285490829754317932454232290299963387153899457195878658308549949526615755879112920732564685751471391981281175401079912209412581527536101963491852227333570344405134890295197992156639794449687151465531178718280626950821744367835700521574674980558321866899182992874622245396151713228345035864084832957614451339191989598413248415266356662200267737485439824972561706549416112665073043291815195576230183027170941466836371575124438864820722520691293696849722501950489034972917039165019738133369424703639726561210666441262266145953210218544372168564104034704925841277074775060292047579386766385800125262484104577149444753813706693077157530957553184899539576349300355068314520446454351541094730001085350430561369676804844196489419325568616100447616536401482963136983314799951907615032628214031769887808053767781310831357096150072829411138715150491985275248582104993376516077472507483161211422085761918025202994891631998074163523793772457454997995767839378437902359067293919942475183806072231971998596716902274630444658171711131197182511784204670562217816283699971070176145849434614598569804395021889469788517438922995445368096278118277935667281122243138817814291109093788419275220952904873486018461813007862429246775072572366065789810977046411087904302116701971501043628220029319301265728632603154583790277425432026036155895288983299968718264444536895551695634006005091138258627726095244543239212656270021731273952105587858681447999774578405868259982848702698449587444613518492273683919180125120581768624815661284428497869321095742348532110225331680530942419039224229267438260976741197877571713745597626465840154439088636744759049208236637642054110261364482797486769824305213707163026059732549859847658412329797273765221991071848671087798236738123654499741559365189861770847264694789471118289224894878867449847744899546078075164277404871246874780531089221913438887241490990318763281596813820808440553180698083418971570914441355107814522309189349464711179054579075959923481209259141441441972521064694926940165685688797550630606825161477349858136895236841214635292668666264412420061129528477136525915374887821019585181108145100532945748441873268337681045105446101762783377170322996202462499728054748605270794888857329619983214719602032130023533082390284019024289377086788966997179564894762039249939687800056072417816307703962477686546826706982343791343065998307233016113675934953721682886048810394269593191651188283540133477993783009085679161974600177225132940740766329008849079658597598123270485966805601025273789017016574151883232786000648614789371733919711262808973758344532728579451613444217776289431793845151907691558083075578940398885553511639665793153305279447962255375637154151954931134597884331851377903142863811058688456256425031868111695738018497537224968571157881781427187075155281150972536885432679706578717284754297475289061421265355081859130918919581392400119079205519351752079116459171382743249114520189378500297092353131535521415477368349917692433831755328441471343555674924845825658899881858291556885354148348566355091974769699586700445140674243227199647449030768986294194168256394605844408931691716398427717968615503790805675996237104494829925797598802768926401850800517789415898356304987530992987258633949770341556889527093338491057520990738491005395764299560912378764582413470097651447619297612338528201847869804289512581970724369878136225673341260986404071032854857566134675395306112553959616440268694351840295397585302125171341145696856575766072253006551601096574441934490562908818441848210759857780440568666723882369113256007600454730908271054508962851869459846398471468599031308415896188447269246775615096644704100997946061361076291107152370149829589844508075763012030093380830225926355868436233549991703777147679406527981043240395411847704989561447248758349179091224585057255187381959410479406221573012195527388540634122606523753085290287977187296122429645515598993572827055387651786797946283322623907187529001185193049001579888678243978802480485987439588369444121515550557118634842427948497748678613162870100810718879958930942295082394252762554560919698351279494242137724834203205107845188863118544624511241983382619612719317997964392999654844851557336606918387508789718989087828186905517265723357538280867541481462934033220893372086311066208504427828456842390471230240813125819786474547725011063564895830353006524936501739624520040351622634061673793996692052649641379947795561453825058153368308255432520578565707853597502142183143580166981323003586972423245347062232918004857820405649947740149475265394198401319837517183696561732314639655351763596298255797917321136394606663030345124590910139951212606947607434854616022861282650194696616303155850003536602610546810328722688622693410410321534329624089345563436528764045434022980239185144966484660702390062927571585938952785584932959951603129648497239199023462031535116933692309152564880449865237444137868282341837988173598345860037162068208170239784933735789720550136791962274923171238918728307482020033874453777239912613094012457760038187065771521825267996363729322014583804972368514354640824508903521529795205819615665913133135922351862782616471432669240921712153367913975538375372024944910566521994099937802786167355772246117392118878345966149989854676146932804372115974703549439881061430352137969835038771490666197365060612307879825420401215883321248965178546105714646257312192704499035443798624579885251074797798351319198982453903967492200298038831999907427748294860283968081216494114188767647616069861117129563885422617910835819537448696022620785813668427848447778168524237601070952757053309745429164826764945772984507413870250670019883429367868186077386066796850108685972936465669494579839115534668711496596892358917121020757444676804686602067971995868813324786199493861682077941389060965627254762769773111059089546754354068100088001079761952493829063116456025625191425571766605587098031904083952387159197801179337552272712987136763204742864714447336709277256380031186561871377746024091852514351122265424268258320466908788284883882010534345198608451404622754255733139862956695697156944595591889104402611920137274975265076090624417346555492936346735187716891989233423514178287023554166630181741940071204842115045557497217409317247096189396160879064049926978807615037210116388975418489282140552525224509017151671503282497917704537126299968131475577016644244361885337898801801542107357240030494043134113629411774737542214897667939833770262596032061145339663233234749815163728680761010994487550870682924073926206276728109016343929280610926287673145920292821085195033171481502757691235288983023707746473136183922621696149884900455886390265438599218890463670312790993413366419626815877353548248752344592178618828287234933453006475188224463120622350822501464544723291150131894039978835507610410690640135701872547794503078448163304812024842578696609990452563321517398963187725272833541533334729267592081805984971923279988100321042149967763643792806130671638872501615977004737222071988789396675627069691770264712689217908898010244441617303287224004385644941238693438730409917502546182526592425505409577888629344239965795453806600637978510422933471439600343484266688650069675967028658762969126455621553095475658937761641421605167310697205442595815090399203024221595296384754697187801916950998693925707455327191478698514009543165914421869375903532669094043363937184801499012860277078813073426553197657048407848471723099146928341962011251785403553468876346710122736487535069893074916643372863767494951903935554957653143668637010817058416564301753201699477087643290281036250511554260786058558101387682691521828046571939005155794470742163668026721583423299636345000654029250758434924107206489002839218625729626622392103798153209765002856401122352422331565454437446957229043884309788264813380342854965429900697719151809438655392934282192475694866289912372960429287513320360259590226940194044950024618779163223792652088122919730048328916831513473923848299719475921959648690037910135454697458417446485471615487395773112304387933129716355432002767727762208157410090375477596693940692372434606954210506444253232203075356508910076943731131124849043172974792771917740510310757062490834849848917697190765415984763209680290723984530859673480528981643313384578185466946433162443704730026362296570322345328279616997183733555845533982689614545941824365740755520997797192389547845041295551616163783432833833091224573080130524454557653928207964021963945057125588235104252287471701969432909799956389731414414712897769110087621471079809910448338882303832282108885172955167366651467926684538533633650108891188688700824609991297560491552834699032506846890279099610545183217572214016495784677822127977304545990615981072701115610620618102601391113388200787262284342508176229302566104375263958965568124778262627891136056237762310886239251873228290004124044679897013269680594057474153736126526298945162641394237244169357433961490214010718480085904050841120093359820093445439598151619120990820096359376393275741432728742773676849851213387240223970750184283683291565629448313192344728176894867436803725218721803711841727068331117147364525068694439878855355560212460842581799737423867126451953786974106272389720175468356337990563277002448856898680681004811488351924017691181523062660050462743504175592414197116919481169204230997817606797331248249399153401877951131915332425334188585716362595301110519177155613674523994702739094339430906861488723192341265789056859739215115343199897358044457450887835667866931914856360741093742630674764923418482659541115077341655965312143552072790425026761876132037879233858164643603249817007395645002954738129222635684539999950683861625770941345631221161631594780115256555004841193133886959431259872696400207730202391518007208622737196641033979362564991755183973626430932402043549077005957888605330600395174280488006686955835153354996333372855036968255203374281048734001525165613600189252252512623283925693222341269000858634526809187566267229227913921171965760001392609095181354383978460176358384380933743111139773582950883304398375890416338375344033662359673757776928467806706192612063580449262244942308318779470720855879053461761692221606105757285618587851930659499119647241509074521444747041705646444532829705871749349780142955522781446678872462917911424926865906339195900369997614789402914784666854864663081167859144974217658677486589674721007864660158115319252363887134471624841328189512422892401767720383643690334306481979494484394660524953631398557129904467900584078236725297827007615575100121799554273951999982997076362843253901723321996220118253954068156160969717175315766595925923350154509348041618522662626950700715110691682599363982714877328983784033196797652710522513167433260166482426025555985646391532811182865124265407739568309476105300519397799416892548085088380069361586095700470790661519290445895276106189116707740587092929989053916789692782076929927127192508976646557789077224223096971227832859920578601570061875151242334349090534356262568740974272301070926086018157918003348257174681775009445180355403338447517372152733188192789126862880355664339941762837853842495618965698344964292672796433247708886780423646712141744579609286848434447769766152676803644922161354769116027188168572389509350520332804787519656506617151663067000777858740802963836085538619130967828931183320900023656302820413683904179740731629751157075574029522447394030979454659611395627501355217691204522713540850204438695652789293320231691055305950507579757397399869508814221302765936315911544829430128192179120252722717547810055456112873762910397532073687953833761405077986883818120039761406144622320153159556192085285806035425786898312908133676550689358207490468364390186209533528174338475359098988702685775240700088556978266281212966791825726293961257854237644911397629550321490618775930314427673755683606473920760790937177944425641923369282326277564876940254854295826977586469161910856444895657694667476927455977867257034959293136645167677085781983370677932472725404438429064354815553105402525937535373786948509777354058434403111218690082389610592429571258415823423448020595005464003529843428897353112287686016254859421498511691237391745152528099588943129743927212718159204261887781212472855592175160272292577776765307856625131294010133668974787978179784162905261932853318091193500703878976278917637656127689076523285946625171993670679582122245438418595008723907111263638027271079099342729948482824297831768896356300237388528492565035547512182113367071067365206226244668026937023824297497650146735865051522870935642415208531381861768248780791965230989224959487457108250074903092442188913024515471305876252738980294229446593620140701257991279573720784973206757289743874000980554618127633866310342871790032344467184095776245687421564009165954820700687500796493890313467882634509850564409563228004583771803039218016240421703887710050623066950067338552463746422934939586093267838029628995274053149964837289522968099978225373214353755189218869094444245695909350880698728482340411134649379885918561784442192988665153847464890757040514366362299231068087317937309531037837219763094341769114652401083273586537941288627690632182340678064209443703870286457232503765567799078165045376224373143924412420146907338840354583127001572058963228617812546126087194871879523402874633754866936912812520196339237382745694821077914868206301232205520521671471333966739200516233110280630634037314361075137653755244659108476164750887791284800716716141026674212487070117965462176794029052199560877973454747605869637132500065272938599137490639481602187597460442089932125787843783156425513422532712255031811435514756449337886409681229544642017380940035782738212815157943278898364607227694258534156021258122893892009580606873948845838005558961059014880423310866279698461422454061069331253398445626939735701990581755903972164287846577620254714555092429202338576108262479185105933930354612548578024148978576559374274189550811766271495110346838531805226260587810235614231676091629849010271406771267498972698358512559591155911806074693493422468404843796356979565928475586624311548886109009788265286665451489205122752051014871268619713217993851262303834719996846434743370041101486400339431116193897904071264532040731796504961378693845971460895499551598562937291240394040906794148012288586190262033395488497774534903121129712220658743183994535483737111242246460238702407573405023839294872367781841952254987925366472067375149292546223480698266130341722591113853701097067690541499283934325858898328244976061209506066227298306016920533745485821923474775327350007008464830541041388304225793789437973498805490511459990764699415319975560876128757789217664483411450304820412505900031841365212014076162362584231624936604551741150281778060687839341664393570602056152404705782162571734590305997989983634956079525797502647721651625221110643797912823337874658506294879309706429754704131561791986972668622496767787829203149192851159331337755412717708642314768095135040533655077551299153363257449884649514756985533589317518550150827924595764390547537214094652033706286300030206580026661184775655932496374337207586666067940643940413519217498626138801366595034797171881126228906986537639080950903181558122631161697632585806771224497354107800967564462907261315982591766351612171095000646813864190979600269360666611333158839159294883035593313711343524950623406312469544035292466531616821027742330386630704160937640174619319091395142525019334412093437939358302997280924354124400079672648015536447965279734191147713747652238724222661737885374085624091400929845855168036663846858076441488138338415424585100228032623667492850892198374855373245189049798446542735694525623434385648978952361356787566768732849616073347589741755586679978191558202452050361555231627115595441308009894640670676908257382501942166428552029451851177247466406952517949082749074942951088936140917927801325773979991503382273718623766914923679240172127166726383114569902288826706892007159252166639957543387680969103169462724366179142440703567440118248166914465492323484845671858872804849122281366482077719091299042761222947141382083249043455202422525983697851118948989662632223475339635911152988402863321320884335939009429759049996098805118850755289970966798011268415992861446076957814778913987454509654449528850205356619109036745708510503280323103486819788566013187890341501225581878298713995620414568462727065221221221484126640757192929822159416142105144461390718449540208415170977051207495433117329059319161565633767182539985497710462208880171217045345132605990334857036518813437314272992193852390588500036590834053375607250840295960471693238108441202237083769372158875048196228468621077888733953001754520845694833822520457012899623805657386376797594698207725094790970706003046262799639933740921260693199331320074863292107057789718875721522674449157961185972210600417923924094075276181903885250313465896703010450186719273518738395278152338944136403400452860585487805771723684633731244359747229986269577797641415230058279223813593425935399390257511575867741330384025212820139891676996593684459702881938260822927308493028562385773043852720320239328504801072201270110425114102189294625225496575179065757257362116092187720805270197128829516716014078853456652116770329692360335343796900764754834161187476059292781495294235843773395326196130014962938016304728251066310406452888348280281950617373337904471726736930293098805868787962421271017576904767099357982188345339431644680378780392655329511589459535341808138622848754333168575408256020791758082550227261986924144684969883372773699069434000663288393189662311275865928141742232581752329413397854190745678055903503126490364543720253671761487887328370874918102680390521159944042855608772781590930368759459399557074649128913613247733462742426949740250164350426676093787660504097449179211505065656612865372919539654683599233548018358222263687137942144204344882062707935810566521196198252072756054818330333857091746687370825522640654548123876674575872073311921187012236113028002188499671337382552349610852089754332119340596166800672419260992218148626763171978488017221266482190476616140793858174358600342528932276892339301933015790139449239751703444365736195987951309471140482321231002367362485453672717718495134154257506236280768303576447328727239372808760511189809950877458640344266026866693568838341226423896452146768192728066893405506699757203063779754698469229405882166365579227523345387182550080071670459288450639864681308038404170646778569797252702072340802686647043073830988044880735440194596439627080292830031127748224179641618490670345637935133136074871291594748411685185805942684222924671772584319396463928227557432117106764211901705438811415438455721996548174100241119691997533558341091552677198227976508243683228841970130381632413501929528466456154386597586015810301125559327472338353281875567798076211811566772120624699620913457337089829320074319044038136462096778424040069651240309428540530851834588887787560590782469154317664882621508635549634616822676546054578809747792790682731962401397176595226577236826989967121977302142254234539718753838001413497309141719907301882597963539075495692752501992545286106909816632400436374139617410873070452685838329118547476639122186254560074125031741370522507610768563585758460874855760422409698737130895273391065607064197020870170408358785289225729958036506234624358201238517933695282439609529114672683150558579101567415726587597427876503774059352958090644326909212984585143808092311061844267929808667109680542744359352898140390990415799680905360456401422830026866682434287005766549781178663204494233586398888539589013251120412334431309789782597672376521791904819164146219100340246660047331079501591138613055283988415606518108333755488079458420450047531034318961078122990388518208476838785626841815774720668448437820791315521688569127983723369573896552203141975577590773936818069746123684696816440317410764847667425411570470163310011250718233874650826102139400714002980957323288535215905814331761618577825218795290423192592888376582683886617751747859795717992214009504550887198040008229405288759880075963306162799285721635050444195737837185392221655311374981619893888274503869997558623143308586245327235205309845236696700597444619156146073028350043148322255853182026184325707601170691903210415663521475659181554007320728064053300625662324262846023160966158267039711630194135233063722544640392350974193444611308455872830808679991004903768872675262196370020374114955321188486118770152913346011785655008356441507320007924181336903100596062453821061640514808294722833261586718071552836398045673526293948467996781210995646686598839509032182708910489352656364826923866899383019724456412164419638716117508752322701247470274851738495216845241904536983683537524746299102791527971012852355276153862260178652959656842270604634991649814656366683495891303896759812438801209173145303958793351998258748329764014089875668707962496412452467317969928495565372227531440262117040085514449958911683344334891978067837832715915399381340890389115975752336680459810952402237807372780843047812151605050671584984032293161535546014183395965147776470027012804607540053565429976039605548615249343920669686601186069084592880529746566457015243938011060129068560325199756953187971877256660345328508351671177359162228041423744002688577399755952418283341164129404142456883392720399231961706149297087618681663933944061754192500960907798490221035896828888367352751648765367025798223523866143952067855300379963349286236279143289467865809186566502734089416005796580537799748943035610681859398854376456365183643087338386948962331398952539126405572732613423969823161294154980949943972629395998379207495454377208528128056642642675325597315173629597202930924411271678784307729346329554162595542495261912698101920476597578891908867094697377226500511716181458119576692689158386729977734236294430956592759262587159266108786726626166351133054846375940027836905988305418592673970701138486056242060553508958781064875185600312103925689123388136416608310048763214004402516877598982273185403775507263246869771460561406939106469377057960804549720027571687566774923132494401825054726445817242061176751811669399705826035637922312387400397140946861060838761161266300469173687859985653320449001734108367474117614726571744183659624653397685885804323493722492157989190617774350516696182434092912871314590864585646912851137968407088011512859863010743414300851711943371105598051471243479767499623360422798496472251828511974799949928035562695526528663624225218496308297888290403953990806961428421032018236986158190278358633421957217941099470970387961467626392737400472549749193129915070959532339102903466407901519953824993609848204639075831969097166984537680647847844029772843158424420910257230335151968896659685041217301124434987459705012799717718170634247312317803930401979098645068140289901630450108254168968821073982978936767342332218576770079530497898431135281621501981680516400432184079788030881320450018253931957117110215246912247947237068111904032527025519319542401461540367750311064023116771440956273642910125467959061152963183945427213854361048364345177806317753048457613131779324859623306909662219070592381348148867990361234597250167410737677196963472874375948768633686854708104297922037283547651083518572679311031735830779409999120839065248584515799815374529802410951135723586702887349656593292733235584309617695883763714861154590856064815027838873754030439796513320527063222391140153807686550871170434901487075588894725797631740635472714758943805592148367465526093561430465081737909632570556022706037361268250046213556779489571003521634895093184805857426981632396499005030417531521042932084688190017715924430016821214395766756625372359905824774780587414640944195138581763374280009397795939699715062008623549872495446240076226397250602487761483914450490997052432078098733954879081522265261689369490551368484685573805710787691276223357434654939458794114453424740735004344968189269556459718449693395684705256134109819046845433251673091973372082241511110647298484487050176356280606114570093591836536231338494719419970208428367094188309049137395318866309962844830685849388609603353494212810164633049891560122342319813390242452642573750205893654954206308274030115490091771755799238580235038237940505046455635456060709785665294891993153891843017311746487209485376281595582647708123573483629435570452624479564333033219454550836215359902190089159069358064171863893983774044713380234871786963528529742784530675992294306479977366345766948052509656138914925578061089242041464377705401052714295784709782850945109763175230725864539798343904918370192530644752195344799040963869046115700422611979614705863608761506553477689566235334025044101211401477234036259431423366192482128464858149724423349909576674194206881953966899168492688173491428749800118064132764022256803256102744132555261676493981229682103274976168807196681369799043928376711363515961779269872117851721274341078188527840391801145245199679957619288432475214647848994523854309767057744659956912492813525937217838722256537781563891658320835278544054802480096413407096240593658713932642595010241009249543668339071376423749673080501499834716508073912750868829208317326992965292486856314046195115561266777274860133761494885742956606653553542604144531360221828314809060555022352661791085726347181375942725561667116098066354404273683917810351659869469073648958975171324634120865129270124715053204148845431468584278923015854236596597226709017474970018784884584159873993903827239807389240003116615541138528645796690346635724941847226229202852079985773644589262599681333695976866001384918775633587318970821036387902818382511592433172359923484345352741710104387935333300968238329385328329041248988079246491830582271878335958223643156536856644895147783719674016693224533782764827940206907667992488931079232519727304484011965125012423672776925510024523201096714618336947536128842596816434427113848650552078140264492349012453695679140870499582524823937028280502552250201132183615430746349372765880739634453828701139094909067529517181210455631145546317127535272242230987308414386228108968294151063359999938718479811679637480132990274982622674580561531489627056935087752129769958642623310300400623859519672588881879487626432234314962379569745849599435940102010226055680365400925950709045040558996355775670586528169128205865486635587910500191322979310327534377010487379459265745895385800974994758555718920336312436128987810232799033959845708783582319057030371522816495493624474505712012751966357763858868503731726952903337493127063427017234078120813056692382866363875568227818562691409882372297006457007705148962035008753228547869647713731137988221642171525213416818133137496361417241328044960661924562277934666330851248546973653488911867118120956036879324071297061029598131504690334902637499058916607660007529940102642902652680663305920325493588878211630147372640840429381618919977695148991079972738269046357816689181070754069929756847606085774786782216469805429387913441910332827492183079886491813732196067835389620176939194236362938259072938587927764925583562035271197445322769943861580102891859352202714189977016103669000023922799582830002239632119436696015332297874621522306637248457701458249906992851718228307891476597700009286020593166632664805640957589494540523314915120113609879265011430819839028376469613530012669786692509332102070041084038574512606364331688256269445775268737610647790033359917310821530591533464601221874929394606772066747782855027867899864873479626277098293737579430206392243529786807785661067583970056368280743186378802284157129357548895371024287579777552038226439389677188047734403905866185120939045259889733343452810165367731936257087836662279751798747930011100878641134704777496450290458052050698045063270472584418569241705017640519000149079316715587099806291683985345797774008294158037463509819144240873714622527284692151163454773132488202740950156640192514939119517517458959089279449448749094625559593284853592998465718033891285345841690130268492886934895156791561908874582617026068937143007921335014279856989958261112531600238639539255465644023063529496079970453334120853116689813473456748167994566800582170440281639121511357373793245141625382883762845793128520790695518119271042138353806484421164315117220497651821647763059971709907337268871136759522812887939702267049553990475408947074758404392823828236086517622422685063858038621305674411306898748078443666304606628684243776608072179244103009455308686923501955899707433014950379959068821070820076909824731924582675829818607319450846635552731119779897214303432597961583034469251107705192697904566015547706776113428141632475283627701910696112107674856233186511297709931765165184409807992995567941556246251121064318423044558084878927544061989268568963141776668998005318669377410395802984125389568555993755025841981090402858028306039096259619750209821650696419284704083108937361496239985161037338359885983102823490531464706038567621234910934439854308165279587539547194614110838582658237897111673575583733370365748115366439205056845281771873147645403484983549669106275041969679579973962315298268903510133690856495131000044332616842260020759474822732271950580948519282578768183367955143729674642255526750803480215603823398297204092026750044361875407407752094261857738272963769355779427861098104032196403174921822621228096796482436698104549806218392112080843218016064399628849241966565820697535547089125506229530105582420597775748360037714581393630546008080661396910088686462431198637389810873034859962724634851213411234998438656497304898054567153499073849906463771048011212855022791189184598547791489360058916466588223346681639528119127900442758013494998302550806619669032859407640193399365327609403531313517648020701136812571749713077161799201981909982168742212941343504981951945521974436082211940214793661542021736133789530408640564478761258778258148219175520147540746978587999901213460871938720105052789110427354993033292406899778012552610632667678211534758917056110802755826207716954779864046474355427757324425769206905824093031581356824009770120864399593767254140489734380784875655975438532926751686717866745113776324556100274067457448023491225695091329989344817243880589390591954521402675999809826918430991986752551802448587318364999865769894075988753207165220520442406968530441567711678714630671793919897671590712594816664785465102927894696167845683540892884704196404001890476552610896457550130788734188174573775080394861978065145894128350417027800306115571700131053033571132620847187800581777734975718665285094460859175018915829887600164778389856701788732650274414768311548733577061054639412495115975112429135519127291202098619693286145205149633171934318686042472579137848173942892044001491480228659539629502421160508089107810174402463398829674260490099404552846534192683686465841134896106679549232726274501054600081349937285479825165333776716365533089245171390998199905185746922732485551612177302041601755795003051840435180675570026367138824493536607140640256877225467446115258081964303600691156212061411156340825781919397445755043558930119890536282383308666957704499552612240405795666460349766416434945091977793175783908099812844520558525472766269653489095791556972008830279459326471338113539985055460875803539493784019886458276298624771874901137763763163845291282080483723117030269619258707874906636390664247721711843324488183351977049824320990326522010841697682728149773323714219545567642742534261286908440433591790607929369515332581544753653498885053566153595774571096662165384992864259385760292806641976655059752809734890868384307354800271545756739040266602085267570620794267585188540900659473391074700122283849380622269917815705749152906233633542678638565070762503275268011448287625505156654078868451494271653682752367521666492876255329102314031800501414632101375361068425373373155291808294275720436195837540677223446065001722342830930137161644983577827497971281942363510243221452175637743673288455405774603223225849165876354345298885617352978585439421223419828002835387491540108150334712945394681512033448829834740370054745666307168765357746406312371491444004117866463140784622755100816470481803338384208399111546784271005178115835511837037937852367537100858328913073210720570656836710896350155411072156766070604128821486663152131009560056499940393130673880539691604865277741324154953160979759041288588070228354056541498227111285291535883177042269660485660221896303452518239985012431015134534009676360310736279252646775486315586021854293849980250819411051578223499173082028264796377281574160385805146363594327648869655769025558403524685663947223032327475750251254654596039338134101114730759156085675422087302598342734502139820552295349264526646525311289620676513731921297546891234151810286528943192763755736975605752238016360162590311236066999068044675069403954559474303365505353033885263258012224035318705544576349742592152471452700128721079487694210233488314601269795679187457439090299718590049242064174698676979039833909202603022832148407902907524974950978565311595970186991647124187793149019046565758339147457151022862876653363234793155564092588255243215503640897753601693232537211113451445929281941737430298634695642290770775449262642802318807971753668664209616408909089659570309085116934063105464239464497489875112504826339487209785221852636721514378196689392967257847970661218616478646523776370184275431419743950717596778252150441242281811105615016685544427146292918414322781915047474032077025058169131601456988900566592615512966396748260547665860264714191286768380961343735941624442727046324074023193883285120351936360072543253719143149614292067927545274935146741049490188280365814161178603741456211652422148165024872680289054727179261137142903412335718272760184299745373194645939205502459845402963227110828891498885535273803935988778970190276957258272514409969086882028938645933363681267572606368634978624321188243229446587517855441719772622267622658710033408881313212585522142738018202769672540558850406599856904712792024509500184821635934186993223792323032401563154147696958560702905951653990821389045028565698720436884896793787784377717060891687352334583256686445808722849433004436331139956246352366603058155088763217334132617707782591736000552822558495183289894529908865577857307300474509542312861532524040308497950028948817611436675967322950292884128919932643615137490260765824884968029708502333963795824199870934791194078872256005838247611856583588382308597375883506484703218045292589979352725669834403346362234749262627676106547563320344049764220225235483948409325098104462077458776781732707700618566083890508536983484416164887315713391491752247358586461936570817016825073457858030697333248997744440910954292326155955459878742663913040745288201668480498386589750488238530094956046619586609933592618636893624500574153729767337537866737433843675331122487183839396673368080570581805805792513952291209587573816072516156115726377847541128118516113561487227522521037862176109885817130116598428099140198594047352126902092957881106477750065211029246104940069001064472256993403962625530346301001105272094951402142907557355634383946822784056684240448642009828725063423524093670199214646527187087320690510818766341060139055884007404509816097503569156196112334394453661212003563972548895421469131066989825063214276305901604775278016400938300632756589238990018011983228141273715408673743052790654844446785329967012735719558693683641366061175809997390217563488516091331050938187574029556586984870011432495312930142453396513830394184562991549225888864931766489590715260266850208539745169039145970169466158347498553371889466428973207022903593992176346813544159422923219203189769702874424437785325111568150591763480974686512253708668501106120355646305426840890868726186933079537833922718280296197865509107006579505135321961375896691251270467771755944719878785861230207197259335588397219417402134861433992310142127199573005249259442123472411623780865778528744944178267577438109793606820160925866518487459813812444378811533854395418966103014933087812547327714252720555272720503740057245597716374311090517252311677569591222277791587289175651724644801976599151661312366031049165945230160692637516200362376634823438682707081263564370174964419443466178893447173656537024863133955093888687494190234403249409396319647081863559863262134087459366024461928710778845090501506276046747276736230588019823493604863038474545522747441334498873962809221941472201875261840177337705371471288224343809129735754582574948912821009215682804699750551293449940581580693421023857150619149557345987871766464333711848467540883075312005603236319081837864129265500557487804228166071838881532088171588226089564831026270652325813560551198052143747666876191368393822066688172709086283156046868172186767367112727200257835123846198892083584361726528068959390097540916387955671106546445038288074729301377645929298742902640524662151801140957998951338578588865952525939164835125406517142639745448128785399475387388985982375329240019552758933431985820683491730656602834362004211342140579761843206457383392436132483627262235460556646765502610534629448082471393024560086047261702970771902589069726630768522607451857469841736811875786352832825469956924347959441154287221765020155596883670395967742967898416680476629884315614119600747592648568862360014554397011372290095251642998969531874081682583802679635683796632052300161646094403126360557185404000531026083199683922754332894084128355127063275922432986818696244170978637699604643778535395208464979434002028217017915030814815786679823032374587210387264807891894828570954940297130973696520988649248701895385080513191002709017653819155705987679178555650003164236516021471581333366030025983382398942017783933655378989687875205143437269257046076377075341256600460835306188114213151411699726968702167942922629372673183342943207772158471225334407174126812025878880919460632860410811409704899472166745508920326807342425342319339615380424881168162030009117059167114745759917011558245767776224069825940046293539342003276578857571556021192188352166104582094401238143757496079319509656311481360180021519182101022644194890974346371031518855365449214909342063625217886419849100358213353152022175818085346748605854744184504170836808030068363933777834868898937063029742434098733784255175117825827208551957830847898600015746776836475122872845821664198637630029881066872364438256893975000514359654326547174343338073092332342219827629606162107158333120441494917450533597080429993863014777419670159457647318660948933871821517896929863313488590387773914978201356230274162528722887461780157980122748963146357519994321807202546873477896809202738864059562310954785370174731555467315707628019507335409869660472696675828019557236324479932161003922822036848189476207362997344301500862816874133487238535500819041353156808457485347073488888837159909859932787178969970770843384784391024085831217064699345972868290363977726671943292098550741169617293962767020876399589384959089404743739526128686950776069684337714612556213127080685403217171233281937825693300247090071166378614756036348813795820513476686342203059268622263755779403438729547843384440232786864306334055553714833655265420567459086629544049980546176196429987995323598326595540054363018144656183627247871113475838131955964031920111663031513252879467537734508470748400212436121407460952160681601432255634906860925979443766420663086661491626385188479428149066206844048678584477161763098705120605092643907407747768178375195367078419781596713479705356009949964768822894637208393496782409523875717152405302635980172393172346365734559254496672864760609878762905973139126348400397579646249285342561305805779515607155694103223641783294377820833480621716628244819048155730914732660248293243462013077603655128145176873087229211136783702365033505580948047454248371267747587892162848742437575271146332709892357104118792474471969895040201684764830762043752633892705343937214599260341690146819170081916509952319612493567832310413051309967247384130348118575241456147769917424883830662079192989424760893958130207755933241777288704589698880771802193808337530434826084123995412053096922431695263869867921557212701944125714592709664595343207813607696803303113023258416264836282377921791281237099237609535129084769003587167339279560810652072925424406570672734460700786770498807334944941989560010559077152760529701034448537089926676553899741338129946141588653184641467467674891437880568997083528456902703886765213449410219607618662179299624714196235855612117635403965337279624063218050115098743996303688226726292236525271892111724339620216800406872807367195953738245375138034153970954743310191266426060647216947780100389584083980036462816601177201836874174611991835012613436872010219472848568332648187451398366824975549614405794110560914172228752727053745965429650365301755006470867153318605023474501655822282993639901394049147643383252153811335943479269775013124395839327063091605903188782286813898518721089165877739008097314712342172587432995179104675214936981434141555463089321951425025051341447578236876526302802257111194374033647621831863653878970801184863866694946091171759966126842513359598877268882269628567012441014632861963374194872499957108406333679416460297973897078202904428338071755082642340740678870286995245450446598248711953418366766086342895436236117218366496637600777020704559693007510831619837744136105133787649034952767543988152193910831921927141611552838755334935651700830613380169164023328487994328934460188225315219516121136092070114834642050404645495007209903742665287039694932957867568185258613811311785841087619563159986056414817521466132533078868465573883305133152362693442440690813559957362226562407480393477544107640634298754691872775254439684633307105822818394427319781181509869636638620368641242095151791157579157756351125313772478327512488400955807306093443704851728902081400773153587690358832864052187286216491166494885233074922554147095657375499829272965583980291075145207864845880399230742919138370820317196917139728607011472504443805429144036824931414369177790050513970630595013808863437848994237602312009679783195235576855761164335242405683360230765168629005672456458413309002413083337991965703693819583792964082251304436244077891507844318654339180778012939228077227193835171378268940126628301332376169558497054984273201675746345010297335658031132474816173120882845912465089590608670642841866132336947766977025447249351523145177502745677664499023468235015307100157851989104931481430086302294243343785972601809306791208048138879815286212479301486347856131620617126591224867338080630778604948526857882011875792203002410823684683795789302760240552126723989468297478773317010420141263066843643547975825494446566777049837762500857904091631436821134527433571303376297006886159298144438998485380451284627340251870893539126498544076133299577478126610074273292013801990068384136405161231541967146090376902039528001431756980971803444570329394243305082787348716087444003404929661163939868303369989279388526206951050626190700148385277261213947865834811422430068880318417024239880261267407104813688202232945120161052360360515956173383604675519889719879848413399303767759046374039503671009627428994868554030350596274958977353134171305606284365354708148846170257779935496956437414938091784382818258000929223304952370549816047574388188435607391850432414508194383575848142712913936451977589374751735210742651769754505856575625094726477664075939188770688017932838446006266311957397492209236385492321717936048157767530239034593534193121289622733071895470965994815092638847690137879420319571440143891789965569518578006952792634954972320657163542486041526949869977329038233567172705311914538812739223497692010756634306567899349034819928703677462429258203922434627343771296806639934704828598474928994269714000316254499581802327123254421384940464639382189612248978157284244634223451920493065875235201818700218617798186553269796051111870539886453757224402481936120816527452456675729293694182551002433009072448933969608431453209284311057205919816968981859743621839856408126215432462038794117055414137354697980355635115673001796905836372219633107174182547872867732456771635861607894203824422464593541916586037780762683756090135084759741614684027408388658169189363582877703195264363886396613261013647793200102829972207947120644827522260128242102131616150398844921265671742298798786044332369533208294088327739981973203870634395800655253338350639860675393717413943562440642595258407540802169546940431557612122518104906333237023371098035031930197907971225520751610714194187878275562935725420584818696116958711703611273467675704863278470907872101382042292332155611798751104324364817409820852641299972684316455010870518022296042479358623861076189541257586839183820824654968696566695403948609456403065479553493427490190874416284076827037899865865465268614429291169572882551968048221966588511430852507582357409821447069857504227824886768144929621243262876793374130495636791459719199874838711143749652821969055016786431346020667573122170863452176088788864072247145399660995340764107529263532528427266027533207316565291842301366003301670304004596755506872476284469535819107974032205222443957536434163828534446171845744592973258797171584860504682311932694935980885000030561543520894623202136681598455326051269670966920281799953542735086408832317153862758350978929379077892272637476656657068063407859710040366762845417398743986735985630089519482586430825348690325582308718273200165917357179919741827713535419640930171769742130081505872963178705929918615149449198860427706356352598653974862282607711282262700701613940357685265519286711671375909237134373229674526151056610590167970295568430872373543231382560757458086094327751894169590904072282879364255179051348225585449565188735229172648873974845621579185180630985493107372523854303016010363232004520030152128401222993384674953451227427912068975415710267644585016745434893983391573715290236870381855117841130455238719311425647456495177982386725806786834667652204539367654865461374707187165472121186530173099020068539969084965140771377874502293971155140677744115275898867549311735253521298681762886833080320918546716868558316955937196778709659550248012972626523638530949611076175127870337915456090738306291663973165918441027529262291915372810041577100429593415516169513173072649305331460802945547419128882713238000339071075415305487166022118624606631023791963091882521709623097571393711715903729085910132616695713979692228659757374186418454315973898337395163500759716625940589666489686615043076947813603750798069116251626725935333582671890182034878723409975400362626195618841139691555597869335006284208556465700358928009061648148195303368513100805424597812817670804096801566621713520119297354192652226246422028238642506440830802449933667509431826529184196797528331903200328460745342778623716612758973443651824371146886425442660987317867353415004788288627287679629325168474285868785733182018944032718120305232578079459630237343638605541625496823360904161463538351072327534456829338476165644345434958118599094331599549077428775666858706651767676737821606191187093097548726371079858925194695301434451106426897171759076078630552450950540182106936602746500744376051269609870557776980150602725206489225738546230959035416248734614708392772251541954107711657145324821337148382901122595799394257831185266043039975705352127295709806628004104404969921975632142231511103323163257638576338188152918317856115867979851878028990144119791926162527906881444430008033944811635120062716245853662860814278116505836174798171595877426955689205150519409105710648940898351806964279586814583179383248612080793367268566694197163175653939042854268515057250215179106397083505362167755617601228847440431993973531855479688065066179550195765328331758225114342859786968711755995587393090610730247882217696418188203626887629433755032845398864805200297129295142018594469569317353018083286042922472673968362935525656061631551096470674719814487935126286833957854937654324916208528980227821930229232953903145112752941048059629795500037063908669158336849550053449155379614401077298994900439933145856125739531288933202272847825678213260796699717977780277230509373584959791080573597051762596179050968904349228808087815678475993089564617817684665865564338431150533316414277105607914464202584221257333750853575524496598216244256565582035770188135181792798710107473869004764251992141382907486246584281090879301932408640534250582042827237587573256606384803008478234784483599019373821199321986504951412215438315715657582999290057480614360205875508534416530616553138444885070318925190289357196023678141528660587698326823312076983964892493230202204770165835383178339062121090919108792590734384475000679207414846194616505177537268664657528983585786118627557265782450429325070529733331920608291154633998046434710118304202946461338801977203781099592513350478860806083006750466201772157895737658496275790959553743489040898657101876396218849141649573153283562112342962099147986033749012996008779591839214857337555090232193329385189723380634984689281207045854633007212488405675778523999613204263681608216121803577497670045973640696249317351778418802632139647247773581266421445856294387923122841778138333061586166261198901940211688176961489855179980424132656289489891538067951763728173872452100093014546502716220952767006238763757281298119727072426180440235896011910855087709035867060374753124778636639439700115188104144535434916108811329944387582212001921910084518465565830423997813849542245082561475744376672975698993531807544059895914599036883805596546273567022735875300783355007348766579981160883973528428685976981839727278479123861952011956413708389984837117999992441345848613414584710909249907312565003462672248257779753721962491198212861273928482355753976809498275046578738198345227514948495679084894199301762731110265755160003187678178969561076043974887527271242901370692049284443629052490282259198234593563854500317013401468495892890246970791624085817410140860723245224083362589710416911228143233944215668293100025015537126531897944287635377377323220987403382163129401842854114562248093919015130343789390494997547602088368331466563749153821194114536012285263973799745556323280588001942362034386607516460669193788186175852897927807874274700316430210518898250044533439525529653993090910349305786810209533363517369181147136609134633284070911968864917519784725887832949628068858195835493404209889458007589924097792642126429146465154213244737482594538747816930758615359791387143453298098397449805438852267820856478425973406574897785059873833046146020016542758950895097356671493941858113654576038682582460276718381308758375046189173448094985936532617776152883758360144209000472312944414517202285161384473425741655072924186833235374034635536669258500366561824239834661373552401300330913383769993302632590164953470151500592617291909559951582343193506771221292351146222950520764677132405356260283818870431643607944136370822078610649445753074967864274195943085338336539315994505688736143462227129592063336642846840511049040989500141304395947866658260604870513331198893901939643548673609237420985960671163118548600195539414260355481279638196475697423632165529279861862028594490932947054475849132839108744404321898830293050758337865999328804945863630270906032184118393246127639071445497019778763870974585997708187847084191685005468859021102704946187187725079484635799410453537381619309443325977143032990785414177425754869330213608826097574984548657521045426476258270567596140366601547590324356374103841152891614155504275166685165162656023541918252546602015182195079599315134975604726965812366152891170765799907167946006235985044559493858096498801323393201754439426592891729441831800460358500731281212300183160092337464626402518592965126575140335549399691921266490259690170093742966056253507499025113863811471418997566383132930596646737055842511996261108225747356489566499283773533374987411147132201289833216800187402117617216611162812105025940515929312095292768443553348740170548290149909683336944404227337306109553879753221099345960286807126969781984719785621755473577965015133322986091317012886692319889735897153011013873599031225350104064579531370407140462444857722586530004600818464015916209734241326099255277183003696873709674737342803063391200941095850923970022675050140324253651210443733326309706830685060813773882644861357367001032603819507942684736261342506384576551231259583764374655804808318113289054374308169810796140944619517173035302460533036225204399231006976448095341934219577976031046595644729814933380529685875481469724694000727715818154095935507949243495927452808897686908415291817899182488950927672860079536244724370751973555520514802023103007415118524635769678597278689023306466211358793285333601975824221788653541398817306922292189700157098865006435003644066028772274818202080144740272474939027091961788478203695285240776112165451632897214610150071844800178101878964233299551202403478611715884322922787935125066371846589500414414384541654501333902384793336155248361274476968501126098448504147990686739080368080355484544549442191262138868537380881017663715955368390490767355347073170840335682114932910708116604862102850964245054464766780553795305532038782556400928160193426548031051461981966533369206109838902054234577970093513558116958346913932207345968952049791318265553474732655444998002861019233506019518340951218453590353417950971082342689658659040892622831115181130732507325591271530173406049789863140968388485396493371382039868838618218668370615376772188913779439913352981829464117634502953104135838498732751402077789023226582729913368166253728773933143255687370915508719464780609468551268741367696325324134484284235921731136218905162196065801395770579332857074665804764861226137955819548348963160724171200998102566202707249322343221553408142862591050052928425612657240079343006944664208550644512242010412600402343374492841194621373813286140812179445152668158427628991293384951268586549193679032950539539400033610691778769586615657992883122451005451528570743048090556675737002203835473589539247858683042413182489909424908269190265110126859739050026202109317345056709349797306217529140659728465314725943381931092977154678116526992864316952617078365738566942805919977531376064052116870459043008368787461986464833486329253096170030845965423164137097835115377055344568220608350858518613352113015298379576756725896318238244148050697086883232396581771649652387260473109047285919553909385896816068457926077855360275726480091933578620519489121332430545237674047872654947441579021360503459280475150066699735166825825734800766321544344376377647226984821158498097177266755085213942882032141544941178856759025734726047354820313416833810698683954832310431572637233740333026723949571723576462837003036129616629216394247222257371892023680938928411361337839209255165797692851771367253384422711308619292110862533504986443802043504569360821710602728641622564186557351348473710938252223820594758883351924163831612626004888631170590919564324691735124399411627234698911782602277342872405449474442865858630529430697356313406883121729616718489026524236301131816589822208292372074236313760835784963709202516776791324136357407596819628841696796822396321519444653083161790648802873648567040485838982026203428281058945428965790325381588410789678176868914238377898692486192571257385084204676471200032537764477407190575880574781069758456963909885268059186654828766790935654233085727897976290236709521664245992588062521587305821599569024040295026315607672505368361657984487076398671088609040746683050299298413296616151270857494464792451652602086579740950844453681489295349199902535534562075138777137164207687719169219887565338276566087495417799222670228427722956472905386710522398126932607770684684271019168202500084860762730797064116714584880335019306395835879889182423514844441066260765897361479734201831251040553009229915799180052584473832240714378964666147726933738144925075711090883086880151552897245305162716919031441684720109889498237917570947214418589979340417972992208246594209974145853474875582038223929074995802463489325231662179460863643336811559669711644867892167363342192693471881351103013600569497186790986670329339766332589491104433881436287574240186023930040943674435938029149376039090731167329794826062370279317894796076928883603059517961539530301045946026507082575432456133831016895825638894716272376682364849647541279616931385708174160932605239861108004470832742836903781168465092450109275554178345953905991626094021925597829273705606537877086553502382182972367360323067534805625259880357189961073946490675053200580524741354569750698327464021029313923478811625755310569064739346098437148260403783229511017953733954045366537659052640248066846954990188729632142658547994348871913438433411363307962211577340118294365980399319029830104691565268103520885158502868070532289971435589790958298701120000306196569184020731375655160471519609937414622338888968253483587696451524352590066340235034373616550965369997836382849086755909824146226816312683931109636313942822827636668349363439515386852175725017114799614155180084450856891244690355695747339254096147898690065142810335855299301643669972589179405562330057216423385800702676754333331866881118722321291679197441333080333994568316955456849559175087595277709170153500778131500175048148046983179495032055746081210593656089690140130747260022632957580388109343128604397369836928140013497226038812998488421769578824194718255702275231862545676759709548921567843777974641856329523147108542397452127813891042573641486979740151633666236858495033146217644588285706297154594495073023943606664919484309547021679081441352160768565872952667127736834327266350739040118817734832400816399241605181191319470723060646440772558201872207789086752908501924300880005309783132470204693152995990002027229177916887199153497603502631907074589170326424175262512082878633291778756800046740333008261328440986191585625379357726244610818780721438921058881330893555998415211208051354754962953074764219900448145007765331946090220187131115569879133549990730543522522102807579078252618556394416652232287415058254854315536933417187322187361688267040393839933563208069955927381213536979125065254553507435072093821836782076546410394197813312967341941312669734908276787131682305918808987955823683866830879362132559297809846315957761121719824362693571113241911561272968690110228164502484447061775915448005687314216641697448588062427904153005376807028536387993754695361952038641084937145281132258148532998493409538172968167590002371151524168054708780200249619503371802715469750933961876920756901709519821793841771608151698805735803199157494766495674076174717365827301767967618591914802824893368355421224348125146405317937101699209536587645508787251938839067629102259649672209129996823839701544876025404917003426407486249558465612201818439950841934450027011689866971594159767876288240264349536480557591062180575786163584710132095735669827225726574021699553978782838666623148650374896273826493100419816542455841573352528775251978352006784681234954989655402030797824691762487394195350283476231966984346120145933254780322095194026789735082000646292719303566827339595782440550776404241450469361354035677688707124660036576171214135037823197020577213383716276395708386727830984873494594541081270996734296395403532855438511676710970167041883759937717630864020050182193960551272343570056484945507008894005062258147989454704149079925540821027592239699978568132232207266835078392056632847358542986241612270534720457985450096262534312112939958545645403426352640474621763153877644853359903008009552968459058912685347325220334810397833953052574484558818205874847964974264170423434005191607500752518322306329775450960712903537158636880856970098612870935619456655864354788390114434056799839149187749911211006766664648132271510149916452596745887132322221381524680866070005457964429093292405029419910849944633244323547835067381391426856094195819032702036876558574121289414409317434215969712058729304309993610846668900275113906688918524222551116162844475815496868469063497480816904508835548002765679885353094782722927050789103075409999665769320189408377695095759248536108456358753858621341459042297205863138576070091185575853039009290150124478471781377872780568755030506072374176679207206199959958216098667558348931970227333080829624046763709175658953744130874469447293583091980036026773068944357080505522306672414990965175657610131740624562398212512989265958028534957717808614003743166718078488904194141449638820008265502322438573218407377593814839076468296301017135364150781974918865567278940962753074248639395083286273396065737411959870353483763201837515767978520894846462716046724311275431991229649158467859103726209191391190049041105355137554359454269012641317122829558608347998549800081973401491709832784020096332956912283072656009340836004269425908034771736756461503948537338542693532463304485985394350504419157453332861816891608759442891142240822738254253245483274799183725053628957483207542492262436255969485138226079061101203841639906023017582383732043722784734975116569605874862659819204526330827220474203138931480446427167059289224513408878481993722369297892441505195252706960240669747466185711019864459031796406210796443873681886505345203868302811192596965432740435729419640877807792364398811562772829269188027987523732923492832861859086083826356117905934262614858615250470355768997796878062107167876699224315849461349025052298518612289946460803950191423079566419380409094401242476469742552056734592432768670531042122989084098648381943647366685206308933371297842362340134561483072284621278177329436201369977864933289795292002344945028056138208714861313831770104439503380450411488210623523191446376093444377704284928164950699916796601409808507717311462707511813541017389122363892436691484652330574658122500929714446326130104804369145928830749741701261227309460360287392107012909076255938106961194433167770092296150934334658618459460634642141393322014699725955455738342133110168423550496495029324231982200999871291473752509140321711618836966173266222328578997335350208358220784284996353447971727414884213169807394644291960551855599932365325321835039252145737129306091703110923855437137269954475731713359422124398939384832232592786289823196973566619014266323560710272412715251289661376427159828624571840033513591343261055723939961970035502924533158613185578025622353039516643397971667813588430564914123520849961289265577270913814320050308075057345026936818380321133094932499662435644862206660650866701828210142688350497633096473909125378859892886808175698999441266113643633534396162461171477181250212783095564682074970293003148014476358291351069782410810488199221474879752204415838074359460597165951571084582887392099960463994083615040010570247616395670210183241895978527887919295368567747181619382352231195665526327498297022363154789929360614527374962723778213111007408188252450919734751474687523389905597613123710898516326439227002737768952477745940265265453393497418817333484177025762460916536925964119188736730995711120570194235844123182607762323126680917103115147625847719849619424289318752666036394505720334662877338229113987938896296910958631884105718406437279595695501056806954589339652319150141808847104464117685434480909317606154053013060054033286602160964480035821474254216753322212781198683496279393461594407303571406317600106241002607641180356232360507942104284954761068236694276127365144417535043639297492700908436319362780905410209735453349650812631466635025679668585471363703819287052392765047818407125639042710330025188487576998329135229469628606969720904333360910455981947538351766871080558330968690780000110805634841237993745851765917873484661373751693922903578013449499221437903997284507215636470111123390247586676540113168057083409707830108612229614069735080443417947065340026382712511986302311125305201967942112352341653033276289997117042902766380366841326248250747551829260013833513699465572350753646367020318972328267178689530973308026055944833314972076204733113121166396312070083829998625489535435400058294270893628702207544571081964302902667376651517976767190806572150858428655271484840370035973673617857992803492975117129055183056613721452872437808670933957218819626378025313400048250201177987947935134968188344531741386420616706114783661586539838980532310283870458692731732116491453776615508080305196631684963537717805144570518295434009564176322601264061381800915762965691898846227116385349580904050814750824634343897585885443514483622251287007046289926287042592020382359465218337548685676662853049782904783199172668404110874811217142864739491869259393503410562247854406036343841980191868206101111359676814237617437418628853031020384470056397592921630108292788527775219643388439227116381003998449700152446752204936043849551102034285929682844992122713614625729732265420275134120560496069250423007453480201914905054074286470098012771348008657413109984369260005616126523998105749570352190020580976902788829024616414145483793270737187832967849150283169645869453955404203296686081438529791298320467065902469567592216206096999395444598056907200090079830470349863337836504450526513589920692085989502800840800520329569337999200749348321056785171038305699413675291107257597142266059836123562532643536850367045221138291460887722607050967285068342937595898639402452675486512365574821067492664913277690956945346626557798792526657448835213526484484752872379293850356366932119303215383160620372948054546924577388500053563209117015531335741099803030741547934666257448450839762976556906495615779467978486702831966584757790282259587467527575991278639045656846346087196510870725390561505284523891460808049430600220847211324679604576999979429099499746341439578036823239850915352357353709494649293582885536328623142738049679968845545310793917288802767493504574724132963251385815992414721017172278038663648200635540407810347601417605958505282443584793726226756774553279743818152064190134879059323774832478108480242664868216706537042648372610947746858618507028735290602704623299309166550074184303389919325186594587678282846465327225030709386645574417895665096455012576606481652284893251812596249599759847781398554464907587755366425493656301311624710591749940842442393686014189891023074498490716706947195703238462705997623870035912068173118041988428928944685411345546759699404768838994795458441704982111175916594309731501670400159008034324982801683278027415985520215625981711717237054863470145838241625138688751587313931803049211244162202552151573163545208174330779746781525571109072391968159111993062618844965827028393866116055004454922298864918039766181379304717647329193058648242033318295532810652137476390970377936398353729332108517486995442288204607143824184432120968843738798913505718002444988286133711934692432113777845503438743674836077709346262977648998430518865053970671780344974446154623883338077067880415300260161004059411038907716072383093027463632813382662433068748534423731420485843061623392396598412672881845972858698440778408525878363802008125163725539602805091670529881634185546553447365860776212795039103284614019304519479019147257347881275432885142848028314700056494336904593092307767858139879668291679498663535132226668392747935955483351956089951561935189427901804909058330251183386336490304544489404447033163592523967774657660932232086302680034920116057522371984313715930043150790787633325204595850839972404901747136185379256539484432278985796735440875925402510055146115522409634551041758500952284645021825721585324004174256004934878253170962747441877216564142768008151358787475455637644748921728046337554839365182913372001411739281903078264866951225115747424267230707386699588883780603046553311447881108247330945872714886218361915549256704589519127529630010834479424299951143062578284858090615789949425284221419548178184751123373696191275093319778199906153675538098179963172628833793186211389198524540610865080057728622287861930731771340029580007010138045327218867440805237049386118128048501795938197799597279866201932125687988657104098837517634850501060192346720094791249449252815978545270349212689823331497354400842214022257858172893332246185210727818209801967653033568397314474125303131314778965382384690253611389266983859830440533034728325206838192637973415607499586605039040592505713745311942471559940361155378496998312560210305845441495995957203382900814651260257556382027031723603501846542103599585801958391559503174006060662902938235225892805270650242709142165113673779373131074961475133180148647131356106363432762491253709253734796297670373532586367440506111832926550960401738239598365730994696825655144695770812812455174201394144637981123329608907542361900416102979634284866695428700947971623347372307024901579029374206563000054040610693491469143266598518840361739379207897628041496341994756475976003162225648730949877220858445856517386911981708365859691355534046814623203916364082740132345261517720770334535164922395091704847817697319418583041389548502274884296345057612778548682127883728837248380677165953723745077845993058203127524636913475961211032624418231768387459971737497774988851529882893618988211320200007026993062793234087369884781370068859764226451728400976034311940044896340952864547304005939528672676444172691939295416836683487269510533756144299361682187730716994867353999878668562651995607931082323459312439348586117512495808943539010191608771805385822057687002661897887013312766612009231369179226259129364471847297645341185977002569652145772620047249206020392192231490799830320423421950337802999483951355511904808508178929513061874583833939995395182295572232049862367202814979408023447608833927903994280039763727027466397327865923636048988038518375425996322098436455552123598572115276771065313947860720681686941815643801448818169729782597490366899803366963462332569480342310059306650251181478204809829136168993988592809740878835844854529487970976292319981411650565439752904010319751998014625461842204347705319910317978096253214130750724029956604094712036663707668822226367259803571821067432730740157979772247445673723155476880824253312083605503391506916129491237420772150524553215903367821160442192514013635018966951274894227076198395891359597407756565127692784447695970751312551055720154243923683011753480886388778386313692721990902491133535691659896164579057659645064001704851129964065161147526821709142544621079704306746583164479034912667386991745544214062289022226334275168599772803227316607352068692845074359563587808728240838297339101391467943474772001727425190060874880996633565541225295898477858530895529940521086424763529190815416777346492430841171843982089486740133634915001679513661784140960173655065866592494479078781304048251404293062304872053141114350511057278618904371184080446936447834241781702960561744757636659944480325818402371698543289917586391055553632179728220546053917059281516998622669007125009904037167719237663294213145638912325472419693575403612005254866518296450051541479958212397091440813468392234977015270567353586964321110176915112167482790286030299316349517238779396952980706192013241107078146751128435820538779864427884937290618099652310879082004307569839912131182198254703924606275735237769987108703948269099929434763200640597655749883075132212132929072526211961621660899265430737843717757490375578821122026729560572985717604910548266412005872166579623697088609268050648770402071615430778410326723054121829952127985004009429696528013379478717811835526368128779361129997822081638560266736793411483740809675986586715828937988461864433937197528242431512862201948692844882558353438186336872426493843304420292674999795751943169570239314087002194557048163044647509733885846660457707367263909597833931877755375654607412638890948630733478224111504219850018541890992882582242632025864620965059966920142867414698758999087974644065220816808995246907702787951696068525666207233775245165740612484369732645394189207128996340454756200476982658545707330770892317092494502423982499725405517365834622735163822030168401972325399070737823356769510699843983139352405418331608840662387779030063676387837953047998803441028522641813321238861161132320965975257391419563452641634147184750123852163022995801648557578057817542547235436465767391560090826894274854932298680804627946689077522007872074874131115049969253508256087867659585711811135265852739817938642521735181934689431432844651297522699357163105739695145829469465474446150500703321421173582036012973248420115926421835937796127491767842335956365462409458520284248291470499300810196562532325974329520895776346687702673380223850304695545534289912269083445522237066213329169294496411051992339293348723525523957607633663244254770845230453878280988262801826764951577096535996161078763057402289509940342749389274267685891287244128413486798857509039047232284810941756352212313386608979518603396121372229260103863477121970475800323550255529510434248699032792697362102801260399980152535989462224567902146266279795009059499466996034614076895725957395824078713287671725010843174895245843253371513910532882352299136826928136923471037778588387210953652486087717361178260595923058501183391067056522395282755651538856145790822863196606225087460920528700762259434965094125342307391394469292163664635420053108317613519031814529213007869944724326201542648279815888032726871222922183936199321321414414596177340223201155330546743462955921864380592681354572391134043571722608294239550696800805671027717470859800259580716957708457119821581016616125918601080773919836163594497766781883949523246654561535736770285967196377180952259435261129413760271902148482910352905663819756667874345379015505044908813951766787283277109300359036573206372370924630260715557090026349669597116763537445888611826374559027438177126570631226164856588603115196259461056569600783034345037696570790876869060693661592669953415948973032659184222940941436738873859056635444601127473558168156421290847993845089987367918671538961469176067269131731306864297013511119306042864775488654996566940223934868804380765640340849006499288899900719337569139067264275061066586848714513640520817568926307403266274306519365213567949433414219900849288117791351366271513460988068406226355556588664444057466508982183299823187337658005728098348890692247649504452783082396181100817595170432335853285938261830983461133578690262722058521393659343443786292643708219782241790369769977004998270279727292912103406693045852210520488925461057754805202644358433445201346099384979401086633900916648840043547798154967618837011523939626809663450436153653923138596240773950749157605692967204719667047184205286975777247554873678643412722972561679367131489935216628829795534130187723214967921392416147382664076818852573787795454180468896417881636485091683904108480081103449579695426995199738047094524331415896867662537399288157663204763904607886653871166600015443749393830417641256887453130367899002531931805705260433146098863045009249106044353767377193533262087401049780978313870814173020578961710082197545331459404658995363692795998869489793823521639364882596097910767697140759173046413058314768822675333177684646339089704900769313697065959248416744099688288322165995366273622226657045285865713813291416203798956369501470655240858396737637804087593196679016526781352845757225076859533672331153236139159922947781989145453386837032946208111439982885626459464620178431229345172463025161840534226065317360173738047776012655035069980329788346254926628735071182780190304238535271862572962882614042042573656205685050735398353341653332766108562090305982241229557715750322708887031911187436918076472266450059424311315832104284329898492706413514133058690880076019660170346436879614817216815638815733002564080289335967963881008549691836805579376145271694589367629461938284752645673914429189595277931962728799200641584644475842329033352941895754531651499167467059856477279897949277013838404896121629628092722528868055460954342195917660176073254482395108615650277295186941817122175148776873486687104145117139087258955578171355328066065851425906934539639104352560697917425735396327060023549694164433001098238893341349940151813542844981420531029365663264392864866998952292603963024525577804304068280570979215318784966312720201229315018011600746732649120814490676562466130589112853129800400146062321372239155160398635555488227923290778338085599509188735889562802502931067191399618724636219468851632444488510149314238370792702453468230266376446220180617330633681447105717556933720203579983989318785522839215426749032642599388175413125222699671003150259220316835591850738087141886301688804098552822131375951618374408202066767205761112527756157297093265210572223107514754269053266623208238480229293909623413092320600499256550667913806661803056180192566344944445512040171556056976485786087711528503850761932351886359994306567562502234716650274262877071966189833748607488263696430577061731117682621038473513513814029339303939482870420231093829130414510133670606376322660877528634896214663782080542987765872313810730663384403607800380436064682439771336587484772718567585965179485759668039845141800630346293936125836088949571494179682872657714966048729088282205030553666169198158946243531721842947764814713679688726555098275162196303861741868245117417154264032098130897485917186357165789722059780359243294395292927749045793999253526791130446968411311494562579476652199123662015569433275147884449150754165448729090015104938495116072475289221524968027584057665908238731692721115010811248651429439093558299623857875432651174822848180649601243247498211752473350425640372649413391265706200482791034969844873591265490252782894945278611543301314502791655854543726696214821905966888657479603532583403138819343845862224333866376589999175348524123452998851044882944956935810553565199669641374294873630228905327084621872293791952879914795731485404884106870281490106622304701935789659264769648785698293341299021626268927981799476788249155167354079866734850043016275518610043728096692493333247998638457433876385900913134085105490027179355473716559721579277537919815637743505764538275220563351199207815426911799333058299724793598630336926582434734360139757252738349496662752268514937828481011388369595555341185280714125222894392435992089330432239366615141644305364168235946241311749108351535280003275339231333359001629149127331436764199818242564927548690753632093573483965963094189934712094118577948360554055285202307677928855714396507603621654994290354296294664908425327156960122855730954994479208006086160773755045098568948152066028839643990767514424432076133721029514135154069761987618337010162550583817025364213075592642582224838327722126392949283447684425335653077265722877455486052045849290714000644646653529342796325795124835483089712524008251457611973894929878168291661158168533914968057846946487352655368964671986800433517119941598255712320250477928855198094221870299371358796102975008941537084949543345319616073734419707378724147193275619520319383621714218357906487843679349759287682404948951351231727872691675242279487559088207507996775005649436079344691194050975215049551433848339703460158452171729367971976135712036952550487894245429055798994218675633900931157232547526601862537067267624642835739236556999020393236014254347273285123419064626661861874906962744801997614457695402220567627833238348586616162246965871239247249411714718682678503692264971667330412723913838151185556657641913096778696201637839881755891397695583966157497561876934706102840059363561056272178611270661447879301258893934730880097864932143053613669771298517778174156080659392552934637292628537641286278541518873824276796610128155723826903301009214546559190720951699834758215615636594100496503986042877479743651598659592174047335259662669231887786176429915693909145167406711863378372202333075409447125139889463136252334305307910428126678449915604928484888551157992504380156949436461990305246894876372614751511702518687567510550429186779341698325563769161552552741805211883840619812025677720189594546462214586895070482476534369591277449527981998752402091147961003610347833752894539106661147921146146029352726913593523423907264142397874667937358784760527465464732473893258938487947003677108441251755494049568986148972756732812333228156301985584832049678300141309221628108990127740325332430319337293285614011811318018519492319603111002517696626102918294507762865662651449294077874694385666849848638048582938534784688618319218962371215821726467458278893801288185885761925693025704107536688378706929321876750886033910723852699660788568040939518662898534582300066506322667245013099143060593349601172189318315613498917750975252551939312759062321665457735621351502143545795997583749876490364459628241701152884673198408587128713091302640658574801278543069801256250410086360035030036763287198960332562616081727431997232746709972025811374807214602270797397559929640325318933910063071602014717587591242345403783337405009221699339866206765492898171412228340843989691833764704605172526543397462420998000339116830003504767603123991388655787905581834992022100090444224406703021378861962390892315575381263275881030997960231374424937597936734292471971348449639828092892856793655587481772138271355787717947607852221187559224984407296921206084337849500117242451260134812003354722001227209385514324089672292291941646910919653623179384640208915108644456565829044602571645397451169766342374709222579020697658879475781565217048393789296416252237243954481380199977011730359777517619862924362282507895679419656906876662731821487041316641157354411581810533835315883437616804843175479527747473137861430964258614218372483339136761781513248534353208297979575196862603040868085314638281323835561394324441563192628910263862951483354263399233318445977596726119694165910806087549282212282427544992325471206280253149593922393217459276213344914281020333940449718455025404634738954396928269026821278440820718404699847736187138244205703107364192538898926307945654407898923444952122773111529391920329766766277790421774617501519677937245890460723212526993339094622085704766303773978081832886592266670050376678545155775011535124920931975712744179454810573926286877532751204785687712022771121043264299695910251439044582813990348480513217108229837379978236427668114166765799804949142674880515895587046155387344407455449859434007563587139913951727925216444278578949095936491543831317359992325234877085252909308880657755966551425156375729818450940563571609447801490960644183436881703581408619582977248184138042639702746031590441247042902689233017273691313464043346849488736519861698079430091064848459131083289828144712410780719342718839536944078853427141210564678005542769310321538518563718814456939449166854333112297470453091536477491323084222168514764745657750672206271025707948341453675876888832870180496059500139812561294362871679966266061248350898031668126440850242418090558492490921169639985181232375476452058009646759617321169497574444291545613157513754806007482473993187292196158625252680200361676693780091813937596519173220104532066742622367395484122631946237190864873329372663352924487648508537601444529907380972579063682156107256202845590240537128211662443154340983439814756578893739410728945815737231414039084838984938694178008615010190497200870163559833492736718783899801603710397938767280423631066106597127711357877656350423422586796757804652927892884677941590699282440763474491379740462241280242403295540474110619734587889045909668866715995815536415405995726127198177811161283851339091990577589975571984108685338624543283090285874352705499814161765035729914814993255639643341915664009808323172528009977926176275527811350406476740081677966623663561371962316349560246984108750855780527089903763667057892000546108651567317492844988022065296104712911576945934650148964815102423159774230260810687464401032328003553992140068814465120479822851995303260243649339967422720737077691082885159588848914334911895919456947310450891186553762939753963290670817004708241323314899450958173435408884930235965494651080216053284000531291097444584578394751080658326463595594002978641201538953441382324063915350314486826620498583583779475620779066738114604009453322144268919312241809803675887759157631696085561463803330118433773041168183543309703733774037967590446571123556625283305853639575324193643733460558470862259416851982354444226854468120369971000742540403893964464103902241182728338907498072898052681971751899343503492305621851230825263339463442825854318109696561718357309814192244857277832209714796252916998467904018731978630311878207369833745361271288379234102631076151314028797285087653337233151175065303226797861253669859130333082445143176463063887868666571183419450693252152344653471774158828019925758025120483431746976429614215085360858496978981136103025504982281510324116675458167474924061490102578470220976108910898211242554164063843693724835043128775229351495528092961860207898189985059325755326527400360125293590258808143197030477014719232891250505421366136954065519883603113332432295041105929079800518004803889493917417458763858395679123978202104765258700902570424179724461137156218793040835747983397265488782467697527416629216727957656358124428311555301821594572982143175683104814669142875513551851806639732834088103703722816620128361227635916180633401551060392681499834190134256518499303931317765095487726207696508741178102343443743406508772001799737026814461055718934438182222280834394793510056185375145798899797597952858345092764840957563723235188704279568901962774116283242321075857066862427545372766340571455130103186531074307003890839865164895669562399993123828889193732460974217802969178585929336188788775487463422240411700833122457748479990605753169728625681855343217977398926509364951808065629092417485677782098201637051725930875109102745102128472537250007178797899213652578429018501790806647329278537216044077058922794667211574019663477995268497544549415959689638178622097480020616134790684871989022203351526616073065055113702109936919208864020459674541032387911556895329395576323088219068787622766238458373128806612732231042599897885117388177364494815995095029384051820863903201815682909190902096394487234508335896718176298081635096715593427384586095931075005390266883013363736138262169324011558539762674775090358929983976683987654944499563320123599586941807236026064918481852699367227916426230585704676057738762078712046430159212570176666361301098867810894182320918418049495806067832479844515023132845455450744313840347172786403078499125803585305532412673518726785640587047877002012638437355752178442851476233276148134838993362174554700340441229071385838975301603104961811293723256617669948182156711629146851748675617179376183919438989801694720868288698025426525304714214246788681105472662155336506718504810577485399005575880774663485164969865291464237614752760926925610585638607993040949218915222221259980517635973172144503559630818132451940951718090654366266152836356923400946150070183946472901694003146859352944006598172610189382879062092354325618565597033778500903164506500900585526779756333445120985833109895161681694107123837485431066569861809413914618113849512379802194727129599816078621488038561669238103822096274656246757355718777918634557198022666950716757576616380444826804026581116681837972529958371934463100386241565210090857440513540878110698570993778739993788332851966412125963566945511746411434654033381783038971993833927212981334612018156415066195451893590709095007891311011291605988707432813033821933510053775018107750894966890800581438766056896857284094379916203313495534347044533020482823715240155681251332603017140762353876497893250531484468333640073768803543580351233080334562937339067972543142610912390982167919710267840525689526407484127457213901606464125309110918062297131479325039583637027184490515857895518200425931852917218260953294639300108375202742267961189235392293411387067579513778415526544727857545307439076022513824530835471997208721683530610500652807327113109990152743957440936936330858631382356648799136549351011531066166743637524138119604278656945521282727945926722001911477422211444779702879623724014672600108640218736680857329223980807543653736198960648690956982738951441706753211143450278098532665445716347393156627989799303582695800292170753435531423611961459707321399402414400541638639267075400845321208368792307986298542039529669559136644657942422106858801711112753524685872774069824047876858462980266824462019280522438343836363971914319293046944572926270996247822525198890767542934224075676730158209573535799902204359667891246411305279141629471655410715018807479963812978469826333259558392116795060999126880430687040210626238745762572612680487150093512206350631940238526049574484973179296578109960734858972372556863812272640868380154001958869800104154435785036285939690592387967708071590534410067204454271997657842741402821652006939556479012528196536942630519561226063528702164814925145626140265289042993718418468462071558828784122038325490195507236260166689619549383481607822294291726781925180820744920383286086681833411047005507841160839365465172526727248781813886599067442160514178913930094657427140338533184734607287328963216880458069531368536859517067876430178905869073277117796663712726477793962159264857008225889526909902082811979335109131547291427489388171462932243047180310019125742429330939928774539719320741780563688569685188086058015564597742619732150075433749097225402023493403571366686497320464619285396680901759924692042069858943080605318849805725566650818171533408480210319942770930205714782867929339914946366142888452219956438960550773377011933106428802529729634454342592566639862488167595795504816907071358052271227117358038375234139649289683877638122572830929036597429692337084523210144094163252659050259331610869328066149788068523540829243540728840783899244092403281025770764657405618995676635970764015205624316585977939979016612930752790155794285931645682678932070628004594381339150108930059173541455162414834386389719573804207879706122409030428462854047445798118695565892667452352225721850967116644827909607236171154448997013716724848258773014940336721764936585022874799848257908840484201105997146582708397365025016577942012849534936232844377304861705506905129735650492708277615996028433682769482324641797532634651625630306992377768141987610410364391762921865127159416119592618087813003097054355772890202950770083027327961556256763406533342086139751166268326352861131863242224787399965762931572307124282595387918309090410528786037293059260885953470068288110533488296595815754369965304656113973725373696030276199089278657034744997067890784459636506890935722765768805986919061739908043208712343756745430669867521261319004709969368484487536429972817972331042623408006049775085770990978622881331530221794013868840461857950449937777088429920102285650491291264064407160631879388532380023279304073774977930643383089950778981991744598170168358614519643800901573351293215448347132620533548603279329094853770267215838914669192903473747286704266818005952339565781467143033397636333324343677411874291223116926304287050517107480226900063466787243680898460986690018400095007733722672232786814930327957270722345576413085973802867550373149756295372895529594199510123353284184407711698680899681185411901078736408750820235176798788005581158014192415287962096132466808521020516932727549443883725336195407898627955723647386020862194194419273534571860630326045389642652179550442704387170653697426329213155014636623406047220635600842558763665180462509404540809934007430001828593062318178839144366111417122864477412970390132617801031775212729541451728136201259542915723641319822819594745417977913938604402820688281737174715191381575393831182045847484739906740609160313386038927744174207795935939017034807259182794250339664180353949243230763065167222473713467743802321296285849131092922297141195112745017148943358067130334507750084544463477316403797066381642038745353570231448252185335983320159928520881553396271719470527833177714848829139032235134349686351336380999339011479527101429036995965394335259495960105590193990991685881586117866796295892602467181547342667356996889313257013135701096656021747295552253252791669166814174278517855262296991062871437062083074433725908056224383791486357763179969239722006354122114186173384117406592026312552308699765090603272531555345356092530822990555259123809759593070077385074194794209743027652487141491191995490895026202748157333300620820341681278221625173566905331189331873403658958414764220430221661269945124438459822534552547576164187278370325259020052994135790470687063827064082805646895318043147024461739096966922122807308551196069315983717990365612421796933732279637397847096580973434376843404437876144721343415841446549282491316811011538996909708940632908247232871026604400409771821000862853281553086429257517025804595500962446070013971263208651949259851394162708455061116663927671603420833879189635240698671779023398074089876120196134809559523851558844188225440512243527721810177015995791490705884726343177442301551359580856788180948742376416052294676759846243789030627217877244370509132515265020084196715407864123537525383744887496427714485161417169535140554061129238341979214178312141838349668073687421307615871220587985619937014467295515044523742210561425125679134494753522097561426097334746849009593976563276685418283962599798689327120926212079511573739765041811738047726977798060930108877391736775677821005849873343380919797039109760178518516741265476962478622053431110696626929970908119015251912926817602187123252812951705215410439282629684623559056249827187283989182607546068053887748364148023825904048904553455626233290522027894317578899045925583900599965088583079313382491974986514050935531517106413442727291486294709927002175388412839030787541333455185004181268762909072342630283682727306171655260113143301550210419572342884724590245880421594548385296540709590913619359525056583092157004801911990661330855414790244993116510959040309231790220954716476529571146808697280228221831378463893603793998480595905440749191255684241681300150295725302054171218262577943409642727372714456077977149470908926644726394771489218756590570319606212283047721812032473904160309670022481254770249111174307005910219055358957412690816506604919010910743263022288238262358077624050179879339659282935695629780590747491307067291479976339540265504282509637768669349214645410442371291004642614001780781247576249226417446734508470639536968055125796795754228211581343363555827811434382211719281604199502231286338384138275378852884141166256676591603883983633784028863231222612468137761495158318697347263860760273237913575444108979227538010193123349942239366717959845589313296609102348945116821917933804826524377557853147070515207661624635724781274320116584903571438834281937384115698284754170290383373776917624066829191657454588981349719896488226056154068919667308566107678076064569322712776907985377312489368216579469171153720469391572165659871505811633081672267769077867544900673066671720839016077920725799407476310955508475049585171923451791475182695518882130163285466680515388841246516855936125307026671365977138796441603579301393076316289138138760111444611085068101484175631864746683231108008569856229058021538338485883348678317636671816132056654018535828908096873406670541233369143901726024103579198772012815018270319739707332618831688758792871329380514402781969333205739820083785876236924677927241632845070892210340016665603707611460472638586770019014740029187554656425006753561943523606250364527350891383662073242207876254344618490087918820250575712976318739185730481647423769630023809687066833431124754844694445223318984663029631239823300606062112890810708358393429702738674323398498319683061591175588334925439200987513371336916360981372254939314557906103797643005848590805581532971979406524747078668854316631108104804668752116817024245612628231319048667685914389527069006904898616052122385354966122060063284320979812514821382518731611100714777140234650392190843115654730619462178486738949095507578582569949910339718516334961603003791851410888566517882407875574117530737470949167567311411669710160891748282324643385564399444164906064343590014690276175709855508452028195191563932868302505742844305317980878276554181325874079535352986441387831729423659414876594229893868355881591079408451149051144743976305669180258140897612873881512562086149121274857852218496271260273942377753614054017221494126055407390523939011149297093206576810270558457215036872488868426278513716507073278310279407763202283777740760874200548456901761107494488914074511685698136735586200887767652562986015119023156502909201937462577911313540009273258268626125678384631912507272486134373732219430119069873470572840109837436615751899207475845079703187349830932154592950778582195519839845670398292313522774833987164422485941086729968670219793723014976181345343602308025299170247484424462489640651907853649230408348400136189062842832893174938827260316689447216354202676183480781436069381032150965551873976537154756346407385452543786550489916869304155180974615281871314927866577827384477722119960721442880397176180382284557726414686558673490041531780947773334328146189503986998746817432756377603946665790810989948030839043365038278871524336841587071193828377469731021348987826314369121771979629172398975759923368538099374028893944227568904573484640603346144698048322470468307320170451526104478599864255345496784018585051292817875145208391759068642888528864602233528879251895355495932414992747528018268465085681836845669491548715634738646354443673942917207402469529850348592932779065055150122223023693510763675377948678934050153276080958435529930111876585895354545996465783987473755162538278016469893310050172235843960460288437115884618552664317500863135564632683120641611650474981715859519057808551022583600068520587171412831903447179296175385347352611360881732736469151405070340889071957182322875691790523725015359129099119878039758094053650568075252212343724224742286978923843805068298607692578139687531416303312700697625724035937058501644205418503510235268848233125812071499886209739239857994475510507720395379652443481231834702169964543403206489302934636602366996480609727735967627398311884660532364752848650615161368582738589624253849491822606641485828032519491137665043962965657595845958199003605014210044491797732724064701602081682683562122109375296684197406454363218687714311888203861678441531617096604793127726850992633358898046656178487603822715810830531810682251571925689543114764614801706538694046221521232554684579386806245666227580710247484645764441018344700526922311642211382212986594058214788749808274801291885115468124962170736793988340268757504136080118025496313828796510434495072254438154515482977555279954412760911628600938675071723259489408234104541242130939313528758175358561429030365030868008145263418864337402523900715816571265096225105276364213295031841683965604900626544029186237332959259053462313165849185607079794179963244407049847562164358314247144788268701357176415939942078227461001235129484499356553433661608585465919570102792049954453768269959175886168498310422812660802685708614159618543369792443604164633798764463701931320593124245446520387141712361216645453101164707393799544557999035286158032926454753651707396321272661633132412443723432080741132888291699482272289962673950155514713765013262232284154853222583092660329869542892634843833397645495456989140243332494139784080847681525226591048521830509586334729575658217974478748254906898877848369944694175460095329201861992087337724396590582104020171821836759954162888116704781924134607761296547994633850857593313422024372217324033633361021015021933773848254669300678881454478870826898296657912449890350810025825071150849292542608946308086667396951261563025651815799481185823878121522489891263293512481942088436018851713798583324618445284342605583651105637245632849805493020949075080848105983911047364078385466768370648997745911607203005304015957407211486030011623637233365604902371944276731798403565068894452527033602977059176252406262824486566311175460952673443091529348613107821482746619444641028595388000847149094331852127043370551942004297538428525656813034739649469014097079486960257629198879995156444629826621437803141233019646272333900804603407081705075407355989787515528928836994745757993021770795155061076505231117569699335489580538419023502234011971488335765179310754631578729180038120582308495953456873334355419839372240344903866226122720137121819553579711988124574733210020643367620420453934172316454214026905623044439197286208220154409431663864764354410507423238288368257543179492724455818052634939340724561541779763564653063625280428249051485208889976461205626726455924834554954186637318667965023815686642309911272414890686839734886677709478451753956589227365066456315529815910448169979306880175859274211785732072818551144118683833957376503894951975401796897967111328054955010716263112818513848837440388164883266322854416360917917037947360169745008370561608581034908450242015409085430609125417225544918225292267672664102232232341828355565862690628386071663669240044714851262681602486567422476074904565616530360422665334540012310572586286370168428045488711283017985999318067469396455623622719083440458878120633445374917152669203471697444184681384947576209757184342581457244993186565529542584003009991616348677025484844192563034663306965391821614911360092918762434852898717839472612251834821699117008661760009710261473168136735665010828449499395789103276320752049833800520423396966702220151142580014875996407603886338806811255970552140204459441516396426088969611329884994360044836862927556419422637031694336197374275189388860074266593404996213421962789578471047772241773175951812831528461365936831059337668566378358381526538340285216186563372501693665996746312192335333538353302742216795416740055227834013356128107089404987202128690957459522158743086547643697002401822787288382163643455639044349767743042541962785581350046300741360258687469819772848256664165328495083932893403904667462666377119758153082125472037092066215484327765521609694180754723520447702532142259757606210887186830123614580030916353511599320306659641740018320375145035550194685725327783499135799050327178513992264471380016159162748814181307678386354091671152829026076989891162775636934075979959899165663180019076507674599366817609805348982708578057961941575282144789383155307086888610779185774390930680495378013983027735262292535869587135377660541149011327189150169056959869559973788564760912627534534807678172779697612973472195794687650966552853804263347047422159916688990718130110203317003072592988323183941076031486301439692231195207230402668023842466240033840649049644632200994104258615490792759366736874502875482631972845246534371434531898906303876181133594467724895416945904785060478542848527819457338552386885508039609924401470415106761283759841602836753115072269364420126778100413445263406322730365212092881936499109168052652924977243805818650403722755052454086925738935264463721313846445102338185526261755780730023186301870564687790362850044663364583418182817382369079530653114140922622921866875963227401857367498233500336772214430106756714788397500886859824414826165469023095787714982051463442464535053257052041801196868027735773009501974656825823162601243907875636942819345812287879671301824128375506380977978853981842076456593581936798039747804354159181103020217546358628491580017251576418173581717184684572625869851423090275290801775768337029980023281976557438600875304917202904522155007434773830304580776204717356272164442692280373057553040295193124387380448543663069828907374629190578457305493980138999967571513043857797995479026724291618150754264951559170053085086300476943257338817512935716584513858610062848354490676338700592788736492718091400878731600721713289974140683983190289891744117680128034212121905389185030164839945834776200041940656217324437224894057052375556323849297284841557302330074614313172150231787026935415835008206076171126055713696141074335407021481433056553794127271793981816096836647764913827526784478186736192553136967949908994752494272516622557993942539618097285335254997384801461024556824800067746981990656636605472602644358832620850644424265996852386827952533182574769475003675289389117543304462379445251820445922325143640141277673179173747779555898390794701867744682988195630516815888207483147449118606954266083708587612156166293339119063413474219823633010491466527187115667528459754014891936903756968322969955385243005300185561002798896005728331108444116765513249766911856496703284739482716235819802204162860645863450586837370091709267695520687117179580196794908826182734271063281990621239676704785202798388795393942160808244485650269726393386749051287709851542346671021726305748004837571917958732135981120678597787293215820869999092770999262091808573609899954826275518481752148721672975230204751349389107671244103236560744035516773600605207943685470392065478061649970580382175769139390764382086040520158701796568682184771727311819520998510591529493789470774569892698042062382129678569926169537800295710754689217335119033836577244287173238426970072143023734129281963732710896796161680345984554333350915630952057078906358596762593637733491929671292312236999926324310961188715223394870279432237932415754886190013200834914079796279921703679205834896169435820735159028136347030488310876183808383764320691774789000581825451960723559357594173410226969046775858439398844175834932146319740810223883664203598207782271557754144532563475670000159561855977707592203204002680790547449211394032118585645848839629747905795513989719294833244279995644986115080391315444504827159211250682423181517519464034735411130931665430567897526484959353199038315448867687254403798241132131650436864655037680338086750619862525103282916804257526497835552366461716421418304361406734329551355420279812111727200866522054827351892428952462826579269353771274222674072139358693900272236478328897624776935309202071887169888762688491120237083342533597682237114687820450033288797243518276190259029939802067044974826935874724772438671951814999765842533483874310866444712258812907736207743090389346126262172836775864969724938164382559234157548726806947309248386811964022266977657336907722849718926383561489507118957058501493284275433832863890571834191499104525747707834983949260993960344750115801062069540741935389805669723209793774423855762189598250518563860741456519852469896217744936848125081091308267770668147883871709956009047254992021850095353851282594153263814265210554348663634285730758600664146933513470815130657063579922414495160778361945544222368299855944897829308690065561588340022671713575553610616621348916853358772422352276512963617626948833882426566070819690272686744904435798336545178457636472342296318006962715018139009959509337361344711612585874296761612111383654985284114466024498333931621449990529770049904689703794752989534525846842783346011587733329183056671532642190000140121004827198154922539877072323565316608532524328499937903724654165005085231397278601982573084120612950836051432215491473207164302301665762296774276626712610241884240751958556962437095700435181952403575808544598648664187272417720727389571089983555627064669684501527963548566192668305073672175212551626274410717599853357310491893075722484815474824307241859311325024265348314316920076887624657895241789107373740124574543027616488006593891283348640494884979719832262378058070344049218123027948469734124443417233188139178999440015879235062557534142014281038122123601491988891999927343508850732075929230707968195711485757150069042689901130536572454637627387987920668553640285364033713624176678970905641241898108433472216795213644817969970190489336972300382179416824385158751263710267670601641693182861193537724746598880626455477419679048227315354219542401080037878315722513822834932019286449419361605700492433527385705090611749533528036175710011344595571089801879864156173750358461455707931764639391853497064609239710663762261371614706406621776567854087383605939298787248664525452360292081107819425488582845848957997285253104504641340504305347874976666425340114828342490248596034911536659323433768936172338634304602508165801007308881275072917249170339390177246805252042292481658739315391657531947410618110148030722616116927163538901381702404070100855799603545493791073076501530464080675487096689943734248972402553556655079812600642163357285781557770010745202318043990909459663857106278844989100199962309838314025990546234345408672603583444294182254951204667741768927679443753618180875214059611866026984250447930366809497591156477822516089620718689412993963166929305618904364127738773957941707310279586842891102009444040018749122080538631049461703197121680497566839072949381130586336545438834452687858431921710171067446788853527259270007985113761835415175239469504297319833963629726433545228758052936250789763430722774599762249293222138243993285325514931806385274064262112619408021436696379571527980330609749844861382241131818795033823508189729422184747806608022513321912809233890134237854240260540886868861743429895796013850136334528615239879319306252693258625029199177910331746813788101345406349386919545622369614292245135070523593653903036301787345214272793329118502169177860382201454051063959157976685864167702476324627629530825918098410373603295536070297660276365481028570230621108790797184518443321147127993149447615679621912319281018049845543264078839518396054520943933382379016354803268755953592519795492093817267222709920372067932216903430289119660473009731523991365176366389074857343249763835866523295863877043684096362681028632990483707069118597299686659017424303237128695432705767435650409191460613627418105131901597436006133260405989741913719479520183858442898323075088174532128714398100587348460957008371650095371820266805283311777097865388523562512358204518051071180133306755611639515606566578109344522055635114289946677986076216497561961534902283513382074205601557520001033387002328349188697922288571653535910624574689737615016951382111883146050609448423395091646123517685531875639950010744203542899229050012824601954966004847707459595553431529964054117043680427878198528431223643258182044884129932281133575089878254369023062944513832929018496647714178870635784702472569947186193512326777806413373990415067256563403793570882289841480213456315813325057831836584260067098624253010935422844827419827196882367272383650612830578617957561847709391602108683097182908539801753918470091666233771417159840740126971366315730648750304506948179901288620213220129737067960144503867008586374978090083915549630672561102450242251015516508564035820330894117335953424633002277966075401084709475502437110452103268288051463083437579684638057815313683743271112362922983070861912070965336322443769160787655661096019811569596493279727163824944436558403974394566031005888122994982790706935208398745653861750417600649656098870654247912654393689527802233422169228987305637602137904537981074839393357850547825142847737466573910959047452217372531964721087803349296471512901382362399945302358342189419883066632315241813608098023280120802303881845785620882081572114966001848526220441196361839539506077863858808529537162174834034736405283005387407680455822822725213281959976172577011336044558235018702118666252106579458378743422379557723909905084408991123851992754021893964566281862094601772445545177257962158596655686733263591917845159438177650293402628001533019336903424752107429463405340071975297904569392792066161268485909731293473459054155310506361853352805682951173266093205165071354207208191452468077050971663246322907965773497171086193479020062850339452667230670956027641444284999983230321069112154158664470563151009508155190955152179788474031173299579342749426929750403119614056655791824987860517634728075793793160410875786661686104857048234005487233965723757454533594480392874167653292581478321589580119656390022377767949700144230712235966737694843620958598247389994340672874191739396150011058063393708186882027333134981959430708281844114287014426291985054407987358409949649530860319959774445605974456009106675679455053504538002947669848884185539673284195966678962815366000086255830979288701774306075521876180496943618501684498638785622798635838495557668352752358989699422055668897204140028893958077976440354373550332958951154737475849162823905094799042895746193436493672680959898370219750085810815636363179176183603931195125926419926733725232996035766308948553276355815828837838786894875152901440009779312549664892077278892257036839890073183496701808604217401085457163156101782908809060772366800529954590468173546627900517255570918778551894093781215350513976059966060876548224593164157283365250822589225959773690044635204722525476165428618857832426520171205696072023194240175825302855736805627648014863467689135935576392690711800130869426321422652346165747890922479879567167548167075831652251305527879326108599037751326654207531051196062471423071092012257503528053019334114505600920992814050252365698598563006181026800990711102863691969477409730223115162913586904810288205182051677099288535875834001550610773522705662757162229372053262300171496983780509850991833099630946792553184786975131177323210303750800830322864549760213193122760214250255613715487498566864261921049639464711202359950086192907484182073931852266518134108827966552614664787923828323802889664616027261418207448916435432191607507307427101583671955201615363741105815059407784132764849055399549296376696899053317575987716374314095988312080632493460187448356557059138529006514725363759513534718933056370237491921389956756183126057963711278779495925817731780585015471177845139273496256148220431654653634673378728392682044324164476127564012387039070897160307881702162789559804815209540468537253113331690554412960751306806918251203563001351169301578626962150834878348213252364809151665968305162001066829343654410866267671464385164282947975976868431004941569839419120635077517198173611884549002316112850176954660920376144319123844213577648604008353149229034370184634291419800673349115758571516807249151772124251160411506722622881712895433687262904225560799361514348908000615193508615220746080729341131811051112556006320309089303210320567864051148898850101019871038363858256552829367320906727759663708156889243928683597506582830809294226033027766413336568447087507338286944317949743468535262773176673759022680331108433596058153663567333619052013909947538559697551521178434119633553655698702029908270191032098469334149517134925713728784710366334268742362308931386534335861808804536780383589633656073377496332975740723890741582900368293903821747324130627217729007438610749246879130196724218954700884996357998710451535262003111769563180767796130996092153168011999005392933352496121717384818929933419188437914558604402081790456400664179157002063474485728793326493821874175903929099448522469830852789056694614227837184932593086450953339232289262794529671514330972770971237680148328022426132081113823238989352146844131535922299006453352985142954785472862945509502962219167875815556179595691141677112951609683644629182227953956318821044655627443821310117683045754108854921346627773786261671531218394574661900234935081582255763333632741908270202195482588802564373000494997371340222778885334145955184374576664135325270777926083196366106107256676569176788733640161943699705287926353892645611937763565465540677743030802968174366645576439877263261735402746464961178987979553087469630823999808359698454776751679005219087657522323890935357760867410521979308249404758233401314635649168838990495387583493398645845739653504687089534997267061185739824449782704095468972101786416217660756559459682579148606926884706705922916254609202353254539536724686685050385083359763212659536470115606632471794508011653435650581455058754121135242587493471263777865486187349161183401506328391802816481182594545508709044443795950773829083546495730799189929240363347513242555293749399714538011337495625466151339581277394622833454574525275678407515959989583159995365163623893820092942081571107709100530982975345547156169271103844986099659430283987048693800806955559387822426685975387233873404832161480269138198602324236309277197123835111054104705138687570233230322326101276579772878695598568782588378231085239608837969081161596559418795200104002518942395737455736868021559008844650835430130936882086753987008685967287117391801765449899777162944283494746328643944632518178097722606929592594507136115949848342388014365399082039524619095797156791260874630349643764970412905857813473050896940379895208770069579353659287285223008165507904798986401108177259193177393479972685241309024134850776894207932147797655061329430747008328686617465680682857473939056324824176988723445637241926394540880336145263826811028170966281160515578094065778047353278044085558648215910713675483012871601828504003011491906958587990032086065938421183508827250627588289002938004014896401763143293726452911484621989094203604955587313258098847102181105854923020016200341455929496376142187106543323827148458374272507833158582003121310458495192757587512032156497250929582547431413310287167864789777793226107397347703869908626605565699117764748113369457858553848982506318258970467706635685045585485398502236349033445786809291895039349513169700021349167418027383969614216873356556558203238251645680627518052928292736597289310771596073884198615183153286323185195062248968411169184507442380950549818178621694754850218208295216273487238906812731919189477184404771093220096523650312519117341739353077763331740617480022128772633809654160550639762069076402471004916293693076500989115892621104748982348860616075709633339095316621378383027526822023816082234062637844158279424447068395605978438414134257593270569260769915706314391124854143541582222769802224719743964422974401457959661208255493391337256904730877276710552586934696087351313826041784412828118718701394397008691871817741941828025309277386247934285282031561072946338014491317161981190149038384365850563082920809275581026791533018981948256726418814725877291739872383631638021409245887844253586261863600576583399537691546333192213736099477976304816940370434765233747477515062713431123811773581086993864185729984114433362028042542141522601285172973818094371327985759223007372164850639132666972884231333807969087643723466601818794334871130730678200601952963389964263986267945798420245434120901707301816649239600989566805848628750550658746138669959513567007903818607522167695528886771584851169873615686291944512884678389366895127155565929356373006659363287133486200947308826846908839637644606519044809554606423749626624927530204041279489737955467379714595243226622622046527186456589344442777677940213370290115439243486355500765769271850409724028057508226605988950922958340820672695318842849049624814080451120338113159232142247361836456029409370000757877700387524107126099761164411029002765761709469636181971225386272514156509144241271063201209736513169675056191888647221067283855758251378764747528713112719916755814293481230957148657729374752595523685176391805174305309728844410451069019042884783055001005193721958442090773292278935419049637902239888539229911509438480035045653270044268810803405730225838142577187560846096531248562872061996898665502748740555466122009941078936501445079251479335505654208743546104836333229590303374537563170324900351615950542987883146985468478935564122116789383173547003474415751922667283970509129852556245902350483782626516931949300474859553258078651246250711861404433177195814235117198291957212253180478731146363752227101100303440527049904057653829269168833345163913810372355958538890890646797864254052904499172686923898580362558242781189816484444662825632060164483326691125765490299885894829920238626542079655305691745783925621980833285327675284647239371199592619727046991829069397328529033182771386421355755864458909442328205449301351785693615713987650806173069705846325377681697026697900304840107972180065031183618286300526379933669315066345653895404875687260619745985528489392829413249093000023625922679326725052746199530421508454534419685491140635724977562819947658830556433444098119067978227801903795413809628367694831029559481918720379185273769981443953084585577897120051090898134503352762672469326265096353741073686669968600598974111467094455040347733860174306870812529666029458046018022031816114590741201629171980956778549947048868313748893436512518488725208124041516750814106533183653046478854472696401626407627444006494463265331940386438433830481753002123936641097385533782768511764582916882218807665801340951524839883646966418436486860382168384805695503358987298310972524108129978167634037643142993292694900790993639604975711204742991455167113627256300830539806925165890096840050725963534227356571075461347831059099049726239141415720958680494373068765785920167030817824998290028402305191023038009281405382393260691425236839651107842751815511810007491591847269572615895967460711167300785322016801966701101196590168629271374279216759370234917355863601587887841708733019148439839194356920459040493083958708979939987838152197086498004044308118041146627030626605821675100604328117863997438981167641576222674649171469544053456562319981050569585275923299074189181527228458084324440350415590025380059339256219357006680193455961319909943388796668173893376192168521775458190205201621982892749249495648765747909994736802136477491235443704248687279917763579419408404130376938145731588342148140098776497521150955729774668696997945780484994134352863611710279166194155649360289070079226603990606990127040242959992317060030107093508438550842221559850374454614661149923725031585162871904229400883780617475337947027684139974372294161680139441396507680274482224637120429225349336858180635901865974529444386288603153319203329213939246813603516154437875322720863072064192103490354096332956984016483517911124198776196008031277598068033866361976117786512212846025420620343782833355411909496328868078525237371192769129763444476061366636993704345101273442540403764640503223977803001344934229362752880168013550987328018805545818510482491519106005694632238877292461825140745218135436963750509625975368323108044531814734462389160954605374934389302463718645807862509809496094750846695738049519962914355318766626558059477315340302555760280546852257501393944789717385600661799449820061830378303525671156574082746646013791712799751462648632711964751261232280650814246768151815880282554449742522418038798157849924716774540187830688968136768095274454935734040689574359565896786773014203191613033161473269810850473719029547660757618298883845359115068394117051942914747490970216235786479970445623183907190406041997851809303359431168052966949092612751581424538773767711437184421145579368751385280559340937687193332572352116210880527139547200974434293812531608634013579755673914192066048516866999038430981434459396093646266018693479882333324178582014614377610488987958854519877596241696493292272390356797978041191994346718195544682687909482450143405490999570389566174892196540841309248336289737068513101476579136041627705833921786923619445368995657269652927752004588001640092588791218675525418540233312730214461236503117691872748761671593371585501513801681789522234159791609339267331294834472090934453908610871584898469123432096675955346016600521473438126270664872757243275765932115877697023791685953528617333019976513391979801481841743150754923313707302156079767597937830541940906834202093987712553064423379360040728946738745633745758021242016130395888713204472376198627482946028122144346886547285322981991523387481592925042402847694723208110207636700729949390823948243216554160862146139700346471245605104655568567522084829984383268931338944025372671311577996801736632992741639939246821762427525302023020356123526594410449763842235727699844662428115816256787600835291443291402605144607849112890022770014756217665835415055993093963586225203221497232034009525129689356079282391033757979227248825388921693399044957696500117673383733951483992158511141801314945291101448765668008632163423951411001486148570220027335778210158784896598863741929418606472894328493561742909196780085136798394527171790200972656088837583336565847539891584232319737636187369246107577948629905099035507836336876425005269241052176591547953293668197864597010440384037790362035953032490391442221952696884392322037255127967766439353636986819363394368120989903823186989495423255204892855325865003619454297833961524991092656378072778124331767810421151265817076852191025849767693236005942020813977074535192877887148002260438877113724585084520090329096271064252560431847627993849650495571088415571634180240875697850592636325304137635045363652057566054739580794854738285581120813883069574448382029069315389608735306114911653509793641073571184697862933256229184358636358290085938236332015241154164769436587944335013624729619687178416895534093064078707713840492306783447795745533024715299654670138436523445883624418877418095355878997911066103563296277819511359487526864254412091368599500476925324608253548339604765894069009315212026472338912287654155930951516884465126090556416015748626966872453711412294940195338058659657704707649452483293402489674391033382634869567887063619445286802027859778029491451050783765999188969490917218236593863929273757172349410848532876372748361789560207921578515578469271762046111803989344124314335326992699656876874274705826683225561513458530552459195912923062154419310217197057012069555016393482490729853683605563891576058461746050197852614205187457985225564681533927092370793470758698193035349379018293464637540968723760903936145498389997899863180753944348030049038863052591408773429572108294732368087337937525106202981917174867663997410219491033677887197261716953206692239368401202896083345382463783843946743850638808804019910544257553273631358976018408538086427692113759043693478220671248854976985715799547993250945661496418710493446618845437833243213975578278395076856565160592506594242310530901123270548797624813132233325760661004744372948986255982485752921103124557890382731109991447223328358353819335241245790489952509482324071398731512455477631768319643151856155441920709197479206967393303158775230712453365474929669606381277836884297386254763533922188250932689313962655699367688116297276219447432323715660943331600512600510550128929217468849592886456058039537698347847484116505430546112676146570654050038963171133480381176265862765070212254006103203815444163953426541297422730235216265063149749506786202765393514766433038594861012408151571237087655274985695611748234325935913834878842367407305589842163329798026141492637519360549365047022333993006016915132606273931390971029064800687305235275888090985300095189642936053899494713332994404009295341428236336657844535215661345130983089164936289671543771350520927738875323241803761374895382149362816826059530125097085434840305251726282264946019207147552039061618348062554920932837323534287378977932572819602232322587771318637106720341679914242059315610442022154284873720261802462596809962931775600269725817819131910502177787279863481339362473948649958883752043493667883051732469548127116617947058252214521273831005614498477821992776413899384595419123563510643895245310177547788178458799625868982452027435479230101676217962217758486687712044994728232547783709187091440961252570343307727827471116994490905979299030190737854105692423865216091845819001683072793522752386363241473464689735926459693144200943090051383819441767589513225290890084251044400474848922525314770181122425988149726979057143703892581857446743999852387093445855327136476970418016853352287989691230521108913682112678892414317490657606550043894982457441590544073994675081466827858100197324413355771985221446705716826244099912502666908286434059892008929884849710649511160557229644385281682368148259054736353539017768305990131125900378249876285543543779926767143918966128817356367096335209341887249076983293495902591530805654843390686389340516774592422764733950046500447333162872060145195144125092743175660298549494266543451052744302209202026557668799021499067373506756841126874271745617546246935592108323342437104875170995288044349532570262192257297805101511310420098670645889290631997521422757915136403617334122191605615928187070826192359625382179794271457226879805047229394989405959076666023402434552862697760182564714035135822996235942444503661295184948372298798363940548429163552070442718154856414671621546887435908309267538636748198259861264165160002156351613818109947979714603107560534621867679242294299310561799193089973215441315211174015320289678770381901680452702513571378970327298013964221635868725604400794993007509790289852907560251148134613365951419877093341616953045340501126121280425083205131013320610556340635245058853174873403646378257172695607109523760254500074433648616512768940757530354474700955451112246312958241624278793495938354416912392285789492875884009388614319926137460134868753445898034128594596726194259029986335869909920481299660279664996298926918129979101250531866466318814764216907756473619643490875033861029122036180113023646852408963679061375789961397635583503623855444109321519366806023126255345496304009333760219752950110474889371327245901749224232286450013472186524069320470810163451830589707280775710854817018249526789557188452207187461594297535340254818007273287505738706271319334832538310514308812156345539454189581147792451296479944611571115880965856238846848992030422701193639607445185025634175331676265767294035980800759503996650129020010241824623127342990936372841015598329196052994260968227725093672413416932276538770444821091601698878030855445111224372932660585223567776305052289270659744956222698297368245442777814080391829672046687868755618073430632839343594523608059216452564242302057581545862378617719445725768087079961695011865052270151119365742055488556717945012156623458760314575441594924694578592668796647992528787328084933059264201570367644489182382308259751141305469391275027964000556969688077296292922514668112224859469373458500924101771470120897600081622595162054533774791093804123461859036256019245591221894951246293214291358764533678319595826378276357687202601828838462963553058874967787364335568832503960436613892343978814067698110115390861037120022913956656971507893991583278278622414854278806999854151908283155904268050220948565855446152958549634147839010533917327116900769503773459258001629944035325501236048750210325418241552089690162427024045636290645216757176475258561213651547241535732962593006514055112828946645073952398553063413540898328307244819201015271666578514115347611555806968739505379323048111742845219955616905122690173717846014923806312338342811893081282027499966658918166114312001332861776875867833347695373761339829849981171078367459169845813520754368942930963587761883252359855850745856489416148527534460243204491735781952081205935674827455743414807945310746630777087025385587127433465069317963690257689603836585922461004179626558924388473856515896237698973885879126130718761325100544254983515990101342066091699155791770827682363249040783969542911599142869541500116635259387920760257651963710936351092135912454344540124194946869718341323659059109291639241841087415587847861893606572152685197435728625194839394774744393932977550578942665228164581398896896193061336653073903627110749094429716749675138201427661610892132736126782260850716345500352901298541460236261211770369644253865438067853635170777619839721711008433478193233753352641324651274919422976247071181334719208253542176766226717412257242537162482750014026685215057275205917929331537716389921360606053851514619007694603570196435750559579028465967575200032245056348081645802117312538788440165811290500539225434326764517370491898933383541583041636949527204352372705835987331177094421180880637735461087927318220022745429263534599395592897286899827256535911058282544030878530175243410302348424691655580790782857665576073671863772527456260435084496322153341091922906769457812170440766023700772260102507804581462046569717160370915517945498344240889479663914251867576820596681775185727948186384712946559765247192089224735238408359080995777727254250746882114017276339966945724517284267765729806801815306202036294911269037261682738207750002587564820739842452538528149682899243646956681462789327325663252702458913709080565205705536121871718325896894613075968173214716265037237442666238802874033580159494482208148528715298801807319108299133220063944575086673742964206572185523709147149361869920602957552811175464485809980386601711856625520025713122265076375683334405663728371309635952728644177586649550843911230581408941978962820937036851031156628490010711924378022198084914769515336723847859397503276635227189325172190427793647966261487132891631274845655830643847033223642373785903002652416708547943128542475206352826882658086964910320715734444209036005536771307299323160253238514202142977479566792174728936127658157158380636976235574693727249942785882296039129559346355378194783502461035342461354773863229852883918659883562252171566201171275269863390492936869945485270585313518690308229845572727299063597282325076612179670168652703505480986968650330563700219776199972968341005397792561313320870350180268821869000321703173152707442728738123989885218246447153308997143501107798757236731312231384859001844383705517569166875675925619928844770510231019109412409747344759290976449823246645701556422940663159747409301875602437452862905714851113962346033479325941779586301208104994126317753992628817621416404211991393309099553472421767250789152286585749611106295315215816331558845743405524428086498344853884944680555175640161764166744877763025883841566928810092602939369606149289074893206068567457708661915814286357441151364499794424908729993346025377432383748602396554386936490417587309155766869430416236142046259628219311555963766174527596287076979862794941788245760804972843539339213342847123813926454185657077509687510089713737059711138370263947263413068104973783444261304407911025503092383301868356693963459245014032201722702735682154878541676104496722113537370407798779657257195478199417446042226744305604616206062318217007080489908086115283155765753181021616451709885464028826395783585449992494216724276551848910380526247015945276566989166308808977809362466325042811209529065522679074128960040424590459229246305838252279834774763409774209400580690860832976226327819769264014605411814648660480495979231883985427282500556074829805410593885809157065099933455625224527750599064311224828671229310073404895921792196802469544803247740986399373845696637068605812956235660713216385552684349059466905992385500481033119620174375261996004461872937738128737196513655605671281454905420495231306924135752587150554127276186859668123445846291898736053584107091625747963653822012587101519107569289540750578284946236635827410111958249699727505897705317655077412944230112679034529782064148242070690443310793144572396301320014090015779841100432384110923198950434426625062675225434363223060674516101700291560007285378060557957505133525030147852403082311381197274523139197689941457483565947435485724653231138570813711121480887486498072830217688923569969348891787316355900080158334975426355295833689884975157100541222900263600078512838063617278667012483378168216330848889270233252229384917649761680080923243696780255536528180289095835785477667103857955788317129219856826335927541861103947955073901695625424361694110520736916981479278707869258431149930652086752209236851993642925180111875018257700446895156673874222990980996164928300437371006975704329243535549124665528451420000510917549807558637372605289429942930045598764652249076493885987343554233323513401439859445960052591609556546859705737069199989024376007854738968705080709809323196277039130359361310307504967181502302897353770408058673948553823783691012800910186193104916743973841393210390138955158634597854559264846959492987601651689976139569201112248067930707998954226824152797687402766540881239620536120946290185735350408388774018887253707438501389054507624482257301275997346539396547770935837863614354050572881597979496898615454172599554864800089300799260451918117685580958748626872141173254854643411944208342342827984076743838550682463362261655965251783506682863206842489684658846565237047797285179431140282914075796312528360592199535737517818395217190384859152741483975500422448719024060319342446475883869175368174477379670924825192900631062125577049372839407876394539820475972550864142111731728077153361942732811480370951770463856417300081554092648817028722015302058680018310690015423380519542205041435869898597381228063059579225712691011882275066347887823697213068979752684787770560284739173185210815630596336598706655558123182358835928878363771474869207238531653644087497563452025413559964524421215769071190851224757893731458392477124159895928268693053302761425953686068019364368391687693580820070944224286413417257781085168363861336793679384878997931440916348143913323823884966653783697223003986133009653891915839681787875443220110806165783308246705157970771462889980084303322478236621806733743077722341103954372961515056320481469313260367865401665625679846993057436447014954838224096484634027466458506374419037081540182519327348353297740331272813573741886485693176611783209826042828791829380528813567250400849485210845287030145244442489904867268215849774892537709877815481646754262832224120531606317122306298958875195405193489708969994159310198873569108809526443354463109462238447274645710292603381615139399123398052874126359891403668397644168361105171490396807174034485899378551281086798561645156567673305410282538689388964600644852825395342181825163810102375464978709292873299066751612659554745022404142317507438473218775332358897514518091809200219113590145395088709399342521676296347059834253999994955316659286052708803945879683609055509499462908094251174891919187900927097567081201975435086783008155037306266044911309708327343950757673701406430400144022441039392682610047995672065192780133552691186008771163221720246062482399242266469896267400338856476480973704484886365613454525616033559026844264482958177422243050831428830873419815695098602242909359366710734165879877475893161173121415664509553154843503961283989585508164290812945220105873578591663538904883362273386638596438399516878930703878051611316357340498458623701003089645909886461528351652674023683034340689152909699422868948997122052468333238484975465362769234954341114809046456150364272296654542770999689666148898472572241787983746996513078075958115684103218921032877344643674618860521636697029243455730088856355775460933039350509925538746295585492337911472393759245357003759677782781556340745484039340687641920472908649523377555172306215802688405073327106987640269228045328260355285706031537555665515881568700096028977415841869325616010243767730694345683711682020039834785880680177399155512853621138647485446252833440532933883118145178366361795936358782509069095123164263036448370039832656036129837570890485875007095477559059414963388019461052971902232590534937242317270876430375890714001353592464004550404701880809895410444656457508655277019066194384123893764503068057015914410484635670345613789656037063452694432586356818263180598444365412096989299836088247680612992085950562707826307543967511670937501226938524513478455020158059536474355948982478372371545947274566100623953724091461068938261969135803719089718372552679959073478997539216924650603163246869246977540894369059022233663744574851107656260624572872770724987094412092746284607759218764608504853254605676785394946795641073175655328493320042073411248902261602541812527720730349080340177929729011786344064592929328675240365968134769243635956778093794289570916428497527271829344533554169415335024234767479805101924880742281989664116326510882683003505623078172769137919835636822200453196259358740199073243948653733930752643159151192330694542671929001327047279025111666542515400423588892790826968258737615207140613472660281884615535091283431880566276328719199235375684970404567775994634197920802293020936177311476224655702749522431700287904775206836003565599637827899859936667458674072480100428314766596114937172663128792269167758700171622110861167473310840301946135887088916372711779751720515672176754450079792145635147230932767425194401279573371077950925620935776552606384175142114878905608836141656119646220412132487357174411815652419832784760842923059601028667566511391699184965011334696192102529740215456328225483302263405512248529682928807149135446881201744052819558332951675794436193928994186848893016860753402867784811789443818396737292583598736336494096440185553271679920026824915448088455130115179784632076448792403694430010561180569498594892637482165652870243518771982255636686917997890436902690007802464570096024810045173770491013978945860913091244899167722618483343205633756923869051308257952037753823525713320154155196604479284358090611524494691572160726002183603936673683104825026556597365623942781982850666723114403963029790900826070134598902380407860836599991542558419348450577025475999467649986197543532072560947387042059770839051079104214827919340664383890431315714784583613203345734146413795065635148323015662329165662905805309272989227063374337202567443450889253567366272243079308141003648812371590982228599895730112483711023566794423766216522333119044802622455535626942101745415926225672118155918585323397886956746406158536864107718763106942135693649004292830711703608956296689510651816375857960358935654648028067981982109827437568986698240418758256252711084143285059571256841066085154762515934411202262877205368811536432691137221426750673719951296643295462611786254416024321206752055445043405635269843345957101849195204319851384887978183494247616224559474815344423668677928120509336284651768746271548768514773219317003297404994515972923102828585888142221728882742058877391074634312491466704983076233471974636869223036324403596135467332839556126081530093120977471568932766125270207699416095715813607253325854480596587002275261567776458452675292853091568416794180365202732452845435443694004570518462070094232760676002441294156740607628809785832430961273758451703457052289180946505677793130554317953331351560963815100248266582273059510732900688881666777028967187102333655876489256414903754040477761956218936107048211145812966099836564911279352048718500030427398150605779685389631274506903240700737864461872366794102500449864696980927795740240767929472067489444683200157265551887008834797349716492743751199660553728857603070600622856333730585300425307877284403508632154878551712821988448183727884403948615277375459041285651556116254292883059403165679987010497831303486805812291800156279796124571463754164299511102141975672246723145340640735428597099154262344201507300686155692712861168682101941729405264000458763560319429946049279667360761192694553243657360769565086923132493510290641684251923479225455162569230673087508129395235502165443420798122672310498002568714414636903687667475152568742114209336836487682766673576291766746572523717471743552576203124932853533572868945408527194369952742723022080186400210435464675185642514420521799727523729299717619144687127361522036491099896681659391117197529575283158145912856274296479621645827624518947000268288933791722124116559029587259360120550022117839486581414772304600090941878301326978579279299858738810559758472522806416710193345396505628027984830647344697367731250526462493118506455287184120347515904417198849493110096380408396712772552030968501911988257182471890963105846025709843847887530768098419266330245761300945104912010430442276007395350470787190855195570619007899729372513852467267362024095097805185468019979623791010362854382949569213299184663598655116362887525856465689784322515740481747863953703751523970780565843422160776084932998465597459231155936230168086806476113028341628654503300699410710013465434127332568881281343792325848624371626018805233822782266907989097901032049466191261310520617243610090567411271923857022382513922796587135907774201757139603439239424890469261889698959473124268378929090236754965569658915134709803885900186787183126305293318459125308102895856937583297787399595477592746744165438234883771895336397492118133608488363132303940102509477077544612639521449777878828869992484660736811127977051758374786834908542056469774437079909601911920354218323381816533902123739399708630637169105083925796823230290898800487306535716305174604300829547321295639485800836406716651284075855292979601889137228768489642887757434272749607881673445096407369700221548398219592359248412962014924631155288185874990677454746714181606148837135615727660449655369197766708989032332186599431325666653085193496836542714021891252871069167226318214746588318429825115605159587239786761948818446335976043597311273896058873918895280079194242088486698198532616183709034321914486034723317433290066570061125093501778227916082864738894519993719567796027426737611446032112854141615977336376616420303315300847829368706659591634660072868216939276940408443864264899462588001402379578673185159569686822202551492916585621629246184098785228623172309505721726360433023749287211669524988291572583285949769461326786342107691175677194984937954701899661557199499233004667378301844863092520915485516514809535116711816398217595796286015496493083126805064118715254386191362294475223885127387742044956803719224582513626712664952627470171671402122537980886168762913950299393698790646318647930151187352071541423816098263561045388315121848820674423550532425365904466551190243253874553197622120659133520456817686287557830093044007627605350715614913853939106503306837816760305706192512739472694835623534711650285102709049455940202929759955040519365665341053352988411958801142114018292276360029017467081989327589516088587037634222781025221886658928023266607387317353275867474989934698774246009567398830409841840696354337884242753273636960977697856492569983904984877615886244439317901592015781890348413555065836813999731624562462429939522250677954173223415722670239185908592910627341753570056902276949754052710704419179692507837486578679379909743864090056402695622226568058891422933817918967126136284880033465797882254730787073693820548750772919980899489523322971138345149327307496545855333523185869928894088762342096405963886369089206270193042777687624940361507075706515236301035126788929397856176876885260805969416730093145965317078293078835138028638898848167640635011852882559416534662018674079771496349535089961048156133349698138077273050824789936449604824030501974029586911722060206933248806073300295792756028912182481114072933870455412362010133693618460516207809234388908990451340660000557998719969088623083159601217343499716933331326856629563360469688555908799887265155077978084786545675711070967438584196173322078131401961599058362357233125860188588679848848388512540107682841105121954347531794885065635534078545663621845312644407060110481113296932809829665321871045428776730405839701147951119049088513185438900499515779099425376458332419598238992965789730349794582527437605284672630725252019927673026506064033349176919463787358082789691790899211596180098580767465597230816180007863025788381011364884211694245302662612643931178543314670860165413851092862510316493808679993311639015635313198599511839524108559462765617367192062739041941566648278459777016127960022087731795710539236499251698374409721590080876231343369743099412052299832465467458558867517314100439526724107505721648179494186583247921698022585207220869557791865162104006346640910031998615811520261093487162264194694104042090416427413533302088782752159814443366605907088705330381775872298003705292622208793690284603889678191466171404579951097574784696893522197482152727233743835346270411288643568339182358245043586860595049317449865450334883196479731082096472828691230902538914431084476776652667149368631114931556639110497561237347262784533158832910003778296724266508445121101446159731176459630068638028379483109077015514324054719595152110277316637121715066270218244169090689929972749739745825457395627976192227592814060031685117285363241399337180504195847901981541107831396706628890499366265116347184451332034633978087953106689304122070411592014986141820170799413870862850432689543256451979763413800906346650869642377469166682450294693815976569824145635776370336481075732137472772847046424802687432027393477750107730923263146290029926072594737944333556657466146364120118016348461051989111105633372104124226525104003627446968810822754371273950036465189706593867285492426302749528828615542883254476122965620336680630581183783298373158843335365474296317611611182022445015745135587689930218022225522638315775312890831149957413441927217569374702688495743935510806235118956256320436078329799859876507901767878633065079042305459871935311958467585036125892714721134286475403035751187736018294240297707814127539182859406164825067235125839005779824296306850590293063313431456610904656655899918492989517485862038008825500636674234511027720590860806292769960518628013540674594397018513733189113081247580108454112916577190808524267708336309758834731056195128429248606026586354433314930643349494316498107355231889964947748004354219274033789676290220012253574312795782560088040411613682679777471037818717252774821072960335978655272758422866219480573704273726387141641337118238914610646271854106104936249643435301499419038553807320135668521739692577958445635590833348541088266590430602022977103435149073913773483789009687676607603895678743281909064531756256259580325653555476823187901500909210999390799737216343872693864063415247334276196533396195376806519039210429399837915828189943914798924441157019949176069375448179240276548387476288113426618286524736449977638109014798629154209024854884916893080268825367702882086538684534400156515230494909496005345849061610738004817436057705761662182056353051763977388305149968629727386542786211102725837360268778435339400629949416615844634667058349872937484573635318733077811184299683630918911484127474467374527480718179141078636494502453242006932175028320003317495358129520176865702208015400775490213620492944901749478768024489933230247418569278841640522332783979025493683745930077154997780472725881652328221006213156407968679147544366401499206688465656828326509509482445612665487966085007100228423459475634039699833413831276414123962283148661356794183078339363197004215152480487622663888430967053147942518595830153753694137146827842907453535228430839827537054773856775407459370000830774625528553486891101241083529866999289647262801257634537531839873970751532756180730446463954519432296271577312363739136382996617364577407640775096156940692250029507462832103323854031963181778078334230948692876209018958265426932371525789792674281761420579312640525599144758344408612235230287180458603427474400992172150180840748316416490784476565159926509525274183543365885419511401285431141851413375520503136806171345275752952408015126251141438586482641448658933165622828785811002932894560103115817035855519743208832825535773436077609329744651744878246918061712030935061207169629588903802329398912024962320602037974166004978903053833418056282455592976429236041116218647245205196808947886818003644041197572805597174454271768713530809882653585844402819989193692025814655237488215260110526384607798073782102020507506503184929198121973555350982285367059258878287829624817067077553846038747887207491612595860611002587166536310725396755631547757644485170722576217726439536247343463212993783439186921042124907392508989542182379498926387721555833936523614899748070263312604098184017204789337663821493398873707934160139019339773508220382555174181540779499180350651859012212607460270838223555054472507316464083747982319296042265331281274104037961165401973883640340025838519678167234313353966884522373315498333294803085654314796780275567273697135995806628215145351960387220126211428160295383317421306524096649871734539958588985064433606584543303567012660327596425519121071926119613343123890347165625720585282577223789836315720365330674157448028845593874875903445534840655127299010597135688786360716888027970593992953877015355425190537705828667598832299653657506629575596098404086811235247041856706191339955115087334728192936671143833676277545424862271112891169031349065924558730235342208662437508176511379230558254899088674242577055752305752086210840938798347686594131409387417376015558489420706007123665738233218884642184149984541559702288391022345497027409057147057602095622758258002318033865698658216668592007782860232954597401638311774039833244028268729062093846044330130691256373624174392759125326762257601121844989840488481381348489201523888803476781157836710653030161998585692655016736896966738406140920165654411824585201356928963992859734291800350166065979478501753445935333487683515036735980318437907077568504838435478468399422594394118629260642188719614241650080968648320902533862032169511061376284197817443270498757093602203625363766494755156648311911682772869817980544530588036374790866870213531655413148134743824320074295966680620861113299683432093158500988720610324308953370408681274981902306619911877063615079622138830488440466017786951281874253047174735176106528384270966155643301686052722166088717341788937396092787709158382482095439706445615074677931580361401789666586477297899061497851326199823018936675288889117347978964685486507421564651989668465696886910756718148840551560479427138146236302459312836195397200797437940568898400952496760434543153718351994244171517061150185132383547104527537916493447801773180103878080020204188244077162772854100946022342528959119661530950701964709454298222503554839436792253896788677646088401810500899834925122365118929620345346321794952079748319639220663950672787784156151760759274396746028423918955949842151492670464097525382754162668034841576015916476421200680010925218092323099454605939242990241562394698132972231134682255417058418558146793532889074404315205353334286544997718590065946198509484153303317747840548024266079621827243896672342181853102609197203720623088482170638379590941650726113879770576920487427487159135884249954895465639228826500389184682211130584652349872164676597549024891715778274592040022781156096733927472142536375688493507928564499475427066168416068001777085400270545983786707912316154126591629014446574263987515068379428094829208547526787189078111053584893805902121084014221455455392062071587995328534696421680217121195392050034571114609784520089550612734062302343154586477334863774495829506484416553152758774869336927445361878193942563425023250482672144314035925929697433310250810136511871248370786431414705903345264609718628358817837347259746469392981828461340270683610210864431787716184174083770976898989425704203922225716718596835958388779577835670583237638670970326342131515874443527144919989034129177688428113229733333828607301566050276577398769274792276827113810831961858207061505054745834176171107316139772846608300948345086103688036214875832368484429987477841030029554934334775322356410760956478338202504847461124605753749592025326973692299387668600401485276453939845042500825558734220122321037090078148551636315198081545632550209253234142796395770801660732874740103346734256250916970681725773627734726802110820832946008099117311792167044036794267482206905321618112936772099821956427985856714000042874156549792766287077654023391287339714546877989570786109090540750129515426405058542421044055793180375690273530948140895089226725660411953897131525384370121809830802707803680304293948018423527479149385411968071254840794828236138102988088924777515558233170714693778798197705795360449839940732249955918811925623947967883599326923900675727944265512556206325059393001455596799758008244886334480479917751687959321778938686192435815995255352557505874032806964816353213235414256252351967953567602326536404762416688478813343441508885127579727584858429020553777758865711916428337081509969539849168611117036945133554000421682796057795288397973576663797454825289008217512194032323548542092260560412262804563899139477256792289779081488369769397586445682752666802153617774876193007592315203873050218809196507730627569024119890787912676106354547851189151542692062764543851466004555816492586518146739090628255034688157463355172163492699321111501074847026427867450326377354902042343024177380489787215133613747658172872897317553227176315801500357184336274651238401589898212180333409402647737413114670483038454414079046172700779217750516783171826891124587146463238404088436074143897724352068067895747561622316760338284583657977358735769749318436118555934894523876708894810026278185388070115706703731803141106992325404889910336749716615835372405775806991058226047726509996130342356069611089749787692460353765393415632885905884125588034959590738990981238173124778789309196684603908413291220658033076969286546944475922813666047464168407721638875671672047212400568393990703335744713066696231610495863577489452116578453372894045984457435077944562080796920331340358180147058666184607214030602122411556028781565437804953515820580200060373223892797229186422796395581370907843029809663379751315182960984466957702237947608277440405220869261193519033883606782666107024166684420392791866338046934038982324519274643911914177894218025783945334136732480064502748926053887201594893793226502737397592830021329091172215247026260129536858337591617403301076952172611224672133794427588595304232042365532520996016821166122279904647183823050145722224766472302166493752413667507332538011423649792788773237082172342877588170575226072821920023159001793642041065238814290330958917038396774577133256173678228894368149562463671898786550737476539602917782470710808220834350784024442859177458377956156241015382350407192845133854863654387427859699559476545755836532186096422360728463510587163893152169816906788300308346807812134109289007053296613322261841945770794105430633847951755512261747475946586335700739860471695174285760522175216509720706693637442031325091952384604032019961346998840192922071716809751640667942061321138319079614133053161413528004246915402708882718572251307987309732926752342582883395696221554768089771320782311879586175280200304603615285575449115263234498339216358586961532363112761106377404455985368451431451475415336421917472992774247807436392449288442609290799315386450496682462024840913107449329437313948272920475167355802299013054406565288353119873190651267741940474012865958995759667997308440521363106870947440384858133954218332519802285833653344314153569535297995450836912638008436764843072182052618004127729752378084791450375715196738501158796334434971245865541608369833898475531801837545018141055708590414713534901590990648430056968292138789771815915812095562060799251275422511448194636597878765912585496517207213022784511638572389498200622850698909160021886913068777240321248962517542302795437380832729720139444120814900849613134832611445073566688991326084457140644802261936390876098946031082435354128733938749832294136378881207981935406809821119477978722567934777493484949946279861740987990268997895710755940165197300646866494012115404104727352404649323995227949524641083404125724153482697155051176596249725718498299231276956048810724709460673359273923800547955382304912875950454815605962220562613257431999221591072852097663950928644548027522812298775652580964533677546439788211018118604296666148711875617065215942929041755902549401078115085340656990074662663774600129095463630644774241627996852836740817387921368799890946674473637288754787065880383865876613874245511477325246122544365293172737911791557131897246992915566106182144964628293535068426903792974701108743378082154476966702844825874854819081422720610345457892375799034234153241969421287109504244314218030222710061662768518461662096801291669517193459851684423788699698062777499516904180936605370473470346754444850448616878498005582358211916322804534241212034419185823017650702027047791489597216726761821082149199785808506194894278568407258087405335409985692902750752181542686661124409457079989764682343198534835335429113091728000615540998060904142812906715887067974772475781496046173942394668442190534464811148448871792018876164628209595279599268570472229000624580957477229504419572944495616458821855966640183451381508079360727613897353479857897228039539567182556461043246743554410855445496480338120859059717520677855890241643832204428814649204216125530125059967186794442409749634615695642935607433637293071165026896158028201405150901036912861796245539126409435313877569460179584137973663919833987085495805883234107098062176740981652612941042905371481511660747761163823747663281930613405478874715542563834600431274885171378016142084559244061323636702599552374898390610901566740403528694949013981603785162345134027950502314351994271015573893218136768437592924248779658415276393087935096559190679915258388626880451198729014346760300654552319892455154897911446565321133734243201143599833892069945697183193699554479797931419595579738532583758463784402487028229391283867871490167176550290295848496986877995093588154484857603741284047587563497630482193358834704002461898982032991763854147794944930683179327711905381597513684623974090756472161181973987256644230348651228542066732413220397861850956303061180279670535943991289894230201164826814812758550628374238686247489288121358628613190266046438858678045288314984972717231226644699512611382482011048350902699786972135471994442696941718628430125726960715147144585524719871409280123418352607308430637078878242930587142961173185786641181279373341317800345362245216419361186727862558989049179111573519850520573630553623420529905114921898349400785639170539820808858733251440728199411102947668396382990489586460472141896683257335189798482537229751008178640296107809114881510203119707791958705499466567583405684040634116731767870956214650279900004107403942537436759485081913870424592906206514222229718127386937985202060930969896746071241885080140374216476286252337546582612512449328959903759241903651236626770872071896078088677221971341602352499500484208391348589484467700443700318615847680813486238012160396336183829747369028365069969589369232788104788322365563261517366833440497743045432832185845369182061027974897746440054084068089067603271650187954109971028541083094829373658454841082881624623439088900235439926932215727156226370691483168376298916678079623574279434067166675316183782813020115811164881309418162553709118005128036172767459525117373429674170205751314278582914565124399067963938033216251347958883233579326652311575192596855595298803101336371172728471254014722264849736637801582660787947813871074837362142003104475815110811763767240042668563161821414783626467779154453021757294862333739778407354857752038017489020600366223079125985273056785015421585012706644003850966846596318572031926755449049898704485305858270352496047960571782612804049921026431889951798431448455441267144205233761024062650275842030078710820617101606716640486265004191700908323969558242440670190062034179807092306561965157842432713782748000576372831176796214663782756197704552286552202097362916729182924832261617037125803830741858657005959883724201132687031486136821631638124421889473906758694598865502200522371327794175156552093295789883109571504128495551679849896423951832381552625785488431282739361312891037372844513003119412813668371921684297802686201288093729854219761365719662240332875169383358503968666093854678102939449465461577986157681946421471905659043734566144752530488298017775572487120945858548102620929829317968565898881199234796976914677256823932417831432983631027641585538259230019140510922190152198243385204845494054018235407154691499466488184437062822298199547736343307627233113738297107235369404680469835023911018168882559051810652485848226861423301017321283065480211882736201330364062153936998587981610926214203758433687404296095827285695222921038221451179657121740599462956014909597606425335703587867009657440705677055802109649289058290180812342954595466307292119305365122169080461759497162208595353816989418437549150786044573070452283130709442466275794506989017607142725331905199178484369081678169283708291450042653136056077144683081848748017431603437767969933617209916203631672374560306434984541933432279119538388219681271103422396717209039823891305844647983600646725313608099455589139198996667775669855322218042280479123919166999907949951400574164373584507264934873988803822318488535008419688204671872297514355073960398083685680010143323947929541542142398024838047961088751327797490540328008059803744352113781963101608200644887811958331560703673030821516158147477716756332748374904888444973307898165092379281216429005279710300711549308627339284899508382345155856700451417248532162323460366124683239031979436166188627598366124064636350979058458167725081499756402194642904922566409508249919538553351230252753301593726012206034220462724219289902118588644201753725690829653629819798283103543371461371160312502880925941743932892125180362841589424998619284128827753185334721458776905621846588100885098662276063210487514483286468244982354261827021816584902067859344712337661427861242666392722300703101721252925925791270230917419593598873514800431905833989148320110855058756072134960853149357395090986223140714015740968521565671381730077623688990323483346499216476983670320608079455467668513131239713835736652247100214634879537690920012553794811914100598273974306034035605576907440357754027886699028380764202854893298098236865889272339974599060253387463643827667039543655567115115595778867681026489744664569433635063402694357228302425066696079896501758335152619017611921347390182758855053447345955921183316883724424721133011606395220100527297662259777016451229389335848276700771698197248423065101506617513518607672591139673985208306969453451608764638982234491606133450416630308369805881582914525051941000081629134455478911876547470279319482888757194559003203722316801408341632052639475735709290562902702055214537969601347298851244007503400166452024769511232295766620558946865833948734611463753574588801187594358921475818466968123868864153520949831240850763929854522890959276162053479171088718059389194829463560417088283614837653288750880488456267237788023847168616615434950311882994702939686900510257992461196163567326177547693431496508831829303131334265074600742367588131623493916250532247489800567369176490863914070399572266693699652542343897242280793847045270778207982308959641218976546269411085539015713812606256439330123443107310987543527322850515968007679571678752170393056814200986957981179130812428582666856898633765232716199791920583212428571515007575027199170822022866893475895919390689099966867832261744557039940528376699603249368077492890003199888931174857375702336166975926048551071697933243438852371004683500365560305318216814572172871861003534822753325281291363735891537475486865299521014954315118508238569010786562197023154786429182110358860780843689763988959911007703964911002147448969992710803520778549077082138103280242812237667507417175335964929429569991164290951535351676431192911985598752586539490930778801249255344815363688302789061990400653592909190345049430830144964370849222308752624302684071389263751288358267929703464141571259641269161326379405462339131673177303709966658645382375474754690842486801707147596761318855599210229826432724532719079325156119059936006143954499788179576085614133005533659813544706819674753215269039327695181194418222750766421315551289943978115017727784412989768119584397195945690159863162490461956292888261162661055040847459095502186410751016015447978241506372518205963434108093224494676989272392012813023961593413485799667555849222316749951943378271659545815599129310910135529772145047131112814512522868053951370668336673360975497120286846769550168536442642372131823613773672201470432702707309881848669964474190090774757842374000780087779448836788218625170016822519484817326584373704874377237795374616854435773721844110066783860671260756423602053895414288845494817685555134818945862208016571597949378136801271644669925196131658745658092222175624676028870767521788689013720730147933722814399826725164601361432104633603752294121134737685533669330305979284980355565518328817132564375441399287492553141640735354838558931655658248387308689325104696224086853011753779088817186442863030772724034393092219124244672093600112026609408980621695664624615627533326084207602315458329654201199494830090788010987377978746399598920746095216511784269761634242929043189304621654380318842585352366625063071091923389144965900027064464569633522654502192941873054897529819107935024961431407470599581520414604715777598036826882599045721099570839219123633236133087107149090339871934317303762347847815685069422374839579010700030889400440628369083106455447399741947431057437145582198870761190266392448079232618849375824480585544746557098388098559074720222257312528135869292442439231664379404541227609058371350003326372669654691099306817748594015799861049227750232355794802132402537876202530779422536400836251557766992060873697395459564240336120300499382879162352840226993930862895474662744048864346178737435948117118054847541935052225101382722982905322772145985686340126136042391675654388538620934128619909775811736403746778819419564606544452861885070499752487406525106092492279583077128069065328013530366972997966794737565474173077938582251742541940125067666057954901971816977609714435074455589205343451358805599986514981035043864725907284921927149375665340690681866192466870475845151376949698474339805813230679779766480348984583070603686308412089704392378278819050793917565612739850538284597162999945647454873676139282071192846642377051418811083944914901416596135628073576041213387145559149900655608027108302063893428570348967670468315811868815250099427836337807138863341726864453952447471039503912871959108899444770763880849859834388898493900686930761268863219801007599999222375984309061968688662897247130165779175841141068486432722368830502098232734372316071681772344962180794069454052119615743660329317823100253519681162384544479671189568277312778072152343977575108122860223891917693003361026480902310966872873782490909224764617621923093849795805833064861499578716490616937677319475635716972169963167959055868650695871463755732971538113837217537005710088599429136080412128657364945491515913359245140589129742512502230904810882516587923250570260354913789465070117514476063435119157984049781254053747808330304208667284004326513817643440436752369401001835136967881153333251627234816009012708401783185352856279866889941603901561670957253207851814198715903216588675864076539019315502721637904146220478865135912308335215098546101832686482168748417202361909695274477271427687972681301278552191550318197168943618156831016183716657291708679490459629965622369041051555506380284927512370842661316108817289763733647389863802622515680725395965015485373486464566328558079238607129788451612223840197326234310278757678620989012519309909105295544428126232925566657914259765189627069849275393874144477776039656359398395128260145812888548731988782768445457204348576519959734204502275602667090571843619453555755074462505272134881596611165090453368920666139770129414262855146124827538478977033598543290023796718971029676286993364003438458350852714619156824567896063269930314902695881626427877214668489777133645258238071411752470519130911418632646759849396337770892520781718464517031417705966868944765791791821183807436208195666173365775052502322790933242224350017246500628653734719995744258719616697867742668765918416508463462367701393090421064322058769339108769876355889468758357886542220314102510625394067792679310447263606998165630812273436916428629628437159943776087239739405968768914127592522632024235526177282620251272683722961449870419958289959469425493370861014564608706871148173542062053606865199721591075183080376060553522815951512082215597821887183263648147400105229784998920624774500312859281339007145024114009385482203118353845831826966010951823813448077673084857792476232316755914882307805737020375367625837749912194914126665073537081978191719597509039517443210579686438928141926804399390705273296742328591753870851003128521179913492373715436353102295132328354015510653064278937725753849634167327755531718975154882964001466879625439521419609743647620340447960358243818699341345616823793752495635835880350965792650377537439213145350583358761562605027556611289332549451846516280355646142932620629569761887058168361782918273897336558848186722587513758333168740485007549081464814491076829129976796477080657782644440543320517883141400840034294554232844103870645115217190627841187665441925543779377625955226702208611215084163692266293558202468173058330157190173170959596913742401034340712324656867962732548012299362363287638264097072905642167230519664194522936560316932752907234073948894596309073096942617552053653757759959748274023330808496840745244609153778005094659074767651475750850289286642490888578259991706197287737125148870902526217540428852691434008796178104427670604466760574317779432388229839227777960479430916973016190211653844507470761472670854265689887249983498442938180266756663270912170349720936554486558766721330733177412110742802475688928637343655936090808611383563031351377605827841515864557970564175971364139168258474702463944120494907480791217183998659456011953978932399289637098160822893791764245231909199308031613838169023852514720584176258858166032928804803045887337387645108815352375679216015053022778704898590602640415044253870103566197090958797728439663826602803910890130441956036510222114427819012961195019000848853611219740315907427692059687923852191076057361619018986602215786638016597596124368056211330188227420799916281770608504818466509901489367681704514049945383487926716208815555447619599340789897848098511561657763031298366322376153604197304664969725304793182389727968911694693837948393037864790588975333236972074416671852738579756712234902829458818725030222211890836353862226188596603026475057454067575537657650359709983633751663261218176758195834682177393590487368255855030622415180061488217203348754303869908001356437924895871849197560360899171342200452289466474987117552064311347613132510595475212276029142238459270933145979044522269505293007257339444440353054213141562715251713224454089971373210666525853161580176688420474379364184887811982922770022278102035877188270141810236818856044398621308228339811690146078284524886013144437659544675351349483498202593051899384178763488815223868212123402037873506705265242947423470966828070962162796805867666289352751200070818319839363629097578572819482716039412937664099134473785616558199448145398971454089195093099752554429077392082235830197099473032380460208444309003464987095713878535223039883353757550964381588560313481814506240669322395179687837276012988601969528880902587899186765937454820745297717190786056440701026050249872281982007010448192682068386062061433712309177315256695972486545463393451958597008438435534554515677911106233390249171089830149126998104145044246620137051686131419879961477173177072885602616111186884735876975870690437272382095173421503098995777048756396120989076580300548218773873572753001954899851832148868000778978066205742758425392565756528212686167619779820924921470540542216113266003480728492154211386117303028270630519943507208286254263425830325812929462442154374951983726081566356809671022236298591560698506495837859212531138435466133234745371494376644013605411612587271525915749895854613707666826532532775438899579623908909919088996259585788209701192326821998212305355896015210163023489394649721047483312098284731348281166498523537260866522978817647432167776483832409568049044714177906697447078174043262973501925236989809073474444744715663645125920196025282712225606772788676279296994306516512904612875789668590741667984970665962976307264731072911208585186539479627359712457738972916238616464371114477458892518979520616003340705983436353713497041983013595456235460564645726758119762922742126006579748007032458765538034108024249179875497378169643336165397768073047050749347518758424603766409558207608405371723944291144757423439461377889752617209088296279609942751484646977990016380975464299436799648999852812311354300660578305982285062864284788019628198053935536547495216325756278534555452730374230845587790813062171267608022805925327627064245271212801465179398929534531822431440363166652055258775282945222696690333776359838654569418386107249948819569777502008017824195824130618974959238913089114952084647169669796910543742151875111900120079309822953860181782335525058699445686631213509620720943493325710087323566923312173322706162456583336883796553325808053238666011203403841295245907954790812644981909980172195583435298818102845691360016662738205641098120396979111244617607213308609581012002848101848879702152416330290634668430299560285778649037323182439826733864065990170022380523048783877067090187438159501769337105067915887613083311988411735057761476641089654679906311947692343060898142536691210691944387646999910090103947345083190408056620931859365001928305113403799044828322860835972277089925673101292728864107232482941458640394880457921253361313049329228433415324023379317932549107438365242169786932333574092923211798839159478976006190922196938159413648640642231580207635885170368741194395304405586129471307147814468600072755197268477141325524303788856979106740312246443089048105477341609476643056689533946604133585060857852629566341178022131892637809441725483475363268667923473119612530960054264356151807044845042373720397849306012565072571335728257958503649201907353979778137423960175588152951822627063481038250434589732622800472710171590445636705628323964411463920381130589373584063137582947219528393853856931906649658608581596323947632899135889789550391907378492498316316259153677243983313405890029912099725872237590482514279529858226805944439388454024267622537266913250439754928886028347563854240159694953208832587097837686686705529463739014995459253614663573009473794891614161110382129104149491645274076318268446291919195820313753760103739068998519273950560133682651166395161776226478052185635136660954363875350505010939336365369687363573103351771232333056129456370709149912983193601644795737833918945675288331696047986559932787776528625809135364353691628558017499989485046093028267176015591015311508543451292916594414641181550303185638026065640276012415771763122124973587819119800726508107090664645035679282842100939473308975857297143841129934797859994837077675260015348336765193250255980922664001205956331540965911952551492304629373803720687790760433828873943059604113612705552330443241084559309956465970384266922213465125370521778905258181729809584189918701023660545296755966629265486677801558266929874439299994954593568545680901328898918836597908891207404294264391017719795732537656145211167298358005295484209839606253341920882260036177757573103004608055134752884791281745518459363251104698249559379405043706279351986688034554240424104077151472494161061040279779024436108229867896869844833909076431515353203514888317077906609599575157319719278673102748067105910728163070815433154672553582108949397989765389957975002577080107986514085696125956176623704885213126562878439940132106813749907101035915680661105555066157173057951820245043130237495172043667380883630706190248784153727855967255592316091788366589108209328355787272871205087411119298537707429219547219695456440790113097786162936518008258714884175778755950378183309815282866462128123293225773899447596107527035502254678544723051314645729298016982542867829680738516435968461046246574894762889506135944768225201213215154516999857156480910148253639055597441169936040135429058848939894731294697251085843999472181285988976733096867971198565761643543238584872840982317073501292389084498132356818420051188647959197591302336149444831127209877280497110330610968515000008056094942990449646262616400087709631984201432986596358938790788147674603124676507129616793948132590728229230016087495320668136916387262364005631832376363935391048048119516013243485423829137193665096160269384789780823323618840510436675506601241882232507423262572395163528034006784439361425391806924604901052828331051958052430790348352651484253890656790621561990048183269248790362104647867765350156640583425157378385658535267878095380500225414122027571727915096994148722831340940520561116544560746651814603870876238032317486386671593469355051544426332831921902497637987196134630063232967211223036127764162580004887209524329508302246605558074945991481149302381254330525625240667453755051499085766188557261632342839499220619521590249104113211691834803789265590182481799227564114892909833547287673365465607620978232335924527669566231295251080303021223053734216117139503957773781107975682165785407563662103903896894422071414676690295863409476789408364545956790537402148002872622666647793201095490205014683349304916898845194368984194598957079417761151358240615532644872469233659108651788864038855714119499405505705353085415516883843071622215670704643001570288155613195485214978428448625660597770638556862917301194162856723526118886557623515551342987194841500697532222364582523053187572549491255791053536089594351777718685622633141035180165061755307998351906190167231688700469990899631037944952448077460076535983354075467248677413961780502618703572107599067469400356157631231176398966806540718485314289649396229006097371408893822390373233432199827566905991689953505553854670041107155436261704363465196860461699453718868746629774398387724847571151559107096688880110134704300658447638130631606515346982246127707911843176407810323332182407276120660640045826615271923355670277101806366524764480031149188335097215930014276454688441319151166050704769838310141334239442972318700594806737022774523656796826409014854461383261135656622267281029538108789342322375542672744322397435184018792675604282550589421144182573125341177363025363647836918911656425863384773237231005561432209739131713545657164706144887123017592838733534292681076552876911733401904127305799995932597455364584074697147592040106651050781226533576567210698951776793315148135323042978209827923250676298837190346632547040801827713838026616597847931543077881464563722374792983209623645564497947412024966133158466707220962338277809839803259248638363688858025766794492402178438999095177400753781521342564540712270420224907075179856267896508447372440669782806207478281538438596133114114080692052822813981982406870673904313713858393171130742086346741772415796078514336319137536033476280603191890137999858730505531353293588695335770614296870187553592907892910591386392703338313305190734797728096662753125165499602470934060855846869918300946858868773839578983264858399267906843343302213788341563981552280062576825772147933702524355882996915102471287884529444271563248517237239794676045248407852790613333235644811151732888449409842135298699780739427041038632132044019773443348557339592577014270096971264171425051604285504079164162536682771730965363433501487226375065085881657527356661246086439724484816393319060134978588911996532493736723311378516478165792219824408312633404413407446341113027518989119663953381934701323232247641193183357937608211250899586324125241966742337939425272352697150999178736944528333472585553719927493459780286504145604244874507168607722628938630465615224459835518893721683143342496408553924698420355910721981960653375089896454270844974464102166777734203537021422377184399625031081344470115710365573430643814627924695152302405340397350455286681184105637500610185901492581195703706981713783402513640813141571303991650031750403864687652594203700140177503212109732177610114806203048942142703931899732502927465032234429051494997948319348580052176282571502337730813987362753918108052386752720816690848711432191941754227704610588649310504600831898431469086448101200310997801078479784852338157975921825374276030468617754041040219788982160191501160431504978256766183903764117144355994857497027976651182896514424799437512377572818093887537666410033235098970852356485823535301667691223604861074180417485518107127058646272714338191717807399005760632313283676441848773116458978165361076580605989333453055994004427438334143717467736007081733739855166405919287232969863148358230725163772608942408598802642858679201684071200665559486649604142960273422207531903765716588285196362557290633446737849954476865579634968089428235687366145919405197361251174138795039825453417629695784833103009429049327109348982047463640328279554880661783762750029099887686813336427401966075665705748725236164172971602762816125496872402359751479013828595033957467221028756755577671090570313965607962142329882142590648051798348623541781086858364481485779974871047719034190620413163469445563948298634336285892071741188155386631426404451887489147638855177987346674409549319454174924320819392613119720735310489744199455221882945184471514110603763015356351325261519691661456638076894818052898415658433236837755809886433720588553281643345008941218864939789801565243027667785040340120902243122739255434265575326156407336111732358709673061264938183604033126539738970370901240051221444862326707819186324195910748533284721064142978026922841865398532706324524935093396928762085238341503098667898234201420344026240806197583384812072303568452671593985839274167152599980578497855935718852520245424796647128504683881533678306956200412596835241403654093881104886430997930269659749900489828415652168793901827566773985028725539724613677172299752608606149103104299335774101954790920916846467350724668554857288287870495011297415548135981147956963135300014551816960228810978591350345307603219066390084514550113456714665933359793577554999168449370254460106771979721866560348827984339407179003039928510252916142443958775049543632298459034744025881177783239302850203916001626656692955289554145079256738994022237659443733553193724350180955602215056530218966217474682451078861510362042299431278712887641419881814197464904060018325240325912448437668804511384018130879086644066845053287504727649124221327721646995388466872502429344968515668899829194876844180671000006513241219450408655886845435677770776249429382565741473339330828605884220755323608584861019113394868213778206314566338610908007046839586442182171286339200768559840898437837525747386825682905631476100520699119171416247751635325680054007207370242729136460031256929097407941238102589427067509811006854317930070037819367221239062751287985088850147423495306237982369572275252663204698798246145649977595397318959118417641241079074127901526289503776846574007345467535598337243905950031150135835569868059973211498760328175847030088970307286050779458469777749489174622897734199148398340842174223598603336192354252658072131945809478945016984730309361194830148559274854903514044643991866261462135611479346950076360551073209852999178678482221818619411326380900767943308044563213776931166760779846154172420167429553885532545207525619710477115526373147787787386913049930597993337065647729207110629481170162934236264537297871151322707344006692099928359049493169664202067911451540543341321645252508940820994737706192637894849845894770612843777037840849523039898017908841717263627946539085064406913001498299988234978398901642172064597397276615693193084158249386160990752262461912511366693618803579954918551012864693674080555093614458860449556217329206183027741457944507059006094889573134684353050746904682196426580265466972744154366787091305556626420140141187358342556642263219740673640389774557068874877597630405030309953404580821718380909724396445463903538589839286955080844737265725809371783000647670665945207767892788648393126145398204853813037485933804221329163368227790586955681445428203308674378728108822786520015511061196775476598148207316308380046189882934838184760649231924666437734214043245927460857936984402159597225680326812982104285511671502366299695838405187666495131544134558445350478826570584949282569197372512191721395143547426535336771088311209331030490934216960813745813179522242558601483151668243706545948952564938714762107457970093004189191370147114838448299106885983654498933421955505221306595696132018214800442613454888818521868059330065583691021300759600966277673443672116564322443066915843648454802522730139602729427671069651208009020353152126893932201973293954100491986309800110412282613916957716738201979388437262751494340476212238664640506901610790564586818149574354567893540833519520536949009211221743010908918699985857288970657375616083183642566933126173122205846951179050916104678562632054310749552846804464690877227664740006264142619260365797171532237283289753639786938992667668708039134337792620142412197328313623234128757900802281367072264368367300478927743804201744551364603051134451403666807209788209819426699617768674893138712120219517110637875925594054703480254753883627686183982736324175951714217122339356946695327531201202819945501657262996426847827326521397245046355624840537116744692268061518592348042570999338111138347715413881365311957395655323959845123969713534978065818516403405254110695579036436672455353812457500873716614004602211443909441202689790338078161458679685672535852215340335016084505717007798145960590081260493540227010076169801111223060109009304664792347668285353138712309686729611232563837450114692407319920220514297816772490412635924915659883441270082160744054729577234613687038066411296414224817759137617194414056623226186903683572906326660963783686743472444385084837231606965720692007437498850347898799751097612392782137325049564942248600719304996296891605494123061081929148026227593208193066204711086521145386994581823495601730187773216514676105543159580854253164415519951274509632595988750599032436036350481721658278383043977477705608075124244866954874051519163144443469077629100561279425290138516150416711575445957325528547418665358165197092033047273852125376601871192217933950315277098317504102528581613655678332316505488262033298506845836692284355905138118593588292655034199347296988276499807308692830281890938193716989312083278524792917667193302246201184349970515361787163755104986475653720449862250859252209132831059511299134225974509737255814711046251592985750907815145529343753073408271259086899268062324385729605917671355070919032243325249264707349878437627291589597937820906268136318652498426184913834226782457057215372073207346279655761944518936822142993827874343020006290095685805348680024000250713802877058076435089007329989403705728291413509025657292892270067588130738242519378654841215511730236452426370813357261762399108299667736543345481343538028186189191077546855618020964749144183122457864840634840202618025844286483795944594599562540308904633721496038336868606699842106691060665952601574002077383436048054299115019022070525710255408441288395912447555880620710227678027074880103120717308723704555125417105453951979637750864666981399744505780547990886167607127722798492610613219643513958053441891099230311948114390335340670752582085261649693220742113633942479571296617341521121216986998018327795017645748606265564535725094793453223894317705178745340356787221659558802244117227709013369591924044059613129644518932644139754427908275591356011125557140008301661341861487758041457863527937993899307681064561467525397647570539476055070953440579825812119629448325938100002433475138409649158483786756046007483104004118495911565721995973332409213976801910536254525580549728446300138167213519159348779686558447895377933646534838277751727537380338820267703599373944581464252132490838496075584262331792601270778460468770182334125032582372559139641674580243571460193906093612256809819667397083316551993879098366490703166803601403198798723870640357097795767105462644652284495261929944740237885471587858877283917689925622332668268791851037232671117388566332048498988938784937191640961615182118349656851481166536217229110742441775145623637198030882384316889272158264598355810790375407203851747155073039019139957772648417632063844818633595480285724642116176533375354449343589916205140159939739476374310485468811444845892138434147800499834814373895900598833853962944913220659922700532760264185328611342406879114983264401647972292959425120056351271509101522901175484844312511956978187056731362670102841560889748376070613188373152438270592186345495229041528083748047462284785867634010820903820417349229028080268489809738596219504799024439486187419668496256872886078465746425442013608397423294205923785615802855180657472543225234795252131999974818900471926303340185250567321083276629678617378978976548861783624855249492992164699209105219342691481478146138966770971697863484045488704892678815411786030935070446501799509300729602890475326540099748089675165563447111868853489592629531462572106117065191085678215528826972500389674659478593625565945041983299225677997298791498843953746797321894148329842871050294712812027771858188323880406989642559875811905731707409420090296405368969369148662355230481602059374800300560114493129804565754745283657023649968205240525721200934588616325994614152729486537162015907399387355077181249105262802078276156457266616225446548343819325036329341871105984569307138383903740679245518222314490662489241300352986220188015349209204520908686213429899016232144762185032755352512320408803501162518496167754987055060521895200768246554202920875012677330180950067295095012305429036820060835578403782446108202191258568378466025233617484048665716572877495735002576850848166691012529513108545635360525874047361374152435840950335289902410324637526691320606235415159106417818410743448596976384861717359305607441266219150795456350358865356851508153810304565157397930729196709343126274537354383394046001603209781538772506811251417108149251020670579434733261611485782422273394140438539249346026061658203700591257609358787389495948286684238156899664901287961956186162597235983761305538940605179170180969539804267335744502700170382924833260318258089613477833772357399584159846069144634740169402484033450399640628645625265218506387716305914533265956077792376934533704812191180640666397334522136614994018015023791892341420260226218263155395260307865668168172219506410645410978084844484084925064172845452337110832869278780589802949229482247612692690185889772418755175262527978219472713699276815302918733634304320598510348034096723769732973142213292526631794860631692057291687125311517541902528648076308375757374300254994422045923553185623593742045515702416904755540853733061700745378750815202247220503852953602185198832902822695878670209527644255594612298866939151161143096918112792478107623549760801742441998949290204700083239280854737000778158430817640981048762996803586531540369236674390603927446660727721300106258154017888948833627076415209534740474774266425767763658054306461182253040336912710091160036610171658784891651542228432540649566468063610949051263102200531665001731488412923115313853208935166992013898853926667949296455112096549303200833930059931849133668824871134172407997113456616267265531474751748526626595500451930220521859457765178958423198858574095456266505169412344576874765766123370555365917538730598985691130211456403546801471541281119026795024317727592793231476521025983855402832149156701059292389224242580156819979147832992463479968852381946721491507197082029298196142215017805851315474182077677421600918559846619067642118782597119832254657839266455015386459853420097837640734830179741520732446042444759495850340802062003356298105783318133682323412431080099964174487012800790679570677830811288621034844727614773677905654553872149976894105689412846255770953392078597833997542023854343940973030568138078620283065318632916736770683534749760773789315582234140823623960823622091074966168762448039366636311345946120721556196038091327081449297475139207122848977687351734527162488448687864771743520577720256959374308671685946162227480744073125333189532684732645891167039847005442370618339667985952356730060635450297461407722676610444617715926333885899955690272939444378928520998396351488536713960869099287604511341468810760220792359982833674175501415306833356087345519558766701386839809521604508036232049218913859960466087659349147176430366480117416162752218149046138963712997875261343119905184084176929033895100728802277784430084859973864355466525108752438550161421771946778227213439578751733676372540260984450015100926270887544871986959027053227370046595942103331558072800709392729281113989942132650732018477656296892686104542926487023123324052825888615680375428533299131950230948805697485729970700005304739146470521786787526216424534457530188229240996814899205947876513650417935916190347404895418565557704906964197751437409330585738843679161206125774705231903436901309929223136257881928660769587451722434909893808620250823377847721370760730379370314889946409098566162560560227711420335674090690690047834662727316644116023862166331822098779350317940945823274527695480821040515126031550307740716447317999524425388046194555151129249743447622757840207552676159434220471054071185317999121721164741323770648688965305739465453664747167756774462222578802165282786221051872645633886157757840838992849080446005949501150539765165916082864771581310980692676243689883936548235403864092765579658026182623306622395077461555979642028944120570612213249864011752524002298799310273652051458441076714221514504006239014828457953862932448910299365227371813095703504444617904878072023604904295485838349894865177373847383983545655005413151620465657074440835419523408945407007840947626639427719986685897339104304978719063024051508476245556395361675781331803545695349604961762678192197873234023254242639191052090611714271847222991229265122412883935671746284543952431228262805715464948622901761265349484148832584740525476887213018969080820218547294692389714094886841056855376097642608217346980172855725517116903323980365146498938615130409882435864007933080571028819387033525600479742900272318261577917282135128775774655348339455180351655078752415226298951672509576336194845525804299447845884738301340285401167657124532486911209856271286828837365605815838567141593423535072814181335852492474773996496066050131173141207992752625789045068732338962196100925511479544383452528015718741386879380134095596810621843230880379231002738652037231337625221117766430744662171666665791984125905333183037932730164753884701401852915760171639031915580602005023934373122156548856670495202163470896860669091109601429936572151720701604915684969148984739477399393425084236815501055792875294083926739997606869271078361067612613699549666432773450416345798741354603986461842213586932930873852935281199511077579060865861868992775500062441176928040860782472042244299457899309563478464497581307476838110129927273154882126069995505309503081376943345471298577602545776916826853417227457710349272121156225084532238633677227532721091475018248122316843491267553553338268061480641069237103236472484451050182049071938103283643461364219035816137299165710823528873658823998526071882330745695681575454680947938055435783857290543735972806093592939318607620965726755944667055554411954325874139336172201378198789603222131971244956847861372217574207324574344744788969439395806096977459673495750382823787079709011569127916791716344843546338025701693199535126921154095168270898917041158367462913609112950179738681177733910489248815960722978532414114834512126315985703994456202255115909819916072641875971323623711658608158944893438722667082591410492986270007982467512526515043832911524393297384408920465623686562017943712136351190423521069420607196798443024416896603037544610362287558955740043937632375764538377239575767203999865479814844645867313063671027358710184690293847483562101164304299471175907466621750720392482839529075036691704397269612807702637451709487936298521056483328639977738760524999128061561280730620515492948638029885517645019009076590538167650728786707204738033560852845503199957980316764470000406472649518803976170493677097127569027130947422070925241134054593434972473988461070981329596851774179647314260661338284319629662447797207133490436078930617447318330933813265639163941157997099572051431752342781432039217972303480688987945982039963706515354517277228718378402762715468557510422180734246154432511480303408526516911840571861689366309735010091698267750843963821872442124097463339048559414805137116194949657508464736631745055871601260050131435543400620601747237040225142291239921758729972114276142934570750090462020994496704321473843260429858035292316828386064526667905955002033428171810438458863687002930052655091011682847173594745510027517424591972067211498353985568833005864951475862021088448084275935226069311931389945968860143705317430373628665641798988013916977726131337346770420084393654351009130611393819596241587055350208416691495367028020182966390350696790900801247364594292634478864467888793555041966838760082475237416494262398195747358673418295552654366931591445180079694051790109016754381418711152257959737460038687282706560879728554959288812488550054884982799006490243082673800479746668012452693138310500662216759484288472480058201218854002398238670733629596772144530105749499268971548924626866383333815077126886444860684963708662281133169780684188063270585116824972534177056388193776793783553266317902613484471697643329215552666868763308854785890014807420968851006148916381406899302284089929727054540647149292448674322366128170699821568919332410296005487026406559954221615921100823449013663458750249554335376004950208140456849660028676860699294983097123994772568378089960583153886723953366277113804380631931481427330830095695406405559127822984395147481821169414665871500341534301002958000941951901187615027907921956054318708827303445598548401427214918837438293134758940386624479916183587830653396971970765100016026896518691785534844867868507471071207687072961057420436318261612435137024496922850434728260694381790761783007689160614931898822823533863682912892144248720469926148618938040072486776707964906770092110191445614538810365114271699155108016155713172876773844703200448294993280801386157102211349985569066146986775790883511543536551736591062875397059724740931296686572290630060644853785772534007681550578653802935396090961621252608478306500830895020794810934445278499316401560722942103930313148852965983068105067573335822031204873802635994756871945760197978183772366243393936488349868134518094051169976764533086083402015204160507113880279087871752124970198958961684158767260247302003478507557217942122232550810433401249491411400042083173243612761315165985034659501459823914501962193385911507436432508910590871850464920945686680973803331105552152559662101100738202435373035155328558493630660059311221745044045068873764680060558632637414866534339204818637221112502093258930041321058959078883975557473487145417059286273510817207455410491490273744206332648228719151399721873113992410155000403672575951312520500641038423934372715983415129842686021540969726394482480273348437736716796083935438070411496307025759010390226133091574265491355537035298505375457399979210755265346655282150098470136078573440585631472796387206967207331869193794471855691874850672894889202441374834335984592398070083018242985007484518826751229868891013428123104460320076511069184837478204568669728816101115010392672153855187889325389466529127349763165459570434175194462425735020405589869167628141008286127885536885068411433495472634720268690586353876675488592160910626025864046312855215977033808396540326301016663619832453201703076378017689097117759114672938876219407156067040010283662969596324104438425510642396389119242616255082983798221737109641457570677459878097580927270657107530306594499645347583360798234169118625179378463868290894605057499348325410346662799487452546042748275320181784588011693901527113486976567710438783115838294169183357609105611473397661073584856397002620037706458563640984638327736290215169990672282015366596141286114817359528532687659357046151596846639185967991321868859857843186521421725584339174816731477494028524750410963916349659006465861541401690848904657577475280082247019089951815115409087697686375024027626535482677671728372828922278568573857483508589182558808289401352376083606256818379015535990948510252657341154530265624519579722268698166972213171010544839802221979723608224625206162297978855794525106089905932389012702012518245219354909454342524256339318947035203922232400900602082618979500781935147430287085505057911328998526819316723581358627065531784510232474587076246665614696876711476113548493872297571498165149163093703467464208695604798195276604115260226632894551585665871780660769433875658082101038749682133774793604366102098973107886175660982390005248772326221823742170246440831161841855870928990380927473541105920633754559543245789651570109161801016730898845232249973969372900192328962241087337260913443644076574818609996869946399611260115319363469763056691881989900753345567694356472702522410953182888709727303010126016392917089788137265138916804361805139945208692460050027889336398853230876609541478517980610115739859479258719012043732709772372883677198679989502901676838297220209196818946115812126816920393520964238690270452585378489971286772150545312217010274675454133064158571251025913952244792175379606386751908069560490280001248434950124544073135855301610868250249717821940518053772825343232055266572104846199187133999111525921569351957412172955822327623454854424371723321150443490316299160752300308459534877596091508454515690006573071405584986066040891459702235004152751712655758561997970233155444552645112412728368862933887620953026222563066071364699031869779918567729938022070169007175735905318888272156823889784848859577602929363400530133874745019664153320115141939983825505593457528089762416086988915978185141504739429674285286463243390866117670267108513147033108326189098401637333107764161689865895232752790509506676500735283032703432031386159820876360063497459945289931101149056061358781196250715862545481901871837282356077320766056254865885605843562317144737915906656280387580169734964700886298647253309580724172137292127805712403303008448267575234598860141513958333024935644301504744077268884094115997826553755340013092338559026883653463509270783416465804420338066882334533150543307518818158473280024757194200294380015175109839973667282631119094501519815860663421909434079849665067149723736443699901403430377207756198960447560744044804901834597288650966017979512224995113529155245217258070287487805157696948997623522145540559675321806682380708228915064008827732935102324879407727759681624502909953700590846722851636561604535491087624533156862781930359697748952143114474156503577508578839810891487478008888434649942447573439604994767315018789502860469130894227353005761081305422711601397370134349460342345076248603236118381328812761868302220250285156044531975153562000805875020817471888543556900363648149076769939490481882303558849368110790409770913130202488900684479087898190523954980695626755251208549886059561300402589448761181752761750983464461618583640348127856127492631717582944464206440164180053221721761214253135224388153046818644456574997944286021477584675974310062673801127043869720024477854093605536226572208261637799345729413111432089836946261766354258649770578121304487457712271235677104308597459761318411387088653319799712756068381885946621900810229490488312510881040613928034194461491413622579909314402388891231503732840167203728976171724947177902904234818443668101601504102228762378354090667008434534018229029951044836926915547603156892771016978955548682771318459952473441073888631632275727585312302829690562912730359406775664248185865784868781336442078812666400979377288179845727779843206830067004063736159873975699887638917401201025618698030837429503618118777495424494082899432184462442297831077263267808547414749576862107093347866672344712225269731150085534613435563321376657520107526690424002004857069153333241168255590642238603823753612279363795289231689760723243271478293182633357602536214504160918726199797964991428472127888126725323667237177441513107838637503906891319683261468677667431518688990205415512660659020633791335862517343310398830153730323431752361756768448528409274007269496412429854853930447680068474068435250218630495877388139476490315699864806242060913048615304328020751633006661863197949435315428250310357066929640492995943324648415716068322175047900801781073500565409155572558951844747017934663075816621010007329006845106610321090718540152319313232804932393015482345336970828117684196931441298444361255945304956852545866243480037844944963096390151697745210696836477516058821038018361862830089362457914398105186264542162171904340036979245210022511436994427850196236323244496792870566722666590960291086628910611560396497830167092428980010619230115680323860500238152353668804589565801028198564643353407619422430644064800480652057009789842936241952903845382762703561470795425793719944462870767242970310838483186611626874354413393985236062118415660158327114838357745330440437357835961776462832280602195174087108368131343311029689027163753973354951454153796865615493677125813314288881162694433731297006404425971831493832831887840159987996325714605438304693135957149821551161201968364770841573116521179700038637454878086685051137036202291477253354996348544559838636049812192789875681135411606292557782683859246124389948128069163662221351897733165899432375701325863143304622794470553866732528226312786862532421090777891291824952884252355665817399507042614910567725758293298449533972413913482583835992861177050962655886895364461673372880425595772654944496132742439644179448115396889551579706904647823711152651830377832413360999796144480799171246109372653758582066969461172648508559660218367723118567026280756761855012665356897497047834800858905290205962133533991943656262957736631196200415113961806525088359086313527202126631148734723668032357404268798864025316982070579761674196536328174009563522242848260576528862366760041098639713500823474750700155837075921593907579059447084247017437403877684501093670804668146010407382690752018827539803882301776178471821348052580590841220156011498492764868405039439921649387840376804806388262913751271100750808859637922346010805173114295610902194360804181188475312436443106939942844696624924316989830952963292864469829619813614589222853588913635248391898706995640565316449328429826995027315706985369883615573277072283775540792221175113758682419501133292261504136338104046936172369625275662526928650390730509076855624230578434761113948502512496238775712808957381298021626909581503134589055309771824901365773368919399945035482263949666453455995389268145061193143094988933628651826448609918825887093517308693186312319079234683161305267880963976368506403657915608841333963774628828148266814327327428378551556435820932662788348265151217810503186014735994827817667787418232246733552813285572711686801797183285615075110520134028959523791515159608960424973595222212850759786642157813737477953345622819757420688519247323891012422962981221970161019467106643364967415926607591881806592794867269382938189174217942356657852725792219256483946477045149557150026112272011668812486151031932623960401008961900296657972992495636892420283825748665233091196489567759471755028014800778573171523119277223675078858856967694456297931181544869059216993948556673100451865531495288993358196005594986028882137627099564010392407925282479994004972063187095811019587909176794182511856257955622264587520900491194288540635505086984002416843442433611866000464799604297534318481023056954294713513514900708875475599424460358904994652480977221197808406288875919936940315180945484809229932036476860126308501466027693241237788184121938887621861785312537160930714124939775120043029899602244225751311706644798665613526474293227539198509800023754371960000106224888511456985959554803961020973674646452557121087871288597640444186065633915019487240985598474110974526492414457368191409001128117699887221131482259133842089408897202196251261929733458833047392545253400094595471000318627970403668226062583317530892941577660194660740967667711442518848349989259862155353083732314634367939224853489278313736663987944622126643401438919145623996646785199121601819505953591326561403691057956293686048023252700738696002336621934421578460437207113921117131763838380224277585075061167441452781088428946817551093171556291446815707098513767693265545272751666547253630196012699075865600890394800188584900502370893765005687018256751708365137687387842152138222584624752226540992779221683998944388430188203868440341863969758629158272297152899435110681339333269499207915649382671595876346620932742988824713147154899817974681719860797016366861719068529989988926955834042542071461031181033266881573336394659613452289817951167559310900461596223351961216060703249745467897931631581420280843309588359495256468305071676553489430198435878525719616132034326633425083044147903014411686084337027151275365142179288424333275394950592290542901216250616450657749672308031373694958136865147618773917835764580473582610573517905128132900270280876003089565798553175473313179352990483401452786784221035215568356003267234808576761739873355713300293228129468681178760260179090129054296971615490833639677418145453910957980914958905807516957532078953685550280616078027471176710019407381347288018922969487284881306643184235122634593963398554757391132959101008245944592752451480159836778648717388221602705161520921684145176119194124629128476210120140264203953046134940631357613733326359960008319717165854110064919138671650767562340904414371409293938822223211629243348147455867379373000232901148156441913646190405622840384489999654562064776729750250033438215772740226181583822952439814233478304740782417300534421659704982867967979665143622039572320114879348923453996320495389200528577629734199202695697000349583296059008149558129410976321500828652489399021285574475512335021002143920948380888623503823662878689828203599483494098230340471476924681852803926236703285514500213024950018047259708024085384310057170430728100003708388325485476011270266872666500417393602585478820286366565806620400582278870790454271748518417306630131718956031961040413990250939138144230974102923492371021865547164563120628132890916139896297935170440167834592941735535052582420204515563661208670901039538261400436793274460105669602541433091859248617072188798480563285686696799370750997505289807376822073440252452569694037099467642648501993759146087879145471806342748006513939467989947706683177718338928804015223823410241702666660359204582128817545117526434858314957747068888862555560259244850280113780322388273032541325709024291238213399785741030352022733187384288834906371699413460427967860364701936358499573560569062949816720657703989480801705035343052439509548148737880048486728096124454553538731034457327677025242119845944797442171205849693426169360787713601606653811663154968899348365438176118574644537455820859917178152693260934597058917074996316828722378882632194339432631211913692332582864350433745678068189184151341840303460076179594931863145871103110358703224130634775868684723003256643156496476436592395641687335100592752075178363397840487596697499737837504238484378249672022618887324317944841538978284171744340900146405143743170300721196711177050449968328585341031308918267703589400449816513740560473298016844468596164898216965548857508378657723036152201736514494129616670149826523315822142699453938295106263338601831834238492324869871284409392694656220516195402167952575468923159445725746032015076671758224132013257111312021869768455306162662760852047872656935983694096026779733262122117445816478536618889293042060814573084571578543266255129502514363696776337322604241407435986339672451088356708074741401487850847578659238323002165531647913419215789608349760244604632660439562063256110769604647860352391624432209133233077513831191500108979852457811379133624756702460521495897852402034029461946476303898971320035952210003963382065197734241519322968721137276798503889060657992438060406933058787597217875348498233619503335343189304448427058215615345039470051374672300989595812883328634565277058386394727020690162629983732532185819975511346368825103381456741668904159409950155935104758823935749517350541826104260697988013677220957627022792482368033578437433528325260593350241712472471717091863110006520854035822954869012004197800685528435027959656762059674975033315078737479800760734445083946286067179439817426898164606520700691917022308282814208593182062216061909958443833706192361866476347311803180711669682323866521379919561719348446937057517615294683105475666312314231245760860223094203953588127604035007946420262623929397939915098156764171165785295830444771446655676536066682008716168949703098451796102320008407381636855606028423419387187409310265158117986867810898142390570043457287806897027680902942608255750531672079478769099831023422307254782469460749424387365860291113106361522886221346323561373073652922817410671962073684668449981957238354659895807127655252144965892236473065540080166991008523300151329965324041252902842033370553700378721432733871911127000525971469201743211672079961674815413167475651767564722459399840140390803109828248961375404181612677630794506225252717923921283975911542759324600284493091075681386277199590584209218279147701600155073732424171794784048493767495968278628500866143726622134673804791843917077702890449751491634226146081301078813847228372801232906120806144076841121126847024779503933448044928102101451392329934740583826165953603828261777266082571791038182518023005874084119018332597310564980176019013851610080681826840510958010269090572462603296274005924905491446471912827877513332889640326611324924591330407121918556262461265433782896319764821343394390924607429598253176381275161277250810712726154877505461615896833280697325096236150603750200314973061625846803267419778231397095494454002782706392631822749661595236232419445659002032972598103150328493379643025265297670870047025333879823618561007805751358090433193763535365959894657311970623805340475076819217901399903391618176182929469714647920596386820053850107628266136346107682250499199411455155903305439349111501986214150996972338798717004262103674417418771200413564308132490658646629225471838530384905890039272588539017974098757558153563566055248466723303942163814554724021406865225299942720248651569993182286900171903583636294007789617692027996962921614210168360173754680534917595059637339641586508380529446758142545358881233670669218012869128227565556280368412685806675358054863939078072566539201644907181765305134640006165714100982750555800314918325836238974292481871249815199328841328112116058061858533283824982912459999568712419260732588610556256970266481477189832061242006486062013358761617905262424748635035211249653815980780297261622488590046079062483787159963432343514688203592575229074309250028480145803905047694321935900364838246650194833701794739016737937336752786405180184196292520987372416355578048784340372692403686125741790090562303804000600940154563895192203864602851013774511462920148772408384951968979116824342637284273028536716449115568856082267858834800423170271847098143605216175868502300894614525387584220518620370322354473171998299510949271400154777446074486451828371668362253836215663923767827332510010137204609969909185091334841265425595026679391559965373331614084096933310938559421515425628665750375813422289887477871206323891533915189818347548372937978492106932391487610959386902299552796716271584861432069243622112382304285838810943619931311942579496579431835761222749057400005594098882442575442709104763750220971515226051476322554923784459418450005179042149271699857367042806623600498465547095848888777893632402925427715322247734990745186473506463399940464912003879180162183966897001523116414332937215160388214898423972713137577714992471399479878393607929345483558789788110289134035802800194258186186686357092803278421237108788690355779137040234870613108133319425595597990775421980094389832357963551954752731038765928256809702973007759389496162069897136818908437950488139678213288814037818630306375355641937714469204007105302912217975089117771689746060453947219941100456759829342386556921801247210495770357142577872427056222102662182418545549544312362959778410180418479008916023051197744767783723968378920158104877637462503365833044425864083182327018750303716147715566412133483629838082592475548236967408545975712099802788469395282725086053624615800981183835707469001540675008160290487934944429643709836177228956623413073685123287725269959670119838028121788522450988856273361682456497602961041479679878063934386177961300966402271660393245793077641874713804029999145939696595286125175252359427889396250063396240403888898175219993356020827927247970638604969564078016803871540903589404976437741365078614503729917024461975591309736535811778940944961625931928480075868087338650949721619059602799277995315552577479224977189266800449685779767966722976112824319235811390863595663759606418844021456684219801093689551009014294397013978735093092584804269996389521314910228520993674063509162048067284554140600671356269954693474441715313452632951898592353167226571603711324899346199438302128042140303256174110030848334660766646411965791779774914553297299503018551100426486610842428077750638219933734457350184521670151102091398626220464385685103346049157825349267613173961017711978276053604342197032989896262473462716860359029053201936175305103435659575382985546169189405522427088093214756474463623643786208254836274546390171959506333692181227899800200363979529074428217701556012381913097921765430714248846160708740247393325891374772651754925700357411991754469200130376092129919977229052441337429593237779550601186833173476295305473348018046136260015107549376550483575591790108479912154680998586278600781592929486419624159229367797184102615847480289756169673591888583476063013145419095609662249337229421333556782070429874772259790924438692054667570766849895075884929935887529762517788756256605378026414667135077263920183641578342799372106711861033853680374822295654384267756238437742086997398757902631821021086448373076107500691359430186821711901272257041464193148928422926269402982835545879948416614334183009695009069552438881277536778451992312429791206159332460641991971574809115822065827294262640287225071587897104540206343244045438937800872025389661619517425409947208769740862020402611299539677243436902204270484245419587241026804274794765082930496838685765799056711061962507752466757321412275516650939891134148251316970028112962674556518888510850772134126040060083114754994962859270577932914493552075364872183370454719144627393144202226916938914364172347625988397541596324528571952685092443772402134187322943807408124563465980782917122988338652626200145044970692549701824794789395634722729005630095243952888007012136312522007508807528990541238201880562630831759398707624697692554147188938519285387924681046786580534979333339033515723373595650685132377679026349769474930108570099065132540487627622309665981024178186178384709332426764238727846139376988641641054446556600141029158491887810660118240810636991200946275630522108380078250631996808956892804209948879078631089991296668114994213306270040522330870393174903438541988050814619777820927519248526949318147955150044715864436194451168648284969986968266206991423096555200656867010838811237713197747098863839897549474048605222985269115646816864256042032457767207878153488964973965834733206954713633307399347550462124190903255897722028492701037065281048300955291837138345532635056795072264051723829414609246270290528385565460143963176959981594606356094077712763478002693302840764100986123198471012703636500916533161957471634769681919631162132346673482495292725497207527744703977117275625424836018979569033675741955241104058824515200860716978134720344740389450329293567091022674394051926300976819108639272139233048157738668198732309252194073886011410293785258071191833690305774677223594114912334154644612368055920729492269445577054433938746946282721630409875413294614501991441962995513382575848573165336011158952296109059516101561559563146986190009192504448103998330561090848113177321636241954618620523850402087871545983797199958064078075203939779990748311458508026068616896625051196439617452439305017004969873886801098165810502112232866557905397897538702488137547113716645039186459437206124738255755620195297547195089118748485962196022543524744215858859219508335376427018294572389283400980120211734467642895601705163050817356243145170757929053929712863015170370726659536713946348248127454538086352252014932830381323304839495465344770090805895950893847090640306889962159726739693151495510491552051460270725823406729203735213714237381285019581217353430085950768859312466005400732981092259562494487944434527441817140881925627575788664573548260498628046552316112359526968196104248200736362980172936000913145007152466639234391940755272194700166274862754116891012329607219577241979180956107168428155460782209351418573729552503357730472171214674786432931042551849070164993649912132053577090037299555720345728812641074104410014563525962574217862229728869825425878255424156230037077745595570374602458099321049285554530076641523160012808430980620963688610725529914322163673794045743002343561640497020646443320523293415316160480155526536782227437136290387409455135644113313718867445947650503039913153654673632143481145056111112695225514120305806630961700637947511194004228964741805090919865565987592463179131991253259339450124085362470342347426986760684726091185584425068211516603859651967390084490517461383292171237714689731342067849854985596101643359387043514015785490105108436938114718290971727524258975842632713348537843585641002375340393478358822398796109923500363988975417059858983170783238231537016055558348084822835440877273005197012519007319182353005821695636202229560702327650477910282954589123616499442241497975717621461735424847739448116551379315703946125674340907315167557768481869882774805958622430199354391477964626620008097475446047623698456118465257258182700056579860206573234212164160037105443858643596510504737643065559321720140352336161791371115652932743124961708367402660560353878141737994914009584279933192816754232245787845835426758799981189529242926138147922251005915147913507144886183876351226968744389073551513212423849244986115852559259087734945651931449689600017627195734768062904359262846564018918440922310479483184528974711072496533683658474550710553138221199537829538290592840949241405476994412928395592635321774142379308499804959251761333093298710715006455836076903682987197347028407714778037247880730574588078428291201352366917151138281366642024949937902768239971919559776218201485626751183414298670930842839660036994957652952370821078839729133587648348722897598004746524209916190514962718845847192590544392361367316997145432260253880007994324353380385962499042922367842604040152115150820908455154268180680831347147429483506765197688901136524262726325468428479143302480344722046834405252644831160014676385411350916732005319537829641848665431208140162341086650511125933457204362315543788505399871173893920549194053528284272387821194693680658604205430705476980907525227751960001361824943593180501509837496376283742375572056880800942051662510435361145642400037487479757732759978531708622138994317640598630997806871484119815164684437505200918143895947575289881952334918493858310368492160987057380743038328274830962798862625262592020244482204544693620506107549280146648758717833209174409543603612962698545080529837016808590745181214778128329510436614635015740298175112845851673930599364877629533180627222111990744579480607494239204661013224569798352483237237889244025543893898211367654886314297547165767182847798045189504692177075808360103413794926554143026567211470372015352429902746417960201802631257891678010504007622245013324476172145790385187642904691825414473597698709719038850873133335781140130843527717556595470045715148388578763569244121118960785511064171346031642206617039651262157242185051589096964437354282574303289558584020894557969827970429482550385422176760940243297947286306435111590539968974759972432317197311174643523386169211401738228989054624452069304619165443386943038237937845804771809530685137458569839797767098937276913817908809999979541707075946489663098287652790071387389498557527022358922685171606562057606408785443762057320452704144381520371329612007273601233341810763588681745439433125535659910131279511115146179674485015858447534535022283933090659128348889226649667478707661824732350126394053665255354791737207868944200254579107212989595832482833040195124079730381997280608389425130040351987310150428014260494673253688077258320476853199585213172324309499552138929990065753693159550538642646530405218883316767777591177731481989928696324306099186427328603159968047567074805431739424458975556097838820011496410149696122388615882861935907846794883298084960472513609390170705829017416030468470712698539297191735104339584548634240618239004449778170922122736957949575286445212107268895257279603347157686799069718467077851788222504281600836699882383716392336914951468859571479207718130277703258026446857103974250753282169581621063000930262655783657100038427492678394639096451621074829215992093282517350923697789617427630339025517317273373330618743123106552906547389860995933949603795727105175452397071525229794179472560254805665944270558627674886798768563368523179305911544694829195328950763361095662211021161254774486440198531560273637791556221200141458869875205349582374742388053721670375140539516809737585727261826822099599871714619094969666087423919665120272035441480156452992969459719354138794474155254908457954423621311430125153695989731761247106241904863633873233334318652266830245150912792841775093197284096755453672003804385074197273281405701094448804942690319232916441866714334370368148014916752839878943184941955336952122952040815230238756429439523100293809536050802682550546959026027148290893638090536393893339619043303387927550824531521137157344536446201061495124469475184405239442006362065050920474678861619323872129873780110220606187480690205376341544987030253663888005449363110043065548778513124392968854901323004866934719015893998137442808941322750856307382341732198269635391840958937135440212969341654643018191552715695300843393526582454313041386252740466858639961948304597219819964137573750106785446804906203059485896096322583841515648446135519587046214258328220112095208726968986226328311002806193158337742534741897175004883990700358372607019056864467888515381003883624617041148041912873541149677142735664743587115707406706415565856054048455583000265704410486704638783722017134717117992237297034977927688963263982015855280997227983795946927666766324057680160880777101525247514026380421830805626307133050404765301823702895197753540650813769755900457923126519016693848734201610088928416650568999592256166375660054579191145953440077460883101478591124394449122181900402744412161414911771954036916313572863222071310233519464328144826195034227061377448609100934886703485910093142107136951781915468094919121246390276352535118260074478995010991625421281161765894981594158138754015559376836656446857862154007471945007542320775609899149362546949602682123625646786274674026317294894377072740981263123602160735468778378533828957611834842585899785418691151224559963140243132417715808489217170595371508360841554962058433058239201759331588652007929433642195018283793382236716221002721104674545854136061269465365811856745280697119479848469932156518225024229415638057556723092688338261484290538880525588814954853787105928478610120909277057183497233649666927363309812711953727250963003300995886169187313081390152096328667572363953509048921396197306715294376914746054569642209746942477828342366801616511983503708378463972952957639220113366656299020904788149280846020374108306898031345929373051164630690828303624301324645936123367881407803648678152074518163441462883442596317796054268843834623158160815487821520925720701799601343922109208715061487831837992291833025316676540538593099153815165732611835617178738591538180883186751462786564803229325465532340801281383684287829165311419951515915912114296046337229621303779219994744229862788821075902854545201167349060545029563714388516846986806399641815476753065624350659839280283254778515009269008474464943478685501523440510852928151626698854175182811869421920326337505051968110673014170280509054804990319617706863275134139828034867367610170873756152172170128563250797651026612820172786919801629580823054841456336483749782473667484169181855390736450998864146315887319558280947729276326903035212020552250152159951588709582642663292626207475593582640002845832581982143465125829220816434725457474424636721390364127198017995178527055437926382510062697854798322407309622502620143971929664344274590348495902574766654688180470041603084509506962689032157196226740596786438103411130075347172837608657655258657181993033800585492745459006730525386612113406967388433663020703719552672727445641820543594107389103391032089510170404698675515742160369546484930780879149853299632287915641077786880533448205648895430848851361876526602918087989213858824646133753158591402218799281032321083077448587555856364003324158963552423468093421993363200601029889866466768578216696119048372491008281305376897962860307480860668366247659464149377328889086237473883761972118225032034380755551897520326075113861033621360902753945443240890989895927276788429505495795736163256589391429074497444864465708130824949991009415047253175248182179540148198807467563338401945569686064422351488387991692879331859026535566236784799851687673588822839608418119155437238346624435382663349596584391548607751847118824826476524872093560167518100928731637559811979332831937229230043124566036921130723204362782696107798757089794781459406466300401091082939084959835677112043057614466440931175762654448062074425155342137287300418675691928469749262322957239269870411184042909450859970460297879888227113696405856565456008742794753880849063680991398706197604219723817932385529593848813840149523567308341552293286999303944265127686030227326402138578993685469866463242206255857743294618363647747885593055642665876064640021191301980104212921634347826049600295098964683203140275124188854927280227151514185802262514864758134722471827266639850042194098802499140790412549876755296073248290623451589366450380966832354225405347061358496462878478676864881918535529177791638699227592252573230515491861863304975669451764642204740422604100637267577692389654581574174339309397696248426762164526914072822756396920198176911364080876012371443992715452130172623914248341815242194431841196226514309522988788731111347762301762681425234735195780793622833088529852050464587829894357850013857325613803019840054613489448317831449164681143661079304825352724002478987600529290778002512384306691551243696525959195153745944706581034198600122675253161945652670221705013522255306921817254311859855920292299243046967216580709560294035437315920474820744685230509260622991605125642331752981618593320106296117957166895577580062803600736016285237625664713878096445562803821206813889855678282421477897305936928089228286621835301676325211373382354543443407594505039945797382935674274005638601701739798033629702456838958311218052838089944155718356670397483991377730677880056491364417708152154633933394813843585351162630003519095780287284974401176185439432933409347358116165062132117598232855263295246573440531380210565251801654784421896929919549840134152033869080893697062238102706582241343925795563927957677811703180899038340679783930821035145299333832361543639031778032979759782900133314738276423946093844371511491376375751318790938205466318300495186578023660625264670917625534481076375802033535133384368386043146167759532127701182307123457364453337276585577784212057585899966176499052000810677225915895474878504498291032418212869992758377219940406714866635451887253685535612661074263841825292031848093834461704820076206250739917202025011026681092683049854102342034445396244365777256506039013948768757836180248719274345615420356377426842643594800112786635076996781546884797113272824274718815385324466679287825061276763455804016432397410833680997859413747163942559343537930154233860463109710857541985820590521017776540662677962557629603483116896297001855579293404597003589043801180289012658149166065992028285905982664355588009670356228790242752646779767480117247772712745104036750936188473851934720517578644388632051278625788391803562850156731936655064118860957232586363578310163761551183753323071463774734505381190999127914378281606977354644496491129556895265092325749877049190927085133621836006929787765043708889788967370016021017536507175824360567081647747434092990567666541644179673261846644794423274891457755715305753352788265448607773256959136019860798408144878478956237602339869766323135557828339057026147108055425623895407144142441299944874292974658104896328714288783753605595613610324001588215447057258915939358777164604628152565882308420276305134694482913569396013126560648230375536668888268939576752993871733582009599167718891666093333504244715565583344214076370705902757963915918512965976874419763884264380177379714860022244244478049896373219546072181337740437729671454804744366538099145373459449259350169089093925261781422723614300179043466941184939120710745116607831454205109114802524198730029139253801850427593970896406211594393219058308826323926658486505715651176828406522866307225582882295538015520470169169339131971398159938929780073403342111316323579957534468640639528684559539498754366881541542603531507741744690933300856078720736739364640923510653279770799535824929143059706969206049079205683898039649199323645496171749082780666472473798363064293335826783198990539354490611050860144989192973407236604051137649055442424016442320811745687274382250137768249823747774588711907696738304557217241575516929441196092034840711956079019288930902742348773385122639207182417691474645113156106102294591463516344302835127991539163863709630285444604606413595532041704515623422133811424021087572734523110768264934841682081842562297526889618204645528312432479401815493562009011524561406258052166904359003048769541457642722338168861402539868584286977411026253913114819905094613753224947970877739530389039782888341667781483406291649506171201236735727048802669386486412047366585282956873972886127966753365216582209303618774339272159282878456182260631799915590885779203320211073656104095646465628382070498914307223929098638923381490507699072720634773443425994202814604197016705933038045599914319511601281649772262093336082899691876889509192376228427378646532602309131843198559990167701502510380283851433301287218543227629068162845758385030909245167716603482920395132630832022320697870398900891938164936179847845596997503600091599923670561637605412154611014201467770631614698826674455344973586589804124601895909825342984570882450225363724467115147703914275783965808760839223536554510771125483013928893375240555052413634286801248990819605110261754136708254751851219804475008141904874203396705472616426451958880420186905275158817405875810213464019494423483204033866840419505267499581795079602608877365406583275858687216268970673193127276225523837471926248415422561739239592160473399926797218117850086232122170875473939650480929403859437443089303876435253333674207866644342819696505540850231693674681047086381365690213487075819802878712098680444824837957564301800061276753704824582193224810512099186015834451376362355321252487855376738881683787066734389094670089159661681313158872448737216984615715536803635771957433871206032206635059684464547915903583667507732910025399454090417754734142006997983433275409922895983764729667416806556946127526589894851934644807467661961505100233825924057475625265793148678561987978913210067917927759046945015138447850047702893494487219193206162011468235441737977478408103659409797661975072332568208102794211349741509666396058361570813687034492325898055689047707847662318716214092528349051633573667017632173484707563144365672327348192671830175431796803002581294871572281885926008902451794901435919997901325582360939599971167075524258393914479354377189746162319371562461419694542188708463861684121520051879538956245128502164288758289691380004494087926903273725887995708267102081082244241783777454664030915514568816677569877239294193207457888933817759144126518644341026095709032370992656789197987021434311485344287583341908340358429273375013494787269068884801894685962502285980628958701650835364095479170586731344966254024230632165248906517560215613381706368089626994171781423607700287038695800527333492845286783612925397260426143401114629808061566934531536100967246167653463216536331170480418192572382873461081493612310841339832848175115520957439931392954610815057929973778329986503731290535266401021969337710280627388856944089619948423654762082139686743154800768120052393693800536704195323733807944072871239843756153887980895493121538986912653499166643600303802709572333453797303356469114891054034349871317689518323916411323569255985512056864963765648386289447487840035493899201151378591116224675916566083182525424834568222016807195609449623316397989817775533941736886437998492588686454580836909069672342606742125118297473213733649589260354837284629971216568273576139008730606893099686472306153495504697225791494531453173561566634636876642452607329214078324816907519392054873536183045834576859991934801596141928901982728246636145316749342774027137924618095506822683006109969600107583703799265273369748069010721542184928242737738489604714799897610724212672076330646678969353492060435978481764789339763428136665205629610635469354076492231712862113694004698655411873402631944449902892618290339837834051009083506181904777990262440101314641278772577399075767927185308512204941527849510984667581860410273567715080715308678457925170158044731826800402166682814800618878184292622994497283875917110150584136692178928310838802865161261488164997605731860104463230328550083302427220085429716839408312993267541719449754776664872246574250872575651577095486585973439663533321624332594809196714661677008208394201402045967773480634390233698534397787464517603200322933345394588210571353982874931177381515921490015788889989167655674715522658385569269546606492673543731954832041426005576306116906421214711646329472873416193948395512878356169726572359692233795105706000542228966967970372811745848836511408076197955711129407670811518377951633748097919616023433200475754451782318440305167144686642790592413744689587289737318677525325824855536366397222490164187781770579326084183374379259942017823855467577591891773087422979726980383058023751701768722025022463771163209597644657354527825305728293706158931544312643853212565557756922382577099945506262448028391324150832875179681868952696637509143678523156924270667267771836264566080793243568261012450096695700287998066253061541187955237847592129515768481685172257770488446796235181087430635666661838013138562999888200764625463733386213779853647404771913649319854129219875715822122377925806531397027647660957179871939831601504310803672708915576645434673755416853788072638294830987880121161497270711363226707383557474832593402673312995050345663391948950758218843901806960894452292130438361629920051068680248747318907064963951090057217100821137292441450663299589326017569282661337917150139434298817066154960656066017807305210837762534921271741684875668655813267634838589598221322859144258542195778154474392196855865005035509777937028811885142029756371275240879146412615046846178705246778593872425650014697701961668780964545871318061099349809254612764484143727694872579224451572180375974258534655630701850779221508866356128596334828394370459472368825232308446750869630591756371562836951698975302507899848375954278754200131802661112325519795461876994852425179354018941295088182955654761974862810361972128696716097222326545256835239559484467486772310903001959859509703379921903188870641856684867153868731029629737722900392154992892991568786589246360891965707701364548649726478052844548802241762910957512768302406581319200141147150681669842871051287534366376901133721332526862212661132349442840373202703492477251190744874562762294105923338864040160167460467357777095583951031365134730947466590899307048815053310790675765275238039034035545263327632800682038079954408536178935915438288298006072039960143604601445215133599822988004979616741404227073707750012104576721819407221618225961340171485130184018116738282647847667023083858855375202711523379437233249270679459572230241717183027128602749823062016116000346815436424094958091573389519431262247228371755408850597729585892957650215093480958904337815542634909992935934109659412179192616237167452678204587309471636594432581372147453077922851621154520773100387452790304933856572831246992886206706055722297254266155433733130387740910349318937369673667020055198785938056626911315075677058462678225628295954172589288793123696575478951657928044572424624708552817683370902710186496871476595978855651498132264695908105151872992785032639231196572910287354150700620798990337713916356251774065093093690880369339572754906823476519371591530176723752881986302004145965862993467278652865102765757860579232063640302702064001449982245046958254746589904644716007078583546930463861010772863795131575466113602507980697414314448759575936014707101977881709470265691573774878865527438311529864834596352499410171931775709821175264782172079468921605626817829717804135595765162312069917806752563888017201911488185882019919295821016043154008043815033720682323736940683536050749531434972845909269782242047715902137651852130259938324836470033981352698685749118928082772398873972468584669372605772443710300087636389439453579836136739239165722193832472028590367757750050748845808758250839741947704917064039805291386864688707094628493590637741319414473876621634525971329282392663545261561989669149869396436405103514576894916944381731754044247269638469642290998232011429505937769568571819743673713825435412118136621972340263133834626026498003241873089580009586121597914771098434148152154733742364789951903170974512572174100094818815199324040617641759154696919062692968273079553142890518001850207837819377835740065827035704533717571759353522009624316218744121802868214734555688965166266359550076213402604840384121240124177085665585638121509685664624372649336737961346537775805415663013831770939077418627126484465373699061466045565978546146212070692535345397836919014419827285805829746055309137109507955997537118685064248789759003388409884355003434979928804543138348298538798568153345900595677124224391751538298289563149206538827013846101534882133101639085382663870411096563884574254364496330864002090028118092490503207917065458581573642593633197209067228738672685268877433014173498068476439635899725071502509460644610906310626499399815057652618200227983760647937136161642317020892889477076694653139590016366549933264328608348364471021454697584145953821731712715665969955876492213524819067261302821581156021428651908758352191847626824628210894018322902913301271519418116433756159713055999523105136918392230232579527078923288656723762526312603961600436380276880651326171770684231416448344682385849016853129399895207112096761384325016663882184873640151856223019504284368274961903392439649645241527987052294889538198725825472870443981248844330631354396609281331930733495222605386946091747668417657986870072939780139861573123273285223231890430523019383470138962220169941327208853452635314236276578276386719434625628527923584198019278342024229836204736477564814810481974629912291943118944689262643389347763695610940448561317834116043417401460940203726199549016322242905445175687588605752635160356251580820873911961613440818387384178959104936003711106693594199023854203211821798116923660304083658957996393579597675550867166661515429343729483087427908650836568736243523804513340310508018427948620157368265459217656910541357464467206498432533169825265290711697743082108800596980475040308596920936538541099491929297207692214130299843924797566857339140186882505674865918483777039332076474506145705196292200194000684977306326099885461189058063367716241628780819569603049992577169467438353993257790145207153674156043354359987042700836553592174943454233747402656912899420075420070670827630255782599733547090777390432651475546272699470957206553064827294854216861700770413937018783121171511939445159062159501791514514983991995016423435985837978984687203007131126660311663459376944012080062577677525199762617687709127468988377921856586666710594786256096188198545059229951242425263849994294185181598345129445499189636312667218754942478237701374912428558596867239832109860245148365423323681484540547412987602295739602340025382336411730584183645449344727587603552618985314425311727279253155294067610672457114196984164329595565028189638604324926169638034268308300300052492078263577599034905990781178261418370403099184691043202027414767750734801057461767452925903042361334917493900801330416802830976371976678205299495719189304662696185954163308647738507328367075182160039297896273132500140778586386295610839112286812985439608805662594824005659864672893230145167088704004266575516943188899995346691524854646122173983517490818052477635358327242077398219644935444320744517679243176892541017686713565670962557861178830407506122994080916262427170785752438112151853396070580514270859586614692242286259976591268905461363669484049620580395141749271806327454095495928717673806829018741212340934373117613157255080239823968401911540436685468914800941670212640479828742961453096811193893555941770890072488065250960119086128045885816957224182923018181523592948192454917371988265117739279923985586126847425868271952522303752237822082782004867860823251614956465427959250405786519689074546643041869243319517783925355725806657911644395389581263255800182448545134730457065850767661024311227237943513737894342135446639989742983979649341817988945335067580396410599978437089877143467047421646852658987074887322157213469073004278338549630205845582265849239217468911741611761509386132978070579872399383959888620662618751721933085280835547502296289225635602285454356768827252317440623698513988070024788808211372397028109810225427119209395947557318716416090558481617692360054257023350283087417613771570115462925072899665695004467894403902442686871507207798895419527532984533419114540489479012083859150044677234597633656891234601327882421119517035733096182887361271407433497449571473447212194820010410792697994419671545280529073067373073104858029957609022534119535219424196816906333548291386109790933442867688750120935717058905290179044420411281045143395248540231585856273354028727119029652766975606244947510348687232034436435349103738493368470320555561546348187996136578949480048460450535876091300543328117768414871875725979163611223684442667590336033457425429102902439057880302009446933516365518353393304605540510506488114804056768538115333004135133194829233397364121607692933532589046955461918580291438168861192502301519769036709771398014847351131225505762649109592806808748220320829297471388985186277173529789704439547825276949105037337757383353421308723590728473201132284111043213947006221954377958904153438106607496203265986534009139498725770025181483639545608191194048082896383025818302700758969710512616614106845892324583130810317737690490065438458288716158551428266904741583379556315713519769948642186827009952995748983540067064254780401947981324702561750774174274840048134609341056002599946068358089739152079621224767546401150378577122872953182981661085653234992744067260269397258222271204743540265705037142381494326836008186143253784031445339670059904274175367132225806786608404213628898244232535515834920564336117634020713175620972391942792371560206554797264250508178819327157188816921084163243961303398611209512811370923088242106591208262063501090881946559830381148521430167504024917572312984990421838943040664953048331257187273482069660658096665527050795890099031399324809289487085321295348127372813508000936846218964900360225467164673160743971210175264734099900434079746583727369883194267415667368378417675609043390552895102686291894838512324617779879873380004024784708525825350502059424654514427918088678569188468631209006645787471884380144231020766795587232039076333802073769416658614107394553350767813237907090225029823325511300783088158172488944604027009544755578734174896035324405283113978235765451160616491904943392303267134181718560871131766420248889114845088746988050013178599942507488569673821958277378270245422203990459006145071516658490851189088899408452712254211454076056190464980407850230463823393931953609297033526296618854663611754416492527749023669351018174035637085359391161006019829629618298099790180540003975715282085608823382291512590454350080081900445316389994060276399953338993371720004332905551216044662745415053468656402603174727565336979581437276515916087673797766358472008616172122431606842875614143192868025573545843420119313128155063850161817913663944293022734148050400118293088435977333852130532905132448500061401492842240179447043940383970176037422374690853409140752057275108546648754233117892711387712271492899804155531144241793833631952349665643050261969021178150580096095669904694569513502883741421672346825564157416481432991018268942681205632066848589167589363130788915598971615622103933999886973294656519774665572148764786064825622796179603468205555582420382497092761625801661467404672245124314705780820500066532169145538024338098383521799506084655293678742034422210325302624895638569751816112753081652524749316844701668330802360351919662769426102115702817424016722461660330830912701878470154670931641490814400143619188900496491774296867806852263572287076696485548086714542625536149618403709677719698049842507856534362297767922646333946793436444506627710618568618411773552364641200251135326891432398860134311585436783304135186442993402312335659197517500855298827750020013533884913968582842620466048674896804415646688808107561033737832397372367889443008908022569834658450299049426910068319163142133181322001887067941236562821080610405998843638583532138341360745608939756922596804234462984730758534964463914768254916153417959923074112564410232471070175955495373630366369420781245823432606451723417563176899759347142532796775751107258180508906783440363884693475743007357427581844219943241811829741962639252933385714323978530926646018632247132642994375699052441556178565361335616773137368248462313656264899059153617475060081646405148277251165296569166502343504852880528009393492981284946182962635473331686958610410532785592544142235645419767593134343672346291120451864877185485723513344591575091193239094647758330772483221549356476423389002619643692006632448374587604363996080253084723400292321134734979499822036504695097750347949192527001936649852047375760526071667724421663294253775300819564278303387056575840699079646987497327159857423542850823034797016681477139186848812430026693704866030956391925674412307411517164906194161750855912365697665228579201570718863732535926411784333247346683967423813914740320549021973485753795650708254162687283742043146820772513140522735671651502144003443437677331228592033406447699486654424885882280181401409984301213204968931228086295106589746573645766438770917090724717476369902204101298612754810989308004584202747102197353214925804457040018404813511701204431751027149452477294724362529481508444584045958154535574054831475649703791290364985514428427972415820281685321090243091016369996185910628580973285661413173511340994774806343386397381808859438087637397399817769836634050578819609235563393040055512746799233123026078015691214003037820129408115234744274054220368969367465240140495286122459415655508583303588219316223882152749117609699399770393159918190647497893725276996765274866585087535088327009409848939682890742872672469161001555459021956439578777398331401507081763545275142078655578155467259199324767770645241512860669226005252005733509808397453482545063244219760512904497839668518618877148893385763776460073654838025655854433165566923737825391802532854201772417398325618195111462330179585894480462635909238522180159357561039274118797234870919140127105631316186356574419491437311286690558620674048066342704704279089476369607794260237982480609340488465610702032299185762275976098554652698341505542083565012813241142183889140941271968408321137826285033345829743366264568789636883000012725689518112164682162178230833288003235027577258950010478983916679960691005932071163908434174646971612044493826986675555112958438452627967313826619526559689740026561350014802770882388294578908458715325566472929524183432870513262507628007940174071864868937064451616203062918446365843507999658206723091908686597522225716698601499484639408900690817769369916715506037960595909516847429324483377608761623850836577370613269462929272224631716220365648084321586011881375287224962010034078922101476276553995543710288925969788563056109661551644841756462110821623838546888075001354691841059948424586620477957267468197724553555755842188818665304767095306245400397822969079152672955640960505351824277508956727227392134014289886131375137717049969509790056815295545368789250698994742676277600779803929739131059049940227099161853474089019491993317824667869720462127576390497816947063403397754080013526072243141606615707579801207408918905065091025200628207060036509141837263696485791804045767329612140219089295051672547997344477760451455250100070497894667233507083493496250829672017222511336038816914779819740283352516545175776857466890322499218046523459703454619696370436310265360455353204295821771093022145097908167880369762297596765998842642914593011128614453986511409860035308431651003575234548813155438611822419455823406425382703737049174988322171634574797933753395211627277536945525204519219103884300133110510134889749054070646238501534676643619216677539349014967089543120722803344139189700819175732878958924418141834080392335867599380315448101731811880067903942910061456960700739684937739096704090287977457832181532931873366063237771909288087354187082668844186910576026177745950348551240023716010211228187918326523375999196132075093870318420257729893895207062769354079892978441597856085194133008315417592419115844347974366076575532678708076468903359833615915187710708358031439150196434641175444523505478960936914053690173748125403053106750636702133489692619799857261789148416948806999899950076009234495002080913009549207986042475146380039645317094213764827207830733657650255581977714333035330359437257914669809635973818364156103157407247789846714114635061094214177875023904433278028642559183053933268135926180203615626394896827879861657924777005718061401713131941321242671783501494769035288862109204443658700126083241040619809285664389136863510574175271645097023865210544394580423076926498016701518702377962634810234120117094366296194107602249644868492732022890606685167885357367302128152596626943588750279512496795014420724498437675830361402073001772059540892530913344595518215582877606467116921509903603403657666212166097511287981672323214429892805073556693615645522170311478372118642846697778290575072948466604236396518623395768552925834253031070610037685607319279980117532123305750003599620013420969277675732292030209592312859916347863747564590935705026393281271615879623810708854498422617735279409595859867541572454780481753389429395951455601606449491132770517664392513116273587306919515995948552796420358168803754384423145717183692277463874353191295844156552060354629827819776133068673615903219597906358835721118533274012602258724809843642325511680599456714547849787784817714856134611916993357679189967656599351847337943018138974858598091745273021235697174913163342262633904567579877980931922112622195853430050429814822756325824850413382713053860042514027890124200001350715278490680959456544186433413208475713921825949735418874192572100379003032005527278307084375600759724567179248741229086333564194277672798646630446442799311621805377776682197747362488832470498718882185304553561025909107246398160984007431787381205762747916517991523429403193132120443803810645943101989730678984825383543545778067365056130688714222954597151886162625824275788770187845787270795174422374584612335246314392210233460150213609890495437867549580157309712392256006870658710782451479948326555417142004161960296224397828222359409971986586312300195921959009661688558457725435071360157234714425678499167209367373383630549990305163656609106109523618933295951061155673795697418142372526766876148813387380378262601336796205520065907148813241239725991726262299713194258246097682570223478283285106844273311053133182599088928842285658721638371686507013064985888861492719699868790146360430077797175568885206524271790713876174715944482777442294497276987094069895756173393378379986239785216179482102400898246878014420931120799971857589627456050629212737196024771659005642598796285097360806895506971383785566622331868338823069895018685484314708316626152953481564319682808236428861345521639784084030788639268385218014072047300543990483808162551139302913945956629188282803224586463663157898726237492313236522163362643656487859500343977838089649922576474962445593846503218855626457087198894067379607892069154404337842748447774151628816592306520243671155015636069550094970878833669049215827795865678217981319355017513113321596583086346611553534748745985864066713194462817100500045686717898534673123795102709252899738337558379389443043620302442926339197229155754312277433791497067571060619464293325767510685689111798899629012399277846547294248217140887939460269681263779634422612977889114457439172091999032222871021828863809308274618969182141090653311919337510375245977095072310558452925615761441667042856781922694558860861671133020573711930529035345291299204628868534163371203403501387596705273025224564423667901375260464145323531884438634963323112245065765201548885540796615711807871588766489853898992280504593454027582028886252140753396749801517466715283897695245123957082804187944390716754507565185207705335884364067662827003628469317670976309622414714076258135936174890743442443967385695092619404782683154309812372170066052455072862300120942330350500105815261638446920622193307004526481579999210830711984339691292667837995471695745978846848415412896696944732861449532789272359844630343241136479518520292640538683161888860900645850698935758985259752010206510555368842067515564306712171571225379262367414527593256649198904572077728838893219152933307190479034441426034184481862519073525038854477574433064274095475853880379127095001958023946682680024403781829616925525423760777149406521278978148307937006094243164256864621815023996559862672659544582278919434897334919106758525041910802765161235954437819310722997842034781385160271045729360046901861578481180177420201822114874020034151624151576608094476803917036511870623408913774234853409665452501029271247809850751355575073394397526748638353780885244770014813063288412959490320960234490451700408426359676833890492578934015285399821629361980770048603219565119645075758947400123199577077279857905727751250557682565019122931781768374878900148746732095723133932250651270866121518316500330240256430691205686952130795046909406397107943097523757341822244650989501410910488000366486615318359172897799093574976952536274984040998828228828806880780238672034404401246436648563885752407374630037590623523201778539949524665773355728764055748634311442225654648631205971320875811721977720409604282250952810910299275800330260280467367995784431225151758065011026095334319534437072299871026565020470730251598795646992233726067718118867419527140797687692896629317911126369931019746493456134750902607773423163579373438565897863958617627718716761888441599125156236961992590050098206061109395052076129631977241083544769699734533585957691695191605882511079900622979832627488472437636128438539073117949764603624709193761124797475284501649597343631039781985595963941849206746385868307911386009879838923277542481675173092715480487653419836891273284539232299646606091252766525442142955257350417816465247837792791302077159017316298820845700545980075887493640533300132811498355164722939755582296491771316088093517506144141555364808350964672488032082271049950385241880718053605468012570785506025041221027427899974624288664246844315032668759516186188471770514726117947698309965046000252446620218273131912696179803497149504745194380060226514883836874956619815526128017756413353071294542373700807442495409695431549243714164382858184126374255109430825645977519798816926568840920399847615441228052711943858232188831266808373022350514881007587696413297269642890023097586120109690028691180911339575449144621352295978150204063102030300790413997262065819759848148706382837408487002440604141616476977698353940676646708905228558493300402989268030049105382993075061527761659319576995969495185381779852524967654870696728266378587935649062953681053042827373776537655321242510371710051457944221016826128680403844785579512647298128444369728384662431659087104876038410538549064384354777622981433355508113848683566436642846298719600270795456555123062297293585488445747040882700169220293404769569210617322553784339702267578705943817676447220659682582983982910466664573712928760329407322666576301221080870819253340750859530969590767406114774759114057581789393740939384561373942150855000901439541565293884205335119368371334188842248953177239147622270908193059754678339715003296964025245516479075931464527297996794097035318827544469442422347117525956913230568688684847462532923087374958888242905576427481742716207531034820543897111087263723172440794109728372930518169521032229819942757707684023368466489134478929423516645307855543921067955803264430360364353012014156353991049153668632162924375214124609551924986054810355448248073429864374666272650547217716159121722563261175242790638498604471185575280926232017165502824237939441085170639141986648910238467093777685351690826589997609471660762593897797142081445794276561643037366988870793004678786236621391719387887379895597622333725756462019594796741431034306504463856339861334291205901624042950107940726998555528058212311775143714538923070312987589292122702891440966685435738112524538488436140269418254609169783212970289445396816198317265169032864850265926350935492296463891067656822357601318548996447299219087328619732135561839306113580270349338019409555049128786975107000424150658458953370051981394998567994374386964906180568072735844065390825160805266272710492473327282857136059743911115559668464746586557166134039628972967792179696735748149852466028993604281340990991078745973128319335512306468815961163272581211271367275505867025966987514163404717847443567769918381277147068885518323831335954299977221551348046418270137344375979786704851453680100083935006740398139107293487771413913510146025704248474244462101728771363018927824571971427000933705368786981784746512807861775214349588409311245551077080563910527179814541678860468769074566283943197320058314928917461442642362325722496208383865119220475791216955414898833198420480632014055922132353485264067064154710213204960943926141700450712214481303754894737596560127804373167830101509661931406483005542090658483119633625214593549394771659331288477744403376359227839755623101091633962528650819887999828089246393401876025435139234832015584481116319502926082120395413834239218409585634073844275987887161518964379373932824980806765985698177444265434979542087458703631115793249260583060688149417298001077115898931229969456383140880067034383644452976289844348683835654762997622326144561554088248046641496874381945336089007132808012797184235559268854987519078388649614595532348302045479792469320298428328841945567709413634586232946298522811443448187698337588305721036510022532492134233551494291550926298825495019451387000641550792577087528636312421677186061483085026628279252051670326701018621927440015195587376598785026950286272346189427267721369485396937088873285294927121438689263304237854429719017659238993186472822301827268895848044703218770088825251344501367330632094081563871996147769570616381178908348439365506189923591620822451968224842036196337316527140816756112980446518207003734427564015236233053053372109522284547346361797537786180177926146212507780287259520246284233133585650815739848144328785242478970372758508418382111120154805360107893247183652793892517324010186138606017199382645011114303587257703675992319276713036479290953756911000879234871137587185355784271046598496613266816290329961740748911473205567159716859961764479099821894029558902613978333963052402040962248475506673020531861230840904904321680935973039243742803966513116224734398780098598565643639515628683617370482440200629809560795334119147758503770014148554793265724993516077149586707917968829876144949587611522984788764021976411620953056877940717939515219903443498100240802245131816085353043226462046178669956383661101354236643544400253044269671124277884683876432062980299780259615339481942583965222997698903564793078729503121646270544458930757237465116271191590883354427415816766312543914589925366883069979939154742388894554271652451862472559189391256569129171192679243780524250435209826040639837426273899708909269219682089821247081671246140613371543271026746873467809652147829778348149241347929092977610301553158569842421456569155619856701181431133978962951020210791849200005883188960330331700763002422344542939354147654809730051009291179574978132531377696281902844792376602216010896341230944556188588263238961596019296007836270703184895354140498078098222539503890532636679762206521632901112581569587670781090610720377114734034453236223533713855675064271079519160687947552746115777091662224824233643227929835448148291071383544590001637514668204575808266442737593400825601390679954564224305438803124589680861294298561811128649211773838007330937674929299744932485970298588175506331977663048190570718601055016982372743192857952165738232099841516307420906832840334149518889769266719759673282963301160799209517807733392808720085303451905679939424250542269474200694856819590581622997187261795482429810021390753082042258121712258782963885885241979645542240309899906789999912312966747032448988128115625543635927305641493507977897901273923636957616380056568985469469695317962445693751502818263223363366590340578688690393761328915539213720193737855761521578594684247597934820563139441392314175747965086700059035688344970099249232365182125607736019574556938133293463414686661737575477305758887585310765920017868439107222405121122866720933813985393026609788743239719811320627376799291220608397343629846266850419339660425491046275035767889906298433841850375843431544669358485415351568012310856057721514504956625179520489723931979555055900045458110910031998746279036337070457064469648145997964697204235720707379457285935079461989098373764130710464822033289378107786027725238029526375066597054019362830330586035058140732530755100700230325776780628338152238774853342686327664473850873142666821003160390788707824011928597919434226716560039774462463198986559510808877348258764781586317429401954335572183935860147357936106386233710798655809890717218899221531666119139326300816907685497938783609414042592299264189479452563859403779007889507063930217254076001450526623291590240388589553543919701069173114749004931526380791794596481030648464153114010417795104500050412045303328352461200183969697700581871847544843848210066112148729359939993801662101060750275050098138615659023448078722481716756076993134682117121888023291004273810350427027995431680025952483673371954134614924796926887743827544596058546193412405717358314670727432830347429495753211076626014728427558568266890056565278545568472331189889877906956216685766218963773327317304952764590318623817636754172863486353586778751232465295752081552870835466843808114171394483725110307615216648463310069640014535790317832926023634958072373122356275527458021318183370467362681745819327681194381606651142389958416807917248902130238988983038042701182215346918705498840675273296784638499816433926477586175596611759606489205875161802446220134343130097849006539001125611016789932954360653912588822235737657961809564583568302542184267572640540797159411146755371133043482126648088532738464307893707452668111993155816159931960658621882483471875330160078926463403472654800901442660848060842973644660118191323215817655370661137909219711243968071949878591419107350470564433234044957013849385683965759287483718211994034413098317399987935662098656718094523314428293903628141237481268604585713408866855394232269461804795963381901320713048321182010930635196448836375010001307049701929151834192528028265012449972888672371334887589130480057910861465132244776319205220144174345691634484102990152576974213272109524864635534230238968107166805096715051839246048035427734593875307567299509689664411433337796039524711682172250093323927333812517495389195150191884415291130386478890024539088799559664123017888023122707648266594389160369540673492526469999769167088275033375927139360878193824165689764956354228369521739027301683639571675789564772910842274604553561447170890446706464849491267552133081611529267099639202250163867365940295416845198983306265458838625381023752980145090119538258458438578511853687247100817806004884652855497191798295383730959317141033769797077804958570721354442347477208176148353845664806716084680672937793430086481503029425674241431871743800574314126356231612771126618055213166954093189532393290881631457346153279219966763926204622718181351889306236945135402956325838754811003831952879424152693168887769941624031132650216023773455614931965057170592018162057383191348021012448939449290804819343661332485522466125727603518850994938134453616489636760421673326002635655433821114041236809844877063530159725389240354263921900256668258770885068145165917629802642285595512392623182874599614794385493304294948332713004047558326592205578600663186815968056212748410128471715931375701287417284135274252298574533178344324960031124215573913984896550727640490688919935385570196303172863802983933046753091965270256589694217483534272557029320030456421779887733202148080875977948358761259434282084454040188926679132830199274146669735440931584471476267009135155628764721851776614487686192834829422135599541366030779658699707246273080789335841105436019868812651249625121567990649088463283609043123189855408830561574217675620133552016683327195060765761068238226153725323951596962770412298768183118401889716243253170809621186966129269261782937278655356875547113174300142207654340184501825307876665590663245757358861094613085213651356403037918239176134827096591337854388313256989412283869448482526049663399969943021179768068061165956143818404570912113794174422023788131339462132732496270524152685625575482404341646434566852404019840822156913534854976965654171071699148511800749852192699085901107045909260793635190682124000484619171727635323733323364251017075886829653385494981288876588155394288069220555062237794499482135332356886226620416995240775756653850796872907127472899950769242456313269795385343773839835645734044936752715304708703301439404016965672046731205872778447059788625546462846395825957445821475206622114474099853658590060428376393261996166775304119953225091877943520142247367024137374987047702599467819750031124776478684176920324831741105632563726163324680220772034759723776588330982050998608670962386913039960498499167684923091756293238497388937404840813390773391981306786750120571823599005007567883708523832859038621176940828387251831768786322750893362723347522193341689006110554876010649652687224664144603039998839923397952517487954360585268079378106149804177853871572809605768061123714491299748048591807295189974580478731365668637886833352945120842539434333310293875433219760065802524725600566901344914481580158320199683179072999798190728769452635110825760555696161574924761481164549241615313268298277270703595212846076461421720152597289008950460008116595028664941827424940322548872339774731169360575159909828465668125800949305895544998075865874154470788249633211103420654672843452282059583952807658815315513175124318314245850132938380362173961197782904367974324081786746369187991624012798476173059737620604340745733158377764002477595575073866507570775956351083440689663732091060816976628020098748692905242618851730466593344901174354497812440707192226653738322792046882496309686030952189066733146454891676414357220928902330337422303780272663253333038636069790788138730226040592500590230022690639197420022906202680383698314065398815618828427871255507603779320342587963142347836199137096966406087051943748606405740402354782969710984074854057628795272261876203265946078932847398932902661116577728030887973909545836850458340315487625343391293829140040652359523299077472737988940583837060334082324819516235070034727884264537411104704236294274025709000014271487168774306772566628046158216296027622106834797385919268205856539336113009215589270654839782924941493097156121323370684094519253184670783079688684554601728242502300557382193320873567125093716374921048933226135243948535699068869089704190065744181339058263337756503326759652592776526873708682919435329671133162078137893105934943382119013684071902761039751880861058771765788583090698324397086648344209668447794530964306280324579737371377318642194182465245958762947650971231062062911525539095878080598635114239009832272932565997826336799899755436272710565176618839727942684412774694667878532939213371603942135052032281898798205561093756949613622170136200174963516096135023592597408661274536060502752627641817643193903475575755962346472300992230491500329816130155671329328990261730392095988475565069827970031767490553075929389757463785097215378578470409927538703430946343992598583840269438182067931353853610565420194878944074899892499173391814294618927000762494034845176883548853391757111694934285009322128877828207819337961645884637592943654505515836916909367605726614026501231344298717403866908738990285883670884518081647435303429323104913938334227533636579122473489877241712135214849446803876829067712944926694620441167096606026734925373150691215900102902239564031109867539657315134039207076351992104896359174205094224061852772858301364634834606607528220990748919344082937346540449561360930269226585510128790545048955673754758199433456885824963828588482340385104343903703220737385853992495796865345513870941867639108429720899728890060940385947655479226641679605133485492589894232334328756588573250495513867536190443719951041849895841341520163726997643327897385994248538953347898114247477435048199745849131110539402603130826482501074087246581786271029327921772443324144804595403090360303263640633361990756473296774241463472568937956974164219500103570235562769199529935618537209902054599699675396946887811227173584337235369182119726719928894019467095909589397014350519466356650639099695193617527087108198481517223333316371078743534649657752011277558474101969207739813745628607310811076324257891458060052637302583161680139051214726484511653468428455702926556572937682258416482338703149263326134992765508740170534309538343737831225326939026730549284836979904529046342160302366071928100574465224714101491822740740074212442165268973938475197007082721913122223366426757861834507572159832806284871523604092666890466540742719784098579669774468155340142729222967216311617594260738164989506167210734781063960421613611529747846932130730043567575071308701414333165351640636093836649131046934965369565152558102613548549821826232606194864421351169933610704092731983495065995080239541764716841350321842331292590862585807701514528026296230518866014998758256704259587590958470563024183997746852455205299143657983763077162493363549882220888236158244227326934523716522700298393634575454043482879015207536536972149653620933807312568802069459071169833590770920890734201095275756938066643524983277585133415704610989432900631079339850105796384290834278702432247469251704553784038265990245400623679631920954878811060454926055553249559750637807976743499286540333049312402480090247075674799005537265666556057546441225471871315634571993915874331271238142616859830134929827475333240541582841061908065071289253735136026482831103157985818710329287812074189439192229812163298539924063478355775127473887509656379972666156794305257537849970914294225952167312150318795477505601453072548367757669968835484905958016658596873626089997775470613378671536483192747900806744726618490471470777788174290611562470733797520634363085082909174495195298437914865700816910636324407671712187802475435083663975507698092057063402544981439311904976458801561514863848127673043308629718840767460741772256727410640125061386754618909933952622877784547079253344691140610186761004523757434931788755094487241884879630590670023717464827440965223176277883497154968526059071261667811608862390216598374312216981832566746718292275029253925726814323798299832096985188655609017773254307880382697033263284642139404835361231090566752532575786115421327552821702821890306984752879969762736966321003866064064650907427807761722125337423285896755359888718855760136174501558194208255789396583430454120618097727970708343007566412667167995384853907795294045151138000009400398451049595925853493219548501009341202938123157242925336796561233480145208856542181271224152986161225216342308505916814859226970088202459043526242671923181944603214767385937878013841002004137234492966272655847448632872560198216520697306350910873980343309132177323537180376719528012255742242820866484612133767972585157732696378083365703457413257889980346065666326364032814296768771639233621545722313195047032114401920681027806034747062663365831912167118305731109607928134645619457009323633852431448614917873165846835444803341531514845463625044700148605838074533539092414830316098147157824347867917559530032003842342224060345645778725905649707748260559776387671916707906357201096544142402891024821722281872381887334423975087544504498513414618850777063473559148970814601170842322623938279347758710372293520516498853746845567754376447962560243379687591919547510116011329462368423960448268608068295093172675814759605110402125095016213221993554739990863690540027053799429320923779355708979346682223786808997943094055019436181022083624986613318629747331325568490578467406093017554952946385716884839486873965178024118749555319212306629907227754141203761894206369393136198812387557582833304095390912768935405388738580615834264893064320549635814751643073491264633471017104097560200901405355597914021378343759073131025844705916144224005556939630366353086493435372506422307049963028622929948595517408030639449295102367477867446244506435888759807759312076056942095589401092733189261621099061873323137545200654353209693898522637820261223413085909605630649623617704174266952371694271138707040525811095179892074795264966341688594316149097042944244962247725174124767064074481363697157158659366945814621083140148168734388438875349933771174852544804199434052323860190799686552179085869240025621636610948108009955671219240470643233948465585114265107316568600721711283209262193229499856106003514548654799725659072783850366071038268428853685034190045067523316306357018395188483577742540043494865160894690862902717892270361365959448722048079668273595456043011469994065750867276285134359824364791497304366391096086609480879404825243786999623216715341644301817437332201474298751499957710551886406424865850979833901966934763429650014569381974992798218739652209429029368616491932660303709932081409472420654099106546409216248832815274100292026714499370209008644687231585242468248875053181110691185371731754145792581834919085134060584119932796979478147129339421983693619797444857740797669573166210475595064058970128011497972390651271953531076921617990506395110804859698839854033873843159637326833340643702738140860453794368655075112841738391780168655676217960667102257872513840146214887215158965707517513823849784544713573565069065402528569337707494622563081059383140760289884781275914587128768525858942288430356527789741493277402650411630413070505800494227188015361657857933840768379773565632266823918652512882433279416659513049416034828350455820128359111594272854038614159251573279661988121112159698565167578226353987777178027547286462884505390621275395784738441870286157047765066653867117761046603383485535101933353210284946837725612370729826686441938249000616934335155534926722249582228716642863597143308356094124128688438813962260414117113540807393856530243392718644108201801443404771965619533170256925374581860218815612167885220298962365419744480441727561059042556330300585214251524806178598161702803721376833015805214678959342694095933179439790687631241862400998555927983167636994725735537310533994838921674491462186763760127552680260163034013058605977225298453346178831692400631375466066623806554269578748988536121892259567882536598391129086714685644244354031559658329851376751932522136194508506783566612627055189372851197728991725592830859776356596602405444311194847800505969467659762393946059985731469107533795205584135010799041019430968181167495863515730217184206223222863476432220161555083673869470511833809010044273138163977442663671840005482414167021240294517333694625213887791905163447474271092754325523008677832295964438158855386432766888390470551458259523058537753055199597102921191939157439191020608286604510040322907480709082673923555870525783950280334819307166517104102139336192298903425548240133403132033233700092362836392344057848513369517437146843245622977067105969359395940234209856493290977983144299792462917604062992698119742620321321830605562807189368765472099359844453145735190622113766578689947069025369003106912743589884714240123259313348355049626352603734898630441578195347463570534309517683207999048276611845951308515359526116814532697584050973277079792708633786817481801572978135568296908928795374617761040989098814580487238487493724342486818182512503795645701915703609507515277241540538064556216435453778727733471153530227786772349653981403505969036483565188937249800865724032927265933766179370780018718652282712303172515418333538845736984945822692858747339655008797037199719831478002460181462362382648298225991303663574966886958784554935735994193771086929064530921736644197628168928780078128420165191829827634227605943399075340043121074513930563525279819770273514101673042335931479967770730497497301475366516104791464061854839647757795575473235918211069824897463216409788230179541438247769849468611767688257704731803751840574724295949768850352531655262160850911542904829017813468469335197578804723929260373837167876495207962497215557811932266755352012433555561682032949427513274717668315005879476457566062662203571506338063015446329271543535886623962043880018804380603653586493179603141587122215228682585392864736813889909953458051344404482212838309550065356854084574621882374126390733655289587652182848061573626982906659714819321000610976674497838296276605912246164351628668631851175016364379884559185412881000972217101832398244773127805514321944857503256693139473176667159803226350124092181243609540551555414856807476317383848578058000822609103129155251217839530310829510461011793982521522295587884193434797686814157910467328205671878722505739645323200718814727164940132648435689689507300762750329908544743569734988248695924180944910044311318744792704912371105684544360213216769593884911577972392645555567039312191061841896973167506949706794123641846599396753698140720151803656921734586800998155046487303818494791756096006935571089463373017983756821743293542331310963199618190349013654834788927191102058486837154756856880910268523450177504065109564273675369186819840446255928090489524140542646406967111200825591055598211969406969735791722222092818052146334078861117925553985536808446915329924156106879922347824668784135877492012584361768323712328460467565953209455125196284524928570039253973763232167882157516150912097425952127933624053113990289259568583002822947696066477972123210672180678434505973792392693227092738195949162735778577768862505406876664551396515229842286487015057857245623007066450833373355636700734503800409345031327251995063147313936157435744604049413857215886234417890630175575768347547213595505419799957457405017274206721468984290489662978230187523184036872889079664276941938511218382202831596839079799651216035920328740151245343482635416883080307359805580848149559511145037496182458601485130902931377980245656658001150664235153858897590870245519266901541495152654340433257633113972849257348481909837689678678557688064206709632720119080029248200863237376428594809703669844560907787397279757234964297194760239262374368935222247073801827377076892469788455473961219053263900061081136933413937058308991592938297961096980681285625100546606623637243728357752116270887895481722061835684870770042751886433574330027924975723045084934769777208887431202317381204385717154598480713311332159989761420188718806057828893846436179207812296238689655903473986585207639942609437258649332190334494131933191816308653389260277187351579461487019153770780646036427082724156407415788351999016613572296197699301383490199459486125303199290381408278721296166637334933804133562813420244108135369031707261915197736309536336980298993628842377042913806132834609401597499296830815960119493492518009586959643220069137928213144317764088522853996692553823022224053156354251666141673375045014527776516536702922131857182194665317902484775943804052402076212464981734169674666333145431125279015390640894628281150471809521087822235424762858366022319669530477754569578386439537610095162131031839012595135166673139649066893254167827195305030990170100647741309883845637191616207178015102722350548378627383286561011649878671441007253629095477499555754367657616661029161262481837768873706008594863387754331493819156371576642194150866620390448351214219022417404341960853205447697275808355293060874822152366189396032768004618874587699627112990930024978014945809073501768546902192146146431611607850202960734020408460976168335022601100934410871587986727362102672427299879432557015716021360000697103585780964767847335970316626972870925159572043718453821837526273219880137106343387659741529639804730672228009379459377356432624228353655972596732604574181008014097749450786435855621142555495956186974500216917332150699130798518192556802389583157130981903496030535340358394190960258384581937528348946458319630695733549334531980687073467545769052735086912737919202566870143787302210743216370302019963708548723246782328691980524966166808326821628966234589616935723169876593909968792080180209092770137931892477178356853537678817114855688540827938771429629753881395330171964680064325690457291429960859529027915843358266285888524673018265964769401426728884423592821601640893984089404164609691974357359700504188633584056072451045843429806765586654321873613005815840029694280041645879136073973418250917341638922852013819104864408702328695106866409746029254074005406571907596695330460602120202536282350265157742390063907798030958167929379860367742239697773710485401283131517121112801486312048492896050505533167102025425152962340457255090829891200390515768471115358638206489066363139528066195829190412882215526746489052829513195058163167299695687841128414538086452224150247094714647739430826167339205569748358154968065109830111126736475105547016868116765505591584572063355744659174885863972719392130997091538084130861122797472360027622387211366682024465826157962204230082561611652576468121332755689380574478472841550576588466242069378580890970318400299462293504368606959272279345018841821592671503167203929793080962087576144111184916858111498468561619017934232016182612220047598438450832732027972632390676808293368179793530735785453191187551196522402390334540677635855565576150791408517847028577025180206729229965529074173878885153817080343257984456572023360535673498490941559105405179577073555693296644149190561576821258174178845400889184591021931965413277898147776262539598711082029207164059778051158092987426069023904508961845853294451395224415834150978794807387069208559342604107485151486015108772846153105825414943931507851074869900178806936141649948829079037706862733981255853162934753501547577937764240835284304147788739277853382850315894567229390645234931829864268799238563355308425221519811377010869273594845518510705589671493463096822348094039872584588691945771873325996063160208760537262154807808134159683948216255693728339266449474272485817244815170522626344951483196681176155253027442887446796555652991884888010760281251183069886880563103679389856132117969774923702968580402251846363579974500195794999115523387619270292750970839510225659636915182398108901867845013145453406749148211833572249261714983128896921271682194117852603332789144097784964764104757902065303972363853277353059460278966885200482831204287980553326046165627009409033112297892392837126631692281732255230747755694209063997286037964222635679700308754135299590296824456425315738849866954636507530940255820284548144544411142694465283449205826981353265654828189476324728915462735864983576408933162491708137458783217733637442239744072679607693821391784860987125477087014708251207911397141051090233903143465486631563991545557951731508688090116532007148839480180431636324069508108332798514884477045648180318493391344710740023921494432297790703014628660179941984323825717662504433747610920681334394611566419280083086859936131171869881261231542910121832607108224372150730068487063339862947218029800619195840298428124525291485509422735621426580096813109487971548748860126694916828902006424489031600718546500149128032475633156312488559587246859906614202029880492179056888243140712360582735208534039751511664122263556343499176129891278861164207176588206460461568056934284354755258471990306924555570033297182160770877974259281592734013594568484880528691320226661483832674891128519495306444035293430956505133036369876194769313474839416231684467549986575319298010076120815474770161460116002594689685291854953664487772253429006919819546943278135601095924816260708882889773349928173466121972165199262363899583718344031485507974031752196535403390472261261402778568691928209603830601837613815876346859171401156835173475418161890879122199123721730876488876263928693367923454939252621513982939351338253935849069090320264604558720059855271935989494757238676263332185557174178406605805164345564258793710946573476080060378980732732093832716121886023511705736903820469569228859175675801589382706191463584197619549335165098442261869596208338028251539167258010122348283934648723416910860315894986118481003968317574443477995550712649582866221619906744196371900247809311536094295374233200768027345196931365829331893447565770718705502934787115575217085069719294814039579000075628005755769754185251779709648930237073639752777726763226242823383136410175568137108968362470740524855090572402913086655405621946361932926054713944501434895870380999411952730505095319397123856332338878204518370210732752474123693307321912998528181458899042818133049958629909829993253937002848462189889033498684590316142681762750521532848621211154044260911804699782843078102897991861691995151969270166085833493351461932835429968123633601571355846862693017649674605845509430074743676515021181996860698857384450514915695609535473232763119599758842543434210686013080241197608940318685110905588083628708670742678955858477442458711520308808929092972780888913826298696254884292242004162560464374674148901089831799697747794493758270277676048532666987388209244189848967761691644622551156054436731197708761413186763067683439747824847009533722977239681707538893833726592987401736348467642864686786558288791962219518137127290436538141811135832860493712573409866340473403357793320957369574994266773165550818667650877015824235799143187823173582923836678547871576545602491469992871687957272452392341842992426838858691839045423709946253672343387473473896412068142002367868725906245818921254251505960400655774564301729812956154289309092721430944035826319087060565514044952637012534330167446040787496533256829034425956867801126763167883496497098226121266621713616792132950633513100687839617877531517295915047053765864272775416937076415641049248685851219435991387560984788686984071844621317046920572251640207054789638879031075302562314438634151890760707878550132544463150225477941231049021479774578856947781027854198250990029416866859526043852647237466149255106274107908556223465869036035738808938516304179102045569709939467134617718302570337123703371750329546569936942861107695036207725404703355361274155762432131053082929010864217689743853361787429219495722094273900875415930587573839662301567715688680508865092897816741491194613734052592047900178463253788244904930853753254573746619574961677962044661053467740476945978046496944523673142044291940246140432578846741648292203836167138698976814921636302903543685424664874308467816270221550800491486274936584382708806216849082066947102768531676000006929913768416507027038689828622210148830866940116067773734845274258855451174163172904273606993322581853120890892795487228452369411942891878002919304595116417809675804915737057579409685678108916150148180519789703203932943138693184196721488100608527685146024571798667773445147130177554316716435765539224925924438020440826241319038241556362843525815304840602356105605387656299943521980452993718595746167551471184890998922537596218172737954877967184551466590604570741564407062655107469571426697653915265050310800847124010982858396655722036899948615169281011274125657866100878642043063431442014023739070866793225842885948049752863733092939488242570804812034464203154110457320407772583407538964892932438692223928604748227018471464253266805309934748668593872248506877024386120036944675870586479725609765957927052102514522114554319835654217867802661269602143553295993445949789841042210912421997359903099173482927437198560113753199518920753877893182229480419731781273365784901023763019107572610377225452376249887305175991125714013947110220688931563329715756736147079787916132349062578971480772108361134213390649512354343873706653352034117145048942861029779295263327545571675598630721540477810951794797070861252547683733606549388500605693407161295566584851871373875920921068596075959617460680269585687650828112834332289258845511556563769147028032679727524853038714157247889836166398760365771197247196246937888003705389906732644786665969724393344355356631451754048314143078492008397433550002515665454680885957099536639792404722399528654111993967775730102005113413505243042982576573916831567241351708112122004145677795323831430180910409665398052261360632869895944568614813177662116175923139583315786060156886366856626549613502326920560470081405409630841694444316171273170918280639960313367033149172109661232234055654205281361039765339463774695157225746928368138839004734274285026180826392034743307575505723920734401322047106094682434571682439786614624069532103472149125329710006333918659147483862026358832530371641749560958674745311724564681689533408375481740111311491275186814514446451295975519503213846524114311956799266542540191547910999468391446798925794597291628154286319768986806657883268863299235806054993358359544710339300409843584120430889180087360935437126480579870317971852042089547000831798038732189259533862754947166745994902214756847729174791757570365652405925360707057546167032576200638557263606761058059179088621762383686778515779980411410055863147875146193458267905243522103550593911763670154375933457952452350321320886141892032675432247209283986995651054649900131591652162553984436345608706653105449466360315975623164403398704353973231741773068441041694148241765027541832480745002214544572000567684140808595069679412354473806171561174684078291293744027563088041274430081682258759872108415078281858803670977979528803438205851707609115840126585793501377312979088477714444049663496440482021950455834827013356107305284883148418670609168962333606064250599719639581398629607757790712007226343324877626845140430096785108844042466354287189613878339604308312009398077724450925475763839559711817078561887772163599382507390499938152702598080885880521675204898633291298939418191097351693747439731400814350009165030234150369527699051333877013088757095786923032501765470850951277753741525859103247756695902698118111816029129503114416182876698987095624596828196478399645212627713350443059122412017636687098260245102200076049796401550708208149190458595931869636886207688314546703323281424850038671668105048783566740363093575693741363737154460054459406382575184396595148462331125713958561735535473011546478761674235392096325373475309784964057875705857501458261010488454513217139486242663655439765014598248731077830216476240106895996739947832062542610020237337464808574974542201632915055246318108052114633725274907093576081255981195416486950981675587582443728881106726757247825564044617555414842984385977486269694516694039080648144426501922229612336582291468406770209755529093295315807136132173198504854195415862341367294252226464852768601820992582212332801857165521542459213907154310076014096928153927822151235028059132133802918220631303417714990217505032941308507998846445130135071752381418554325101187459175585971818174997285187030299605782396830613921275135835154984393486375953531744460199408047890599905906329143625862696322788166867610939030401388028998272634044666960828909308261064451537907256767378025357274104310842059086058121917884989489550424612507227469262191825210482173864144257340567151040251880968069548160779166435537545712496321293551663446560799039930359075710036707559982059791668108546263049398032683771969350262910101551043123183031528421411519668370355913396787865665717106851459446287538452067165353111488681786099710120550977045816779441036248548519874578187534705247798566046287108454520639698002684630907412135710685657922830219649877435851798094008811557467977574498909014051531437369435998895410487834581345373296133990745981143485935818898069145507388468648036371644344136808306945979704234644763217995702663012626184414840062540232014623219572316797712341380186218150045170579627726612059794095544872605249605654562933880710279186248007548183102549583903902427148073300967360195885509126110068002380733886115576843660329504037152660530249086022073739397273413762544818965111420477966904178944676821516446028219595890903628935010333084038253208331478144876654779148146981368423117292631946474136869800223853911420351840233968782228174975897088522000918785103225361310659489376253461740996926390321790843843282589354774224439264222423814754039503566518727810195824109750555247145732128769633533009827387788428964772143916834862181927287489442444306269406458435652372474444028818752030579626199207596428349320635639255481298167314426111700888403530970109475356418988740833650099572562855369240611086913647200813123754684249316124503096691936352528436093477310106893052521856598205017453525648030284276982035475628612513117287766086843943549141726877599581236484338454480425865471501940504510730071926461123614428594221929188596929595019897680113315044590817970446330100194976949390589768019027899373187463103431186017833992904332166335000549809416723598265486521834919854360327161622013879249945107535595831643787047540001919438408964425712896820693128544818126209775875663576902745796659683148624287584556584680089356509599970648442938673902775449518042689159461711879203685213067511619247882988409166441398189816529416976907638577399313381882273864108794694102621041825005678905499034043726998291686414524784086310445928455067347094495734872636675218818730811608228111225286597067031144678735615890276802631578816574206721113161435386270352799156850856037657522446508630169182256824560369607846523958798792560038074804885337614556607967950901664077265692250095134253238007568966454169767486970726742559990296488467130711740871968477060572081210248630480508246139061642269895310681234336707752998415515851029610312435865161837984245497923794440593960554398213408096796067619110491201730370466331509059789417567821100351688397202360872623577138397857230338223645529183693935971103009824139127091030740120752872080637611828076090187520006320817590059473721399731487876743003217507693433670600184398355719461510821027969101338793893012136450691675896396588354023195506474422278345596752615564541872122738839207905191585660073469045098187843897087449411571885911688284166899128723332159598481959967419007919745583900762847888130687766517937665031561164453987699514597343664970030277776998747389085189619946171070983396853007676280359325348679055692082026863478482172115476185763007613601131117553163990189781528637990327743434586568370274871992301559643250796970510868629780662238702396189694601387157608584135761525416607571829529499709017635267333982924536717604159955152299721114692337531069165977020660291865357994223207342801633547074634387728636336924100091576752670759635714702995651248526223903161232190701564219263487363135074125025171129346406781929686618904831611582809825620237157816480636348705868614312948846261871409222000834430609003371942547750179716914384000844983327602168663596915730829549615101054075831020463325711467618178730654014409646028634569873500378368011173594137196903389054581242909620623128966550993201735348378398652094698294711815388900346168957897282328560959973847754755802046209450614669827654823019095246576336048218827559988457881433381486230350914506528122808973421488458457598960517075528216105148136003490326754005569719077556795193304240457419820137009814072916497376831856515537802914101576562687456047455857231432111196082467601006304785302869305514925444901717248304721472935624952907337609065809460233089891789025661439174468035656517104846889580602955080328041212357976911405498776277150519126683704014981729711598816800583912729930694864827053504510691979974563435177232392538431660939998440338136698460448502811273917208952669995454434460251864227209092803613388754295186150547283062802350266748639380067420899657390681579006249811083488058665388154776464107065561270471942650220776329277279839562623230818960337730899855310118288671827847090451847924231123775322842589125757980020223900211368837105096097798279687739092885456698529251584720370954868253906932071538636842225088071373072505293477019406145867806919960715240942461513405096600814062320685157007932581139812206465857353068227311104390773419259853165090962661815094336665742699626542069017197855734464306909503495133450337101169633286074880816986853973969842828000313383318912307070690270877127333806336877433205878532577493798180548344131148137687989312867744848192318271190318340255133228078296529588413477108375172829204377079732532203380642926478267837027281137525398898057824576598404981692366278290185252220737269951516033126448743036181240800730502766045458172434745728910531176587034987496604946001351968305928524213544967065808463671002885709605930417819467710122163055849460833277621451801819284597547666295291967675410656788709840262048456697682627973515965597533503644394653217819840968606091716799380333467817649543777530095678285020326691625420279731967081850017952001194515951310775282017977720107829379654263615086774874845409084442544131744501213191001190834270691615867916597000006901416348286478249891738828910603172067554681400966243539623703044901227099273830458380331273710422989112588047175188570973001402829863623181895650765119200938405753388519998670743974102042490053961479594350056103011281739637163963265969601344128805663583322333022408553267488760828372026111226514743196762888583701905537892136639484790363745049789607654555983629512101692316500088867619081635586360686865985945418679866642814912774388100043311956557916722627697124107678232528748194544542847881311793580935920808971282130758086365151433027287890886769911104280793003474515510680803009053255503677094338381361676151781347708430885904284899083732186071866650496337532054949904289344661314749884576768281234392962099105727877979550390458888902641160707899212936129914043473919825931617354522307091834130887426900469305989220067859797030168923991159947342598716381819613017674810646322582985679796780016227919239037932673118173109336263072162510982975110591704420863706189821141889950119601249586054157907347174080626435853763503095442799813572130540599348407226096414639754627424296948098725811100945542123627549443584973827511572621018481175082291454849223529093920784269926013751969209921471738941502378915205674037908299033647004208340371735301614312557976934377612494411771973460192628638839972312474082943082640701793248476715034645022190706362816764914143286467638468995221791438086876400759026365975388793650444206247620762348724228716540114040994978766900546581039722738963441614285051762125505943140228834182377713567870402983402978136246725461509931721827140968741582451967368265644023819668417628741741208267270774920198492348039135597965726422114287096302938019301889468461552710360814551916416382974450040071335543295838898168221509812698912959448943571757710936969011552329802795815830135814069103383052471785657494688691412830012076544183929252233516478361488246192626525244254726345710159608364899840940010226512068143727148569090495557370783849600522728035252976751957612479318806549392753753515753058210415637673250809178792416072083400186851523297950387499131457190063731384437992087731703751444756178088172455883158065306463287534839594590856875616182668375668683555007222178437040466194046570923565327232951240770167532974246809183307172872545538016032001156022657084763955836454529260410310654192678949449565646855241388726463940783295391305401231833345042388689334136130816329457109555952963769191817120561571151584459754684558129761525271600697981359127098032962721272718387951723770670853642604029253328937178724748842111930385185654864718205875111002593667358054061737772629108411809613933284411535779656624713466703364264644368764450776557289368754903342526668056438544004860415925800773020626726926340264250468146904528801222110436758520704979359829691895816517762496840086630649461265512866527344334605421001098551299203898104794912596575446830369078071600659455528741736060566893144632030306823099365521317483453963276961591271012870833332028645157506092956097463033878677879680623633860302338799476216686773317824796634908595018538388166496605268470731931563237287314949822027028987270458595744324879687543432504696344990868878268784283770628117756969870023525311257212065184906645806244438854544901475376679708495272949704914961220538010820840848793639950505396817140876616825140497175260434570151645978122406235738732341030927682037087906161118215595826968098676575306920972015490527945345313709114309934144576988859517150524497889161265347834032195471185001879274345442879719017605033226648670254845014263203829616922936776455735221372049835421249748322280523822137718710442523236334335427588906203443462565734918024756528868818290550599707604292487452165861259998757994423638476603189278176405972760469268000495355601078082404799354574207441695889044310925287764306846272970762672960021365400607563358977982079289097884084542162178871448143571917974703426693184762455089653378527723999657932933950100374462477671983802667367506645363866319192170157738179895403229169568027652031244264959589992639594226829572051751925774561771158326167820118968490744779097686673567958463807303417521939372981324003879221890635691960187260464414951296466038034981063763636811161343515160806129003391748786448066026266733776180048508328298024635367244882660038810285066122136026540581222714849707920924786357565034683092387390718850153217089251583578560682899776830860518773120502347432505777788773463315330528918044858355897839352044551769161461052414566302463115487341153831467531047012603059209296614369088253556908643674332303682938134159746050785308742075327395449696558488264950789634027984223693865071889918782142158336927804334574071048048736070184837213966611271326075717021303510184941333094856643979894179724257117379480830320336520291549672203103343440021006599667640987605218200583080250943922643982697561677214949380562317564764852010969914705200689012887632402925884270206797565835095135932756561758606694574981981849419962417021139069118257908429377127040076432555954362212842793266509500489618756631278946032611461898893479778261579194610241800140527762453545270508173481857400096396613201014356706723845825257953771864413954213815112132012626285273643465474069067645889683779348402111429979671964714310016527968110025290657086977639423983412346603024154432512493757922108224481984654313659098285830463535084289181995407491283974961258029815834993169151278110933639741215122100313931535012860326671428396967932302103751910764791025468338350881744395756779995885701279667363603232132542243115523019693086527368364375627005129069219325137992485650949035532162381100353871602862895281856303003317910115904595752652636532828793778614317127694198167662702906503554588829268122262093376500797812066002386312525086988561465491847694484199346374803399392980769636277564050187839327531768614178532858804552447019676870959841980996939586289624870965709147279209833010166693959130805643506114832042976908788598986631440494058538190199734433779452575682219832635865104631635423097697508868308730111395736001132599906086464198986045161412063129640915236117568415031724766848987651551399305727270999663861328653455960778182930720564551407558103941905778838826207376877237568246439872187152358417671720654356869280876673041457725170935589514741458597555292233949540177783356102195676764650397263429229131413009406627726607921641830320603285739315650871305165314717927696838060897986357039368289232468164221279796032085880294095174259085271662589504286622048343466566640437573658747156015865665680970182688604648014185413512364065963449784943849609880975738650457812966063135608839472437603011811870641013685751720326926210325078449736677763544275293915096672147355854571196352815836862326451794848941395456136999914947500726706504340849357376839030285607129748726674715133355181122201598017478368567412804658415745025455552370944025411292374322493403611720852183621831513456003763900132906441888278106180883636330150837384625931062333411818817492553656783161746038389476314514884089271391605140660310621508371552627093821829115933672526797245575954200577710447525347268574713851667235579683470205191752747944822935039579827367655970364427843908464598917750939443179223883306305466237960744558195503398124871183565451449946809244762303603026496723467097577615807617414566347873737365291727334487096249204403620060062580360219061015038143290594659673468850849038312674030000125736124925189538419575601366570564431107775171009276475221385550149921098981679785411825515606155884859008711137098489901411702369625934448149663589343693534747199038252582981734811642045660381617668134223760432685675338751861960430703456920637786769957976059589275359470136106356790430856906487751258297409093662006938290021911268081314346881251140622123356787892385840238250717408703599987317516892162845176886502718968136347424257187836619717734949013629786564390835288407835372432075788978045786034460175402564326471418131512280054292965093709690431118414010812612614715701274396171928634548114626055016081846639367789611358844133611449226545626550867087404475177973176624905870892403320554244004659386095668554880832077356319702191408026122821294254849132396205355501421127567373574398099721295054081781689853799841177890147463986469410556800724919893016802531809004931724305146958857838623838486595052170911861439169751478062975001135352096676982495767468766729271457611120252567953700181593410331133632102671550461768136287083036286321799839067407207536438173757244965784301683931127597824365589915670070539755397185202997244830136748952916372602826998900518696102181028819251894576408951461419129739936879745517601672296372801160149778632588307352249928821754518845120796439419265585021510533710824535438229185123783961540801187744670806218541007755410969981442850321500097657459572767927786828418000908801143090797772582943367060218159623679973351642596936152413218764503404774778311582936165401852692328376383901218940646765328538073985335548029316947066600308620820680854518790825407047249075332009571675342431558394357145062863644116808926339110169417610317860686120896879023132820164190661012879557608470830397051014936651465125647776620083095136786322978920282776879431727739059103598670719330731057040236602328612952871962353249055969790314541743734010985222572285261894800153480850666801507249336310153695596050011643154861738678030401860729149924051449365257159884972194494724473138414415220038373832166913846628997092551111563978456581193626919835588431269283653582353476759189078202655750716051668703801610465916590577392721410662011851070432654378683015023205879424511878368878910814968112854455002756672916175930154252181787941563535432250100257914753962987296159080567818556409347896795307593741207688527808645818093002413966156104744755248645762889345168537513467082783682042617596711459999936376315757364496572613574324075645173002943152789111565527138411009129982408629897304731289864065486267330474542835918417155033057396163009321603171320739822711271994620308503832697807663515009786092741671262045026240075507891969639875501643201034888507071077874597782588250828102250915534695846582283970014780386439485291192069477573830728771219591721435908026503027677803946899583062656715720077881029446567304712889119030456663621223778178966334340631889448593600164097017618498587995678376738957386130824106240900735715463001929598713236505934165708791462610711777806884975091227003648326039309503654100498845812621733435455048706312883252376226508074913182802939783613623726334239841944722177075799174117068231479190551478906959455489735299369131486356440221424832771335583207011303348556396590259750386817551690147574925887634159110534114638177267989325510040677607047153774822059882956168148452862197205327966580972868764123474374351347853053999844183689054516796165780683697047295398340554011063818324628451834399494453865208918679985393659863207253953736599874991017176316132881941815171313090831727539512825983559300074062470184691970622647130687294556380493667026616052044764086018185808001230544558590562930457291853361385177681640376921814792566182312329673895028428781381932146389627959413981913216541649409127997913944131439349852934292480927684395935498991001036505920764359814161814497150934699246524367385100511038832571052297885806655303817126246662102477818178244156785255353131370927548755287065718988369631658588195831006778782550654211997044108812912867340753603278645468246660435188889330942562825595127632992789714793292122134337863405822726141988432018418461353908554021890974781608078159964398042470637075797309909985120849784619338245277880420549220476969875537963134818950795015729457574574067265214989177270685134524537564255556486703605274958588652876626086387662745011162878560979131613865113125360863812728260302455361270163685218113091182712864762612399850640101664986468774129539760692294280891280616081026572881353126000948679381658724287619070977754415140569888586147756769334957413543115846787010556326657578380882274625238331680972943668909282066651671028932762846210499350897632931710751851475571234770836635510695862831465276851669654565309244462447632427979258894061969139625272814142909133506286398193192849300293981351110086443598831886404716341145947990227508939491467881653125888305959964655732704159530759015255713485146599616272229662796334595260311148771251136902072589716447166343209446192690051130391854260721841489590737038773862876485862116346043838703364116293214629359641283784692715280349024559536484961772038893753947225852181011945559766127023027580709431924987392334281980477180209545986552832411974601457275800723106124014398655935510420635367920077823670599351941587416124508281264248545702655594129550454888018941559380579122346086272933001177773640175185687901664362224377416381319563296839243755393399683538958930247893786391816294964971760972916785589604017725095930568207801284769138976988522335096723305027211991606163434906096880503956397506748218567941054870836640619136880419401288990088268301645387340450610720959985936584072519173030770997300251185591478130673306442242835049293864379132737009792798533485149244042855889553312139891140056540646707966988264876045849442017926350395105016562259973441469079090007127985458874097017527102844517828497458178340001906471317438715345292709403894089543593067998203919494343161069418025948308825084153689802502917715781021534994983968576206891178534488222804424165381270837408909233371548983625653357589255994040986904168379871035098401272158322394906320756019570631997851928607551248376626830779145649569157929795052102422074679469071341489187125607927494848989100092729576976390462699122024855366644611248377666405409176228371928494665859899929791776587893088877187131518908245465886543974357733519315393239286912272826226092783510148926567195743356508188094005381697014078555086226737652274103044085968912028332609616496135951619567020770426473428272164479418409728952262408875568192186600696408963554981556769926341143372549796385633186821265074487541521796545584005053929168175295838714406572173333589720879674807721743622480312271028693000617261066667739421629754601816970377339071721281335713313930322067709385228464036876795112202662851542857453671316711494846929405271377343049492888812514110007093894675234362534745868360278475611063620456543467830864574041754100063037264618020733047044469254778558220172566840866024497477629535532775913322652345859823906458031678319459956901040825587092968630910893212039774167886821912705150983720616444398818180550275914737232110783218188006583567307375418088479593716355574697258123606900712668239579110321349891700673885865294925841932201402590190343797103350730500712044591954378096797307988106174798521049505873734344523436686402620703709729917697255718200509588236566699366622977469188065845243330317957375443189669535788428731453737941458370153632700853141256987323027922113229564769523274649820115882537318645804182482643408130480473498311589258968509402005007038787130885489329490481408883261464242227745577579797315878003732443541785725068319230377288415808974975679676568842376409527118309678450977503097008158411375970399755206292353526785621089051357999486142111402063167907144630627125250099137577143483756860691862077756237190834134308449903643253806670317490140839466355229494441734090898506336452654494832204441515512253553922678370312302983531660163924019971070191248209884947779787826171000465951348725440293652610314375844352042847858602322840739068976795383947424508422331675274000475171604659965185337994185098766384899108874893616273368440306886788908076482377012394262723214274732060994687144860648081798109719414826599640714206612346550305629548886881816025009889595198290887045536480642718497057334072444809816644225436836735964891237281696596599225603747337627460390022630843373427280569201798816615086131598950285516870334295502832364929539364845085434861810249261198450656621498951609102196129686757040571360820219277071913199522320687599617261274154395743441017132375793508012036983607833662744352902059884630393573920973801724771415302816860398473813019749804845119555886764607975446314188567793423893970422911335587525812043539470463687122021280392299720638918412710299794312216303076561525070781642596295417362494990286239518264651724912321903903381074333215607997974855167000945675355199200133614472651000012468065650059513449257354877165833861760804184009052906198233127752974105497795098748712019411199899020851549527144863225016499924909067848320971722839084497079765947125642532071883289646149900943321332114687468198851578855592975369746907345724320144802928906633207867286163472952241424121014233427989728732602275452215786760497566434850512693623547349847474378340188424821609474855411221028237607547575647905855401996876935630796289779397718712159380633964697455793221816994240931192944679034134120574052771256632918370445876195871746039030319362554370410257654451089185621311445533391301700620240153857637604181116270040405780401491007190983803934362178718152853658810522588873898441938639466526654582198900421378474370091879494187554150698432167692971052515350553706606613901848469771423210191335030397519751374413398631694229788128601159310635580886377650649314310771905410537692643890191128005733321918524627254673841379651792386996657140079929256591830609021727716628825807786638412680448768882019487182493158006673954130616419789267723795044398873945002515564286789144728995911282567738695102469983066710937838056385576341122000177596184228359884066678068219682309163668789498905165856311982245860833162519987990614612936157988748390386211339117118169521801227795242905104178110601677638345474717501986324175489315329081790099047456132439048694029983759832981113762315353466092899349027018689490715541941993913534371598720107590056864687158826012121011967583114261208978428346027437950910702780485531969448702147176189444046571595562546561015616830645847633240167130956126528976355218312871143735819153843893445678271184480396690207434678804419193178287273706333833897542502202656616084869935405124640949580247888855840745246307486319387585995696797808440241532532613388191812575434736995304159992739400998712818041433329833690733625449704705324226346548351537453081866336132401726049753706742435780218675674627947604672292674902746769506891138080477348971694314868571914954366148720318094451487861841414276579017547618073460124835577029000247864438316978914598396547330420891062750036126399608093497323020693419635948283763615280881836749908267936805640956119118947547188958705412689101139395420506334187729826761455213919987487038362073952030594645598405726380879507160689324347907748524297500051166795568541813422331743105596778837436966609359391636968192486680328920557730955467566431820321818371695814139440869078598524401099602534087637304787027864095408055247971364487719112996197955705502100379163427520979421526200931825510817255043720798998983272611063064259651316831117754185291039009505956109111805940284775129245277488493199925713972558434146605731772613702308783713069987060174109622856506592529903408780785682594137482902205448150814806824088730827160269717808204347930116566742306775100478360561602717442302649438871859659864901399898029718460360560106949307587898771531509383673498984867465919277248687116609498843993578649301036889258489944695544424190992801383113263253302505656709009347107216640801014695253578290712479632655240676451373129033021715855215942840393092319456027023473455422344595881026578523641569218711293240754128496795560778902318153282562825826368516311591024773611319696470310870440163703202591215951726497647221642504084578392047085890774396674101902844253605578564236785744464827853035411363306801955201488386216034801405937571640053850701247940120855185994559214775003516828332908547541341537718441009122786546082948825728290621708515585142275950977328523525070153849276386860919076166520347396294191730552111092099979440354958952264445612200911470558935602516177549683962925588417625510129181085128984828619876075646933633796287391760550361622085687444609589181140862771734706215465401252589909300011875932869282283578905836200577854388397395788038028638163159061152114815381788138033320005784072228015482023921637322051960512689767008345889424477087003089544373606807841012523997751889813981927877814969358927148827960414899402383597641408153719247563503813066017396762136787065998896897154577533938488115162948894730747628242839473817123607534951040927724220220821586486440771039272772770201717445231214843159814898403639086204488199616596751073631286841492189034714735373950520437218827343598227895583766105589365418066170900266678551015884727811735690671925085756095007935547001886986550695851196781048893685220307172624136366480560527164033736470386640424032096616656965052807038800718070629610089635266895880411541693272195983913977414942572583414493789618808517090749607930234484795961067180369213282396758655255911070587544566370641919072060249428570184208356841023437738765544777008652477398081908309543049531883847702796425072710664564913432426181124859114996239869514063771286313480587068488924927967929805210301361149137928781113507460424055294590092684696654575612134207408330081090256775459722179480101752548994777179895987299470357285202610781320314184522760331694434461663808916582386605404686268301120095916289806361817851737405761731575048485911609331933825756976684093766137764187355758738348806874508526201866030477518079225263660745273049464122904165185667868511399339609309497571029390420875984486626691073866130099623678880686841806293231774279221998363995066605217942099980752677548806599368504187220143451266183078755837947248538180274126495096609534187666785798875975581322127053129115253635954350975754715388918170241802879476172592174135320268484542531576482310790562774839013496127928164296016222240992641731951828991124960287247823619320192105082251733542027924581431677332869422243389486875940886366106054168578733414285099450179772024220774171627539116806437611001972534287063508400861012130964313140700347144678048095546911175429675821792208032647609291814045500819802090225751336571413770181088086366305169354517886332816655598442443747044317573706404940916212805616639136402321834048806018620236261048628486783924423250156155195705844270563155994388826485848433188368122775935150680377960626912762263734769969273712939443309535625632397660961132892675438391733236063919815236137334462543697355034781374306183171546370539148591240893498821198875483767906304865147706128894826431469671653785956354502417060341699351743075966235407822173517755089451404392044150872775452475813458750067596851469563543001864586185363914223526935375382780731991271356929410362562779088276488631372272355487567868819867264303053909726280209413817723990390211498404747701252113789642322129143012529271944763340302945132085330993373607115328125555893080349818304441914248896728575932444410547059635708565231469388362651011534768085190332421982730284739012049276845070701461833888019405890855219869694786101571428964815152411016362163045954825888297982412248799762737099056636126914132104059585391827700949410952535369929852013622804256908455114445736513064097422495386188811613844816970738247750476708360927051782565508679090140762407707742177362408212391487895772531556608105855290762260434877855906551826854711490169641677855148219985871680116895547580285236320054771403493237997261074332174189937026933536975462800563125838780012285076884371586688654282890722432178716010947215867471262599010665673475438454257355855546869345046134163623174311545166179793722230572817350717254689963899674883349852727146610253263231126723894858341931768935294665116215209588445346745897189226636479541236368786636676917586114623767262082790923832636808927697103094041780788964822059155857090141617699629230132100154028442640321081470655185564057314401577149733206510844560903056948452469736145808503183541109278269261745897682383875379530318044359320767430661634368348099940946054327628872859420791470773189014463701777355962965137765965038242884262912733794859111784285761223882040098928726443254111149005439043122020304112933039817981378824715214537423186142286910559313808349871890635767755773044922465349031264405646833771532391660355658204561873163329142083246709216173605318703910977265290070001179048917544294225258779852851320864968294544378217011989377447185457430500705627686650982197627474590091752515900423244936405449634233831673358051879700029739768539597960238324134960156406496514768708770826642984937365743581633821745654465167218236233059799260678993927103058599017974321671820323060316136709687948250770844935313656584570720905139374453253394721876745392221978430785290535331953911362731634138484556247655204003563477276112243586586767045978685663836873616056736069687233200242260147799714500444745757261874918162522029888243505712981979364542483911011415104399480494029596525392627504826820766806869885065182917773153304787604238580062053381633824273047365951640354856583518037989092180067879980234884391107533615036787734188287313081859649477924511755108853515337837104178606878666922689133314307305759871910612756340199545862910901282658895161103638578752970306758888649110621820383433038544926492056294252804572857206021974919875907359072624715689839219845348011251872952308257896955385129681383629930375134729031005840404579282499184015163283155155426061950037136024120809200419829169955827699760617701014762152902551114338455301762249418866853583459440703910468937581159640518965253829632255749985292629516630917744414971232999543945616424293953535207198287199279461800567363838386042057648371121341132504869534459718844725865997841992733616965274796615299835902208862505617621648939380982170214610390132727965258399733845798557412387180959849352579893062491404240025983721502240331847199263392311244477690293235471340857291995060136586563469848714442432765807103493943871265264075292268356482001124301155075110045895497639887947750026947149699201785778792878848886411222528687084961721541754291590609644018830548525032055952272546040028694984897836308712323904854720357710027328432703285593755694970556717103090910979684989254197643008198539245137470848335585975016130545155137500045213826763409041889152686738480283451746968061528149828229463050681341991718231146824287298011447248168352745773873260476868805678083973965787011592185740622993365511965560255178195058767321006120854165342316270105143489775469501088031553296310440361440786497098407152863526014848078196197102378617620166259333019297363078611397724150532125402666329864277131106993593646935904503085499181509280029014463837231207970194513914410600168707968839661084620070905568001695189372983519404538370907284729498257111575062135990855463570337807991884739481562981011403062632031021553552617372693760248559703775246321804776693866311556127367093957435089986550799038226207575580261135391956579085218438639580582688987294996008279727077449809875384631444785570791559898587979976580517886407186047361995841534701526647891156124723528052918124134309759684269641773192765826572735165599165012904370917841716812578977871455619420208797046152376346158615535826151102635358040718654455720629372813682285939648083417451950099288724914870500083607886661185600548163391614055294867223990547669849434855430716044119986582266658954569830907653601618759368637957997300270889668993688529895762571409534998751677285653918721341762726057616662456801909384671477389177914026636478378183154292636967691450425470887049133942734484916080371769702820271248122016316508461986677324424031667918541009088238084444898540416165322458517162297336028010386771747161596552572526849582845067190465986549434828021642666481378693052737315511109515940148911507441849228717500587032529393914133049826725238664921429387993910337889013024974946590669887708327667317993308020183883113667027504625036433349964528421575692188038893365596778892825220442140151380168976629360705497462391531262273086134636709476237044044802368615702615818683354726675295218878216292250432327033399722022500732741911069480328838027776946932851477594615863866999619535116473005216657489739273378109661447109605514481374775659810295453595510158961469183956873700069388327847889236474335312455864657704199482976594100788334514161935399296938611666281378630254533160686322393358376324555942061995812674839581391196174909062131260162604807629427212755320216692144663030162945745089404745630062423409603728150002953385979876824262515824264619328901375787174573975784348757151219692681736474519567783064409134554476459242853612365130175850646584879901485712978697938796249586432243394302991841576046946784805799744090730271325195089594694006184621905087909885207531362310743463991431171324543643706874902665761408866791461508369777040285771992222938004026459143849602075729612888667156194426960240568988193668167849799906713343821227331671655813428935739310100398490062207541536088225938893905461771455267071947466363368603494582347406843802144031006675103323369234497703755554370085568442156504289390352519710568535126997756127326224689146075169527408199242736731489369727219295160300302987649357671018013498193516917930095743909822886153394894958278361085893774217362531369029493843755866839025624227421174766089901360162510011007067447061765349629522177238618123770426420930287897917960191638085979132091630802963385286124762690833142080874890517145749946331456294110222347498092643511643135850638604537905790173736492842446524999930408138771184439526410588844105208684589931841983078279639826154544480914459992569132121295881726143180485108798733505391584263337032913521664724490222556221321214399524692133905596236977226231483657204750026281007168189365763475353669221796803330697677224390321325190669474124080842061308057302947120275144840861415133179225330929206930478247727058872708042963744502703123458439016547701278774810881192774152657118045683744295621683252486755564468250994926491628173210994175159569998516834787888783154084280614686292386967204345968467919162880607150798928690140590548957611108778738197767282903698268111704307562684797650885526183520330258167259727764914016446384854905520286184256632963908808379087829474484608023031973099383097694658180016828432541697354996315276068270011972125151804944099691915706109172298773598915635416458229766501668880276913133130052665822086983613788356041077287960188608837069355170151889072046768430890267722814535184712331290752983997991095300905147343191983144167820508591200212353728733063740646307844624978397838242677340832256912058922331543876224218967055991924255374655276904002411092358733777438587465940554814370785195421284327216446143199323288963184719046076408375555637447023040687862321061474052899956419573340402121055749542572866789835575081175180135826435283044201693561386505746549028853658316719565955911235596211507269534188651811389865448786676100813328692706324593478532294833804844047674792179602912655457527815988777323149233552458120778360109256120739125564235551751074462796099975119747446381930155946185986424232950783355891553155294531651861510961021545338772294243157804942733823789152041956896686901852832520337557742912944738259353585689152418674890999039718016425722255374750359992587499099607253623081538683752921886880169130777835424733307087842586883153160202113642184222725558555414870291758372978945339531308469576862009617958947712089189709769022028865208424854218869732632268527938712309347899135846987398392350879545462687577641173939946429734598993187589599659414290186887654920620147998662470338105437169236926386340740009052768674097442719230620105393648485790418793606546423402770557052301866628181213624544013752214660672447880759524085074445788282799027832137203544125506530944535709218798883379885562225617961414394597923372014675156246752222916659482586811243936098709415625111810900314116764122810005982149603084699205464674554139695883955837774572183913347832946664119116214623127502960140169544675130065362061920561866173618951610854031966228696363725681296722776381359188967329602681940708427262772911447915167842606661328754032021545959291681522808410441544668889702936817277337706667240658726923824231572034537701181876826381229952745007076441543780122161836791163741637472023144246368879986048017710556674909830644649945722906694249949087819953204108497500547021971135513050020266533084346325043581655898845206696321234361753252447538897518791538249118551100807123586602552898814757120417788956258193198204072711422082747430130509029080774041788343532084334083902806204110733544089056842644572579864177317853102447730364550555428807535664312623132642661881694401035359714518072519377949921442502276725442197071475574532642946634025072063770756708068510670849111535604940904785373294021380546358733993524107663538950873047471584800503344050837683527266029056997144803580078418432083887043121141082044917854676315989631166262148260306993571200920341935956600137535943558743940647590097484228147376223201728953339572282125084497789287712860917109393086035345759501027829729358663661508067552107886232397168944074478189588468566184355553481726053587520818425940361963391241659687056442473343132552895609787999688250529206732861810953748802045711976942502920759745160549325321802683501717792048187226826577670674383715316331433683460675583975014002062145680946107697884078547633442718768647728373878773547218487569105981011288073760039446507615810804364270019810408567859940899939940666511588279291958163864386829994703318707744750716993528764113641283508987647066156834487493800323060874378190100249168037936761665325025402857798018239416053693814059321548535787364044580250629323539766848925422211540844378558546683998126437919025022690071677609565203469766472916347830719740388299354305014123857346144347575388832426517632810647437881778771170287679184569119413734497260570512147863130422310866639992753903135191461869873856529428959457734257604636527438401842441527539593726678117100562303280880995455595430221140775528910736757266218946066554111424971793161469898591639275747413390466674168672097981230223317471530732468727821759955946643199038549039091845909219391081610397391683876209784913675829587617610682046822559935782508490328287790238154344839631000755797939302315333367814804581952605133788684166150585609797771574640579722454231381309657659842550530536483659961514593283741238479526592298220138681075821367377562877156934488258247665529087651711019739590193154111428913169060063000525862307745387952855593481463190629476139406229831393016978005326001976413067952935010345521251549455759671407229347059557994175776866291917236539791460395819305410888716556947874827736765932216603343221849473325730401661795025720111151307794878173216204873006480001134905645605478453285719401866526400121388525610319307673667649148807570853268959754002712113623986040551524487889289100590233780172729962720578074439426721799580177897926980073897332145952960978701661393971041490445514161512107532498037282756511234714613501290292354874488493894214713108571963259782730344021803656086027708983545607098895822940678685172932291080456018026186925535123441532339252338022159969372556308450362711482051987220716002018462604582335331082002443928702537315272235248887019554664629192291829238253721917468670930095074243241710774024943200057754540186639804830639906465795421451190918262472016383385835926638207525580382732168273628277202596886024059260915800390054921614553000616952210277066384549036900627462683055421094826986346495986294754971676178301371767862142636342468154337919049926810424574561130560053288884185303290469724943052144592091876098889835173091732581107158151990179922291135727540981359821627830852094346085933296207040670790600044318341199580290690944662534476851683098256979050285494726087050142783701722604633202463047217390028109784143824693030838619325604868670418050796013162879381218788104163294470984458915418002146151146546563367771119049198164078690996777264795649458754590737764880097515026802438544381818908165521917942773635603853127458735456167992716935961765393505474141664105209395413712497819930435416452639719513201168038710667709921944953912173724116118341950717253955097475562026454471336111298882566939962944657717467083257985436085995897400239628748017363153306215290671457668960613941520353365840026499455317373933496979604311129646353329118349237362235448967891152294799524213003905765804793968892384448288428455615578391659514925892807606148153354758251339561097537782551738602601968162393408700364127171093038947531802719165094950693517798342304836465286456989129304958504855766094330042080024305321251258220800409845542156075176285166941093338320317474459435247128890420279556390460960254989377076308085902179457593432857580770032387876830131451561190223904061637056336704093715718348649886547081698191514966594399212539088543062407816198471989394057999716394955010478498376195931515694262142553058299047551218456020041243009205452808701733216485437854210788144569203021259336317047852475855220500120390355803099616596960774673674248891788396271514182355214227147284088834283965228664927127702072895635825368952090741086410723326975814531985181940463483866708790864936937381627657145990708495373592075190946600262063033510050676881423129384686205470735408564804497988674832255056509870270042218232797053116611813751081985943500464115550000020470942428899581895581309221987493445232328668351717950133876347984394153950727065718532282754026841002269310207928227487899701839872111945429113579314029322954225435447842048444457714481539591393183191729907652276937815641361712459642818133639516084813365111481668752021052038522157536388325409286200886039498891331064956827928720758320644013454419479413581110131680222760249659719091783572700790203413203380225184956362445374987721690381729439602636173150215045236665227450653671071587987075171150058153485606636108002740505626216196343686075688905119150280312896769793011032119957507368156415485115355931714760953665513665310187191433186354781211736685390866533482817938770953901936438373923519149137935400579171260798115339185325572337494366299850912256767996804048800538612558478902819749226669922672913514555217897949167869981776063046457879237656641741382072896108947757301511440043927648708426950497280735590047409332585392122537952728500353439920876491705159517965091107074069157952881447360215483664644909017101792234681953447539335643458292538317424999658019178685968704685651450242610453745579823875449897132768172267724612924980019651439485081302530378072854851400529391807428942744486202709965925641262842801400325890570674958256623353067759260428982005174406038552939758096906366619610687406003753067093784033524672030292813845825911114146327532288685286138002344718694736455074532920751950405385863023880378627177090783660165998292026532064430078842673857028433849538494523732158824930446120296668134375698250313035268046249435932588087256519605715269417569077508561697738158771114672842994562005868362415337998835535540861075286744407254633874203203886556608618757403861341220895633426146766657371642671247323337431106917485471788669901829928638864264528340135459676505472025837073008402599580630162707020524605768736680255644095683221561764637607629911817879765916602011119614868405267293331173241189044753098648293862896953727506281733034738973763783576777404262770774014914621030627717080998686471488382642499135622896927716413335534541782339741411012158008003829325470982638778127400580720996180468637526845901680054316427306295617866509244961062563798626684435913946987846031824967430845266241171706318238029856476988684954592558588921297444218235197697756144065407635999015807038412335678047904617356568328411693642129555036256653597411329125016158431670241619082692981709246232488990594881475347250239560568449337004324872404549070413891106640288279843214188049153782137779390442503188840388990891435302128014697183889803901694368210492595171824715070832368101780481366469831698302801102929638169234830006045042733607233611177722022833733301344732500193048521233344891342902186435315351176074224353660870967836823957179223233845128885860360936247101410278943672293259139473476556240247262741679154159277998489542567615214980162991810553330072368376798877518464504893623262611207133079226562998291299803792495170728903607072650716857920717816877079485464457964536765481168845747229182662328100020874963336745692877486494038381839405992770523327476206341573617784253463029719708233701172768276763882678386765418882815568558706565777111334691157114008296049928086022364792089870412099242053308138097134986934055278161020261797603046767390540501276856205364560774781672155989194548791032646497934300334605837228860688979016993746450079512960309887502600846334041452455608677201184768529957457973043518752332484578309157061902276259028779590346702979248359447384296850453188474322073355680476608207563504633383523482553105710821233218580352686224439974538936319936116710598703766627983111453774853560806140100813134650796399325969964924670970250350763237947569349768606192141813971285060231240496297347693273309618759276474859048915390636452852766306376090685145759713123813903734510000944498577894559655960714787303395674413044676070594314200468332000190849523176624429222801380491271957930181761425460569442812665654307661998354998995331320365575442393759757134991020653619474047252358035719910281035423183914360674881242211480635962896606213474327848898770333539878717653832002196488360647492007315073157866322215831191230199536408469054385523636768753008846178704008831822296029300062618319083283629324161507312989732954851138486451709459799400346462551121893496663469730962773108322734402565035386792112613634445933258208771234905319928288893416003993186461532956361867271439137572957430243852332642037485521352253253690635498624156361529613534942212630093720415604952298008579593101322337148156260695376645697831070667464957918682794491826397960107322210949324728342152982025833049445385321477755667269892704509944848485591234804391029302006725796885833389522089278845994086562204803245526537061661076359802437093213262188871315947504308463207014706948719221754949114184437879401434749232738739283335118207120425567728941468836362606389371432578324710329843731855182620113100885578052629865409077768994647790264386994397939337784860312462626001038321519643028520805210507994721806717242174895849559698574683795949873741378693102815561128928580755869514486393754548234494878476278118035499436925313345423934712956487452457664611340735420396483360995526621509069189745186602608555373128374081423472927593277915842759088912171230538416133264569455194670137251273613026625644968545487377111398601970047808899439436755026379464862012240259658639992481129498596596741098393424649813022148104237680177037107110401563548441367645381453571999377957661533321828240138858475318514982597880250622193105339587211311684189371968407921072876563770571002068246037170927952932145147366448185870110873220391812739429916648300523764845645774937481314918377232635164348276026569198308479671851617714359237511392142409822962546265117845418872513866093207078326028124134107992340658484020771952940386136200235731602112662092714435770939331308647535921421539842221347372753377093543824811913995597289903030372891362156754187975475675157739115659881508202460958516715309402407272647174351456930473614181938145798177617898411046514621039296222272449701292683656655041949854717147342876415746515115727688086390403161365781751460564543229474155333045017491272797373994242479226515834821390968537965806593371983186229057311913639036849170020100996321977184312125523276981122802440010446947652436624080595642606925580921220247035856003937749705257071406161818002337174205601476708259106048424894084417957113001462746209666230170420335542730939729700488831170156321059295280693971171388623795554750978098066544605210795883757007060580519307143060174346237859312644594281516864252974652790622690968550257210402192244064441791946876958607676885421701888720942705824375073450784464079008923110888884245525245284339292707036090664919407586139043978711444331564805134236516081699963031110603572381561487583192790564901238902428592974560566354816094476012068451727299128146344579629633663857960260301682532352677029237133705312742610035143198846738448531162964841823382663334793226480624703310250583697998981333340580163217048270492244367884346309725302541066487249974182617466393366003924389607170335198337817194903599419790737838536320735266332772163110486486164054199147744795546160253378034821241497682864374351801596212629910823265965009491409036718670039974060313152694194334704275390661449824482681247473977390091495876713424528648130120032616234552885538278794716056976868150252665737497990848803887312857184730902581535678278684001821907562868120170795867264640130100523023354492477000274901283064913475286822011439924432436492430429183826770453631301286286726618734769926702519649287917740417082608106114721733839683706571143502712217415971803320860035543036526889730304562288601402696012462871880621727718982289359508207832154378732658387993818554521629684915551835606659211170159139608539970703038926225359639575392755737017245916561624648415752028164554032763051227364607243103673031000416728797975261178828557331438405073238992701661180540514515090448370332370127321798369475197547258340515863772494539574913846554088525518494695268305894033113956929974814192658294386299087879747581614108416643015358046664415235525840117171386888872715173458142619326114128628733671161902653320208673043440393763257097397719987331056491703219916247739383790558935028088867764769047547667430127333885463349160345759460312997921563998682655811858379851614373339314812724170000996307276259743511556127920078073085804605736091134885177768511294770709249641583145447842860076870648990156759090600596980671368654729393418202763726495437478768380191981378127551473220652240130715606212612473084651824041623728049329891537046560308271618854053945609331598487346272727332027488646198119778666656883020556160178657823762154629890364759986784807571245880164517827103225140919705555953163208155545330557317611793636918020254485204763076954003531016681588355794132708760731293154222419103626751089904753814396322587248183417905992865552852492625835572505244520626265487632495464750453656919338868285634003025025715372063105972563535567887934035654766685720985859526843904273663183400383958472992656972816256732331063237384908425812631944649195289863713252709347738829599350266597922600514350877976324831188672661255760504062358959680069975873161583538890435888757189389907605185673086932032502133890131250661743727403455495160223703724899084457116684277017063307863153599969487495286813636354791370925321857936768593189586713713098072383751767681931167029632828054975735668971594547345008198037585820333077924320593040942467763349506714544460115421879855988718150013278255336499871906621146591263881265865733596652839584842884262899791620940167140244819120398480670495348587841434331778483192340651706349506033775885971766081075710600183106617506705333016000616620322022312085516111319976770906422895888008077488129370261812946734496495880693650454057433503797160865991556824845073113733151710190971883031208739237276844510635627196914333860278507977490649656442912212176686896271603573386329307075875674511332643944776136874410049199914607095882524944426802677790737737657491466805586211843558963783315131834212562623484148622422379667252112571205829187153361665362695865441617097183901021143139832955534295062200416849717460958931559034703268032263520032486845702135974102682103230695067484381188409376507386956244612711226566696869962781173468033527645520013641398383066710383348329047912267267965186390722347771718187169612220271846992847725940705409003778515808668341331447658874359838127401037332665134797952475962435673975564304210872610413870823434248311959418454771103059058941664915600222126305798921829392934251853429610546352672715522282542713447556172736157957851987731672745180788008352657112322677667038081790241700763848313257710564111735161573699976355602903208919259768457220547048815041419929773778645126168032191533722333696467241379377938972598333584251537703852182287433151939629420691623771161678120998569615442805101634556292271910457885468353271752249768103002217040795902386740123707568026929930978939098674852857487600306696402587547015077390179474938755583010655720795546598128980095461103106516139282841476794367870867997785252993532823361365579844166441372649104897198459735280936018327211685929334242771726073059676665188661161575656079266500803137647487487725083273314951518487895791766690651393062078672395002916734658630664177280021014434062207085490984248263872520710735705776399326040788944609522205872392751959697754714514702363304215235918191792878860759751753458020482615117044124544414441593577181935352964017217581184322936575859659372412176412041939619705149114346836940554433880039214276371779213167803308818557148879864609994833654035265785363316036980134385224462334028816742117866573995690580990326105885752444124080080828121207545598535402552805099360446733643436339889109802714800093971668002692307999182879208180026295564217417518697375977046670131786082029563592881130923461602434020111025515805257938711500187742285618671183916045202675668900269869754429249994507214540242750289874042998511148355157974528009076938079845104237589280294070665682571613898609473383011944453576641274062581815858243960942024534725655071801995991073595745354875873492128346259461135356355114727958520911972658483519976507941254462731787992811495403258627087217906392984444396475064152776520771280219374623987987281016884740110576590933820403075555192373300469507917738248692429756074735012273416253531701922704155868371204738260720406132655116971783843485468376774665502217216192671732285705593765796481338235079632037049731517238909741628913608431976499764653406075120887885401390792658111315057863928873978506029485106176719459289755525704994914388746702300717372348501118768035505813104078385387686220006052363415587662760273180080229489277361267473361866838616910465830409392588552574085348208740371436871835765715492387630588266005853685448122791422631534996116933646027836561047178356291557906180647990797829682325982589872055927337656063758672297130367550926609060673828498194097650149807959457290961544643878786721747117004110318755210608509011387765628606191675757877762386859445906306164241236414046326166318597955963772801589987407513201747579282180047953055566257747671859937822058302697441139674135981763335534477733574880344995286313303225845752611535985274207732314808807721079749744365751266466902544952563775433698254148635329919499676178834989650105873790930984884326276956465802240600099904632322756364240675951915106917269181315060637416147370022313850160304627909261230254095119921349187888885849543840650407884922915897575491988289918443626859778497259121526694604212299952060971599306874488884187211583586695497404296032175282226380891240285372649148674205474250340499389989185258097637640595273557078600611132764708825846041468875091071739854435783589632458747188514411847750730988993638097109918967508863192965114082374162702078335209074430088536891218668009649674343905866297159964230792692139897506103909797212103941634675864697643149573732452298561112378043957086957380048663339931378393921486754661372452209511763427162576844085922540304601058002277160320069971792343358781171718651350940035145365486138596344202127500080705068581659615396836153591952973145541251617318022782102642227148478682032793268317384257660206790881903274626256685285967269556685294729378438725785023713123752464677588397743765867678471941812405047288405068286632235606927903353410078828331492640430696881769362035826952644491597230629565605900319705871641185423597571793787217647392540287708092639032808287902548605776135954863437514034831005110885818891472310855446051806184259304789884045003612430569862528829008138507997208979908191920691143546001166039712936636409278557577978791588455018109007053106328618916746479826565614469414669124888736270060028612538141481797383577684592187396800805555370748241750376298946946971845948464707430783758634141763290047022862418316734038897867509867919042748684725984605860865240624300046339180520303470568664236972979577610942889254155819563219915019526267032225310601480859903847262346632760432574777997405146125256530126202136832480120267616331130196710679014748630637040471369336079693680507892906145719331558674010862564946465847369916037725011280444361084131905323602652756918765715675415424113231366648587554875839107556892478198349210942311853703313022028551458657646347598206785375540491264938671615690709778827261657619864802900721679065710281200595989582408608712983109805498268566358749938745015743070043162394551415315514967880195348445110499237054995345360675262330399174734785977910098251151681958169618402170479419580065625779096359966040359018460200449486099963189655223374962113937872048376104573593166200361510110759604837237334634038286464296435281959777550619560683876121601739724994529733581526455395202491237913450116326689245519522872091411221623035847010173875964274199988996441040221559734669912001972575084705574585711072980825765701035022323423550387664248077563558018097255731036285507456012980047272851676897016762557795300603986193653803597183142205527655305503160487264888572062574513009454206066622492451435036066072747515664215743170491059773771191178989926121631510539908730628209075238563068569769906038705223001037171314686118281056660655121649872778076425068869441700551108090795976649284795794801532524885629665916917380837051908850866374786960166844594510728063862531538104604955977644063457069058899074222293793871931577650227035556933923374825834397961013357174855981363645568241517706226465244056575975852214719732505945212227439783397206791679197679998943116830227265363093738301498667830706782084860094455805454302068523622741910175745541671665930866187025310019358911657425951334402316088483643286284722812849938967816135957237963599429462760536006560542630426032251608840275607246794018511627266968291724848273958608964398388587316262893662677779164566747784539384498687863100168039379241269877930110002982317345894762171398327232935269821272463611216144910845459527784565246427011135709269122834221255738321947837166646893236489424142881399254947146957882759791597334919740015883164496255840344264202048595623676242022253536341008268232494967781966277213378490638095466375478423929626950537374412413884659317135568206982803930280590547018440301447729185350385740712005322116443312876935970860564187221545635956306613066942957203059063960440667457330410469131095261724630794907880806296490572745897510514361798461299001981022432809844814989063483057926251129386546955392246869488378699582640439963382132352997182465931962308818476751713607276594147019703768213881228975771921811580916177715020100286403066566570226723230113148047425557939707489288268289995937532111072827972651812621610790515790892885902092458070363290569441916549888172372166265009927133981253173130534800389463211600460052913125670005820056749941189887269707012691582117805730153020404304087027284452553459901936260555339534989228992077966316014253703601247498008562039154469468043269070075896469680450693959038349026573987527851704591930668175062332335729249531536474713796954699349855638888021276918541360649885454602436566378005732667334165006910101105590346364770458178928433487761985476685415738706438113096817163974627960188496279889867167826334222338553438907148871434986217892274283213559193025373327114476907115384951858986753493481001550597841242707881482763381551233673193040342980522582569671170224918174828911600504039669270830132909817337924978173653147746493865404320616471893612187614883224889826854502402589606576789670282802759495903655294636678654789192744470872085393307764595595024251124136027238757694064210590609877010347700457129791363165744376713224803207474417059639723091966011813288225071354098001598677952177908163591762475738598838226347020926001208058886812023900905579780745273254794877062142404517278504672792827916176254488980576942284938841155966620747023073729418260219598254540713992328324737175878823623472620490044543158021678491294291774913452480631965039913133986946961893750643619876400073412811572861873659136899012812399640799329649363822944773330530722594150658223976650628286178524035547549632711097893306327875958120419906797233085862851063905224693132191767482884049001142092726640834682964648888278827369197438544754568670324564484613134164365596833872537320543025646542524054837265426023701707792082780651643133541271033351497170564791194187387547494187227685922940199571462126637038442663820974017796605592894176684999284846538424282351671970301129434960973766628392815552400281307138606624255569149030365482270540931076067050395901129376281204970753426334828837177527994732040325538295370516270235386761127554415839949139076172314393894449924424536725638836843462004179555706517002297339982263176514035044527036852384969721941972552202263027599375607256728866287519347356447648000411357685504877845989082741524076710612944447245114250654144386444246414028448595100000210230728089030442382417307595153864688928410666379519951716511520508166814222133348166628556338556148669639984946885172931798698105064784344204920545758656734342289882103336308264609617659625257692744329845502348543064295963227529578906744581927405085364300245658752703379370366905083244252813053967934149391800998163468927562190153152941594111660924420756596512265150575915605234072508116099859308980012191531258705959211234031844435068207084707436411212866708143904809117987829193949678407029757980138624150145161942453014260798603923978223272882597049029464824349000895154211973455469302920364471264621316380326474943091590409498955717586487257812899932036053038140944289409136448733855346069215566389841339719544283106064799717843047320132463208640751302856658231203902834737946778499377147650022368700567438990454543299708669436524545573610039092392021502115090241003508462856240264800677600585465602349651921704283048381223657649697502499021756561267377410002544482653460843426854698312327214488426019750063559509161852628180063093272745105463121625297017397077920745754691135684958696206591178677634806351901385105826695316456000112945221190881886597064572737293481751591361546996425964730625281340131281998244307251835130683318589627966597368205131567909251988478189468171541570771083988591739092350946778861966207336852599404823006125777896144387318534163637402078110911551589074707816446233599155057100100282208321316275796880545630861340869955925299823503736505029727428079674602022175634077084247719999473910182912184664100610869515059558049290774071943353200227341336634442778016392257351083678104002051367768978036529555526678169500818409437941116206940834576624904536904231627478158305316148890543065375232612152049386593270055345623277660495031088221395655106740318841970786511589268383011305308086750395452720192693945114326579724874258661664899909735154719460396777762567440264504582898949771435312570822546562992504477692866391506904940367091659003506697231652466477675103503475756617407281949090618092687636507754437711702972221184158461808135462758473127233118307471123477746724562930214939770495039227521888188690577391376335042781605278672935624624123664767221472312854386762054948648946373504799638101165328276096829404709132022226616600341612369005407283390164007569097902712088916108623297447040475464206239443132370681321946684290393400869463048241323406847938016036650001135715773737844769943344145912423744878705245279825741929230311790260939053472754428124320191234415946548178260446898745361324005327010837401218359790712876581047587642592522402029425550269557079840015971521097110711517184739677470350599589516088703062526769637562968874809890541770234152169523887142419163848952745532574871003685525201663834997754114583994429961426666170694342964195940802002851111607528801468746455875688563716753536370983869343404217114313202997325552817978037166752092233612818607799502665647460976943152898330950424700131006668837412089138746115733502778325162100458452583064952711473297251923039863740393289545397581688218682416123105214809251027368337486823683334171586200794303909769322828103898844230003133586490729773797761579325891895336713715422813289456640106742590814262640841635915340123017733664960146040260136126521029256893693047401326026563192841833790261433713008396062329780058281156660801246127741339946083595688018936445484626750634231730642113022088859758760972960547909217472375363159190757246666059487584454538223586612542015257844934938159021394201730728571238187060357777972871320681815972904972613289065059727958014681289563746499746282858787305841623829489213759890782723610159502770962555769032356745773930977179675866250552543849982486662228990633056690894397890595468114090180832547631547282105322149716342930003861511539825006192830869980492242086779431671991667054567158905370117081251529864725075528152563507163980256545525230196521632566401758685284734926273174265413612626088808943147651921378832159774715707695483735983133953488514640993456402246209421654645214209821115412300188905053507238120823112231600543123009502138178513675566678184750042016478030042188524687352713412259445913253401666938372954983001472162250224277539262153169598045212682046392944247005689240162372360291260651997656603433879973114932156066013529035621332792714877094990898023280723314667559372355960664507797565659513523570629945894854687312639679676806175554276358293328559146901789353549715575189060992519243646983476761723103825150822263676921434773175860544890375993805913570340395889995201524594822605399094749845689552845137541090663519407322259487436087241467627446338844734558182527507396199881426261978120060908046041286591732062722678160140203441281933732439245600864895849750408864191746522855540609066102958477128302152603639717617633980961670558663318348482616455673759427680872257033144427071486725442606267150308354861848130914737851698127181115635375108581892575172700316069841510699588864826853285977010689543546323751870327310303524161405733166257752877408361374294912002581850430899534273677303543153977749735150536858438454613486134997475801290415612944494106537082088152329611077754163455651194241036089437103612322262042191739625788413515313240733190779777944638348423242320720367860085320909102059494063728212306037947577634245988373832576252860662828683102665447618327456759098191469913784513866648603280408559879051818372129269831722665973268489886486403926275260832807683861233634937490331859709995909496773947041700946496210910735699730885327959163171569673813189433885855853802477258356564510283199250279242280953925902344627113485124994626482341995819445697621927742025030329689296128361138259925414436764757352359134896571024057522865413541977260199161067039233647477009299700945221773727498285191743634655021209140628646667256319973479650006179700278617474852808493393375256528604744049829652893514257437620776714716873376477382381505873319845774288004481157033050601635446111147561377398886606333937415887347860860016179413353301824467607625655837813130605569726081793543354712907474313614686067103182529231115643760268783219279048108020659587825865540265697981314393371449711437209981113632996326596565264043736988568774485055500181391467260554544094085549738415228737213294991636015981200835954599016514136920025086755528717134348929186719363990291356679724183666255097487823657020611419628815425467639888476066372206293934137358378930140439521324649779215658777911429244060606541174858781649286206834414005314170534005417382665501483272616808195060578419490525502617652674610297523402371086932650970979480581744985307443759404114967250288782724961101987557572990331740714380039538858140855840708504472248956457157713603431445029716539820502225579432428221647015325726527556883318614722248947054115129691635283081750740782121393310087945246248620829143888157290216316608593631363507660647660129454507524740489949531851491671971227144884296215697263630463114672783925005657875208365568578136901400165012048646403085202475795152786037227947864080634160778514281516128125828698935875891591799359178353968924759453724654615350831980377565533868729683661859564045725214355205988789803669031168244702183794900231210308924632160658575969835302305836180886949308084421807367010437314141395232990718969236950868044791239480959085549789080938848561111270330755453862191069352014446836290359932983214055509581280188455337188682443403317867996923569150838489555037451471455829050567229949819080460054263967713178010158984602745801965855825957642978393584513706578682463740182999860148631896082580997161130286333582954042136606201508584020256831466026547000282496640817132478725390711250668875469774044117552330704693416182384622979630568360270839267930485172316494374897941396804615295874038043905179482439259945945126293183644486740212793018960331818936914970638433011914807612704414187917469404707818937262891880005107626260129757196307027370834785231409919534533464908785774646372665389672699594507132882938921401104344136866152555816190587679322266497491545401891730857571812786304423447959921098352614204048472317184474601898038856378853371628236277208832990061686093797388639693217658194367012124474866705965093311244575076481775331203970126745263561549130493714741304076834384187838729218224930070235632837362131272429150153192508894170587293499101186716053111331975656350831043505386512977314683667781704824584785016622943067044397797998062968051884116155641584798101790301858956160286313646536513103869966995425618801171636766950766912575371715530865571475110873819218424999716271062549390782233327752938436991640453617770701919968915375936590291436922656027753495863921256388544441468379730700324125737356997508284047546546110121932077202580621497104222490543019200458382498394314853858393505513558899612116199585935132727991180558224172030403276039554536683834901533332017623415311929385222115104284155248335180723831340456313963287044149507616531809044191071042860805085019866845251150529181786295250744013094662788131196740234821766075481848297872171604367683253174504428218977448294612726599357447917960425307132371132639299561553257125662012501359455405127568420226566490611179825212732415600686332086783438598657069186201911185212805129467809598531963993457824948793285201004473538188484951318030237996599497707463323739325282281937439937290439773639414967673274496577107386996501042757653312847303584420634043296369478745952830936385214612068493165111792630943946673123283626670562998467035104598802807673494495277010182455476268599695186724769364973392515425164394471488123240320232893170984475542272704881026604570343120043148991464835085234898616875479816105437597569862811579188926308896794011559241544940946979252281801690157294829368325932322795824065303185252257596488367366850826961275904000159332807621574742695208562513120624634131346758751049822123882984119716385035397419986655052813953385825783242836350033523329809430476778997233158968763326198345277639198331793032604089907452338138655952732798102198448588103771188078281179918991096172071748207480938681461014558444815290183607218759108113204276113148831681114104330358773409192364667205040352548972069754617597223111903004872531686783520357981431171996618536286890538143828905506466787557820287464154238584252197519290008932457557316291706031945305547065492212765103973937560801310822654877986742448853176049636228943386702067134661066352499870621288140454154410465341907623460293524023671675873253352099898657751438451586273738451402534877319838506354384169877706566793264517565784544024360253834963820326317063207386720003510541640055639871702945092049064008263414002830447610900006073693372734925763830111072086302473503608136466636686675882105563162778430789931563861955592087058429036392326601617403898712937198559867191868245035389547512911085767544845194541597456292443366413800102727713994783479055019344201911045033107069584779333496992430939674982835080331934760153750804150796243719799852920374763364808693465986936375533738777420816031081047949314368987797132349160580940468630304417575636829952235945999606660578286745856379153841734613483772023173974279591410755438889649879086349940729632730332441415351369732827992638622986522452348400854143361221845892337333142610524850578300933174191281052168456261236232814803811915312725516508729280179331939085038350906392309383524286887215665782341137827225040464819503136256209603792449610634068611949427311098324193698408090247001519409422681312362667363288934246983029885339683993744186996259112540618893278044660038476177732588262779897949808639507760431861816005449104622026819752610616438929971632632678579706804607225504975590659586942264725028732149917106715049579161250401516582125772649329719797098080223215082964633594968838492738261974853417678188951524131616651765248211213717617376386684779328962966359586637461253437832298337397085248409242067871385388697532116551335259767993467324587543204932749463875922296759176980766634296024053482034655676624957864204528979583029172463054330894936212657833645720999373706718733960478511275954239069815839809870542733465218007418531880957108929476231668952374872332574732989753317134243569081187450141242833889044276216872015978778234082809459635900912073342426270820049686267162037051408467916598068342917723707660158797499596153588622949686179249177509780942560478249550612882741412850523100529872591921140413812968345863157361957473059437916160817461965254286061944411428585745329239894912267853413350772970821514075076654117415716275193755317710129616797406870396800065389123911031285700958560045625969875803104191655454165459881526661610500790673727020868463769607506703231860194861721188505126657621697345082942797076845079508279016738833541349897259028694706332236676585458588897277299063818927686903902251293481311487657753168838877657307582916841379916727619974327733359868351155672257117221326805503446397010524163094295501991147556622812167787006157254222634540461916080146446923492257964727760005884003800796734950150995707511259032380485658210392515235899352593735194376295129151596251142153807172238357028719424289089912200625423049221856329277665362340078701034104183155003787862944153641953061883893370252051574997812230056090147699449442847670707082867413118095259969826234669297665855097826438538742740493794030890677105461500873828012819486575374625976155014425029812679713945343398768348998295266139640539606160426222105079677490338592028826158808062724960699575033286591913506549286307240035603651816845438089654189873621329750018956970636766751458035966440734787908223837968597027233564663341767270787319470203338409786994871867263188473594296790351083771078659787132853497315706698521240482922686631995878630282397511980656823407874922445903480682062083535432729416303442565609217357715266352471881802788721795879344638569000260454260827787742381121343051627072159904277171496290766482680649438327682810674108163662734227804712126980888917295085786117151934538000139605098649892892096588097496508745639979123536525855346413780832574049546677841398351397745866463285693291793652069736550220924182533601932113961042723463719972177722146786986085737179148510014626621068699561715419366521745447929294988385717907173914227826825433630814924336408797159776525504378485141929365562494402862487305229536855132324781190134970973163513043561008572937172233575331428368165250360317190522584632063834442524141466313180041260022488368167397912747645411756938551167080762922374489641330832726634141091717104764342750935334378091466435446615094631850611292361971451403537348026882469308300518663160698590038438707134412022933243992522295387172655398002258225841524515534477686453176042482619379318951754439119400672810535849819534376660585210056717986399312850789207849685610594625353275669069523950145260621876698813736247193638511501665313169882198962021000549122075420685137001192062711513317890840165939815714663392917878301498843029362615244202190139953567598988218221884368064727951390193043171903924431414817602107255879548661816628335222504685632639055474953823645772419934780713481173434000186660189606123643637890189505340310465140252470955208375161335033199813168424405978781246061803680327347964678217111746230311698440332547437955289804409889959554343903864436098703639637427590374788856420047136394018922675444796484874293709713131329661627849226813016334558776591951454098510389058906683182369697415187366026615362434112079797263615866856977671823333706896954463454389335405269298308658067617257346495553912594443906859216184748975994494615563600477797813953371391017743325566399492923988381031995579183579059499640056944358618462828561506241999978823316995970752809573126579668972741223371566681150353654702807334762565570003897978689050367205272160160539502196903742390667390548610394053602696279198100128064865795544233208725247838808408325577697614294480740975943452477008614951287307850418328637649549717029954952924478184701307721788064308085056992551541389320044256231792814678580287464111107893351654031394862812812017966516115400464157483453850413500480906055583970866517932798011879640084954511344280536762997291603855400347887869034340267942801871393109311280952134749772386840524341097273031735156486837537509739384852112494146799392404202567363871160560957987258744964349075839187647555712688547434673363106313708057099288909738763544083666362504525511218807890043782903748167253885271995320795595636559384564088153594380579616331660700983409780996609521791325654351139929077250029619480025613995358368541956030197600103159251443969251847016090163385082647806344905257337333768273561431125052949156665527638601948850580316825407548493385333923451871878226109514762842172998108301964839349816528493737936164093668984435649593766691060453531828082991194234280605659588713940122541460383083476163842714850094062933684532519893167973103131103885020237454850623941844713138518641387782916619864128303321345962229677922979109336153966519030479313644361281255129946952285076604606849931492127562086659800890935617981404746374041869192766979258046287644327273776727594653489492248420891876320785360676075157104645986848928328736497687117175638151053670525206118620984401892182889802932441807399994987041112989831568878355654515102810409260262347223796961519728922976375431282123608833543151857183909360642535264953063225928076066069923931422787169957988408497285357394239630200983178983950625993588975388686343928205162103509328720785278281872033686837870810161927046236132580167393034679546428811806086798281298802941495731928142141226396113726635461665320059314677025035507399359113761693686243922449589015087635498199241383566272827173280854993139630992350581984664590878905601236125903135797968694023037927157642123243287744233833628890242629509848106823378460458127225555015749673320538529168787252337628480554630445632047621834753199721859498928605126243826482340207991916096943197562342730899441050800812616742609021622942965089632730376390889997104135710411262135937156443855646713279632648061605187881947716269322182446747375213384996327923082010480928675406451422082169448914051545230804502976636037959167920451672893378009330009021441306142650932019063076549158832175336496606175575649570566785249520229813369754462598192042132375602000822765028830955874068251043653090573158559315212767699927446925053101937511209260435684405016917872008888500685593329496017962081664280007913430442668587875550825343438082020693331854396825966917360672630113188126707897581224524053718325139032153800116207808571618777787916143706107126328669267601146192541454546504616905736039232045668719824535365716823015991604523794685456376485505944877436973081524026034072649900625571192460039148721317247233892721720050935174279568952036699375034153790771432297477512930894411103967979439669810999249589425275502644255521544328350074956474936057518259188891962174328710580943403639204092844068168163370617456534671993430086082015628623367461002875008707564294383180531567033279047786360847713882173662936895858100384174706524135333524956461310489585089438384484084597056332796706239660273424675763170831708636676887709428438732516352437512425904462112840931526196764328966194905342565358442401148921119022746213839414225919391750161222216428004333771315642097462657606999064503018329830818878823296283084721342976976254760309580218089440983669003351294971448648747822880270546037942829798112952675724657603082295962890547063705737890648330792435840459712212010944243713391306497918941757805738712201084638874304025744223851281867778225133169000935630261618427115478475041923085895854615765763506148026223422153621304361989733446637641521318613807282536552965859332692923385780532350326973884976726375856695275468989141797706671586550288951828360452153717397919169099329244295697037206859970429926957211362244150553988035591349536455212677563989632279212974674577142748601340214549408406747656141960932350795208804264194554250484744099069327849221446459857818773860335677284223248172873681434314363075240130267883849835380985746025002405991665067962339177074361180194728908159953353210669354395092784947093988219052919124524444122395771274844201048714934188596716875579451120125121371371427975517609945769019750444828007349954900655412033006017163236974755046587122212959008993270984591907063004971927017967911894457808823080515900346189000578531573470337216542076886350694672366181218728159678751722062880233612879270042228323446408831712894722083558079941217724640099185959007364314154709361312652704389701074226875445079882204823881493333141566128345630604441257614925948212719506406430311940913642791735986853500990842746147928487316656200119474910831692796481120541886163905180997669980384672597196037533779137969047404633376497428800941613631632041830170653738179237158203318428428102386710129305747476720720439651656108375417476358916629243949411202951663141864778679157798396758757118629913998873155225958799601246208098749247036819731746585436634458043570646155897097090295562985673392768399031709088881049314963723427684286869238076286819490570482739428442682791128200980051265912037358843078378859735990057355039065918652241573864180185734629198052114622901917450644830235551045077062887725152555008702052172028678246177648197918277023525492225534271376898374981195179030076992995504252287705585130041350977129186352083899277110807353349638373621279991170607123379167780594261943149998595347853043482833707112028284869227568084762504998183835543948125954734686772939534507495800419950467038854656851499999212766914525641410724496366761309776011465153299244537991575485376555000260019627504065508927828875291501432991429471777690253948074081105708559810624746850787769609814941777603704334638502886024492744932615776204665891795168373935673232815901500934152092846754539594813889410562143898726215688577041432772707804666537852651756306317534884971656319239158685227419518201122926049587165580911361177847243045838839236041501315258342477274826594754445422714926981007386736319502767148170591447548041410402118213264758004371790940283972212772821652964173729019105381181727937585033356523110888264737545312383193539722904726756245365526731912748304245554272324829642170171999227876107330056884783335586610711755957240816628077472721462472396229892600967214496206408019463009751275588733658595173776299147199833653961236744828871025730846654894583069566448462074806632301524233497730157459630056409573145912439025513346882943264729822617621982370038162271831216830948847664749520976752884679659971307263619316294978010623285671276491954070446769157153576973488329110315967548185707899245199286367900377129040610040398947413020161060315377473431726888578054456971308560568635967482432451778096539007423062575722531693692953005351530978867197211272863961905993777139106572757385222727379759981091309167301650780402317157420507457664660451919887157911908763275156077406495513661119974653312003215277912784103275415235470507000736078757382886573088725161472026120142640638039242614000183030355755782659562455657940954357834455694893390070738049774132341411224369617359285268068341057505324388202709274417390083503352518393798215479711818653745508971059534440683068830823571446938364878435181717889031415787462131240078145996218180836393059307778638842595149057718351813077358567857131425134718672931050501090121219526262668554942974632530223468824486532064534991383813109946056912085839133532250047612262177848064805162284838999087725703786482499800174074215794436594237273994037285496957858546680695849575387587549088016093727870425935112161318451093294583960410740957593318813537209590387960622935220311348929599670522661235822882215288425607220519277234918360185440073999195010094051154929574934488418893824386395995840784067317957443120847792471354582862689496618826005038683055749108608085635700152684765518343489467425964512473035830094799147627354185406219021887881343148295973050954102103574959697359696321050644173036297829475556444656546074253670162726885980985817881821269455342272615397838636623076658784491461209411878538397760548904884707534952918554501095663349689004564318810403034596227474084172752731528586924560694787083760326472620627355049987227529353255790818862206329343400129191599016122516464357359593482822920494187787083082110812264590303733147083568968561148781599169912526223770655746164109697551389376232595188299062167513295237667436613636315539258162394077505961786831919010182462770143409804885065061049000429846198317699053792965451952305836628094925171826645120799786182607445553119931046647333408336246853003098455171518519195787546013044741814592799561834864786810701320992659766020197979067782276015104905735362935889246165906558993840965021729057576519702645704559538680994930686070880258409951651447832665175238906765577863672644321232541785751945520249155816561538782897863222412587226553897200053922998147916126519054480503760836189813413953129371772445412732684537278378092720489861275183544770761340770515538001898936125780702814120582897693209168841016724689598523785743332826654528189426896552333981701150791959669137612059501415547845355151093159353481524906536418097980147576159703538032522676714114031924073732338995242657318862036329606590893899530826518102877381948900810500856755266352137835214637619478261002250283109149453936906883065166400229023413943540156677502338551951506724371448076496169877599734882239512102611316902501311660502432260410853919476851252310112551223945186091687493026212314050864763106503392657934383008719518403024542388098292929200991540889185455854825849616160969530929398144834058577059149140262845114538971132527459130381741143299994096560340359906290300732539961350167076856769045183312971168479720495518393084202252503502631662932360115917309359789400817968745344064390885905259206620416997456113589413267501722614003980032732959948378080173566285421396234510041982473332894859195441210698856973083342065668413138128160626783168574135831647438213506256575373621643067982477409474681336694168463571383784593178786236981753974358910028185584769822191857019408298116871587535994500240532291134041125200018825286125183153896538699744387766457695435958758521582801006832145348224979836680273934098202672725750038325957088534871849178037776159617072337434953395042150755272271995367971002313882625137721629852726891089066450140123631407546327527996988667548800739149579187932821585187620421097947586790074225645174625710262082106465355104310344632701911454219653606533448415212700465174309390667155739361134466617705897315950999638575727393372457110289610023904577366899934400751583646892809927510229432465998842523152366003043162067921530729430942602452201191425436845680194802598273509996173157432964527835631287455344756462700028922587744115454801627281742484659262252469266227325784079515624017691039081115661904274793788557819551726549549942258471901078053421683180338017180089123449474720197833218718830735188470105834482386596974797038097658522021747941059779357075211595655222020112379524547068083883423062098911327045694679924205383335199750036266147225935175927051094821531437908687585853842092404702723918060390160809347661220794572528249926882435500028134937913981987883082860584752520517963701811737930482105312452528360588191226256670703060743917679951086893321258253538902450222777222833285955938721206164062069608443135355069829848039961832828037058609334527817019231136494528167217136045538763074778192032257774489904856317918758776853991228746980009776078067484831629295317960654088537861161606379403456595124903056249657927143725599552028322661770567159471737048610778297122793100707975080697570935863196602711284900967023227830854401227086514792647604717366569107992112787590436263202817691388043693664952525495856595241564929324228965342153316270974825967519923757636158517892686605983419664430956186715527955676200642995878464833010111252137319722319103195876342723890881311608372733292131110656424332272260524650014647876597295057871251903312984434784284784607694460647278026526510857350555063351509590109996485701399295515303462464016529860274038158136874499218437049745747863781377245194008572982935867402395609724186945073516433982236031059547823067920296477979527980648423767059069288489568767686154703223757157658937459504335871049176842395698294041673701890294465543667276390622771169668619981961518077035711830575157836006481564108734474420969907862946240669610604622748596755967696700496249472536080356664207017716978476720303506876579217408886272238100928934914321696574591403301364303527020545336151644838109358931438870443655093948437245220665975393591290263815371910936485701051037373938149733015062069847640953735199740486445332663152126921343940342708040473728783376240302001644147899644909664281655682134741061755265767112697615515879376601397524650819417609088560217388438824570768209990187210622113143266109619549263831355795147830920125131604650632016755354813746483479532167265698053761367526604597870727034412846313505611649497483002467247636652972517207695409435092546230819630382853545624450307163807580632730492932635772479186448430718746990752482287948106296170358332239333780186380746320185424953249432723504271948724830245720972644081309864438756565934707218582183355227829981837354961702808812543634685603346065828959562925088102991472442898114451708287475230684339232718025513786562647217420279148223047377834853660011533330057332275138778395083663930287111374200021802625464505009421873472814415204563719737301100958099673948156864936117096778909693586478371788893188400432109108855442372633615806872643822659964828769042588586762691360118683860034789235682454008384997259353115847106311634424021233234547500284285568753113757787488984609812781271418165146702462279690538145418109570166452744816461859245487153029328984943286385839162608313643791598794014902562294097618650693445336331555016187190943938665809107518027999861297870540031466056332066781601855058894122764854863363713324188679304898931546559596978896305993496281060104616211004592803843495876796454832797518622837999538412514008785437811133792552971498014055399477108586896145635078749550935188009621544735993427175223644035317064940448969266086205575869299135715492014629074590310163205466345981220415153684338512208093613972504844586014488605946496402233318768184149347026362435726742684146377767505225915754974777804488305900970556192409282913254812581405625107270276045655592901895438515270961228435580362090041355578442224681289049571230320947679334949588566925321749704158060550410917078733942082919831782523511093557587056287372639769564363450065039839492392906579071629431993738784362321292461372081976962712930999956634077858359616667898905673439435959492708335327936896644847923341216285021540625421043376746615356666534582654876954020112466711227552156631655858425161678710161414646183343682669162831736202591712916138411687274675970862313469034874408763943885660124730548074441176769413667370203688180668342347339030223879459238983525153783672325657233528544954446057976424994332481714104332980579156987749683962251035553580793970040445094174137231224700997462248866502339916111246872444723223401563010084874060228030109138453488065265451587699410729203730445102133489221331527607617869329353217043035028804844292696085133462835914233992941066460402091745388165113184598031732589770273251120442446694049869716953438109669816667228707626324887869698328566617742139248924893297003980994706753108649959565247076642712443459513506982796963073479950444694699772391595031746154390837788675821486959100708677758299108097184618517577189515970988611130628625471133210067478135130444409552829425798172101078674916722615922215105623494567664517946160519571755307290400284879308463156386321193515524218720869891853133254185442339320631650810497519190906408787929167971951633614112691784396093960002536316238770440444762327831234495296384305129372449482522635244189676724938482633431289079632929390256277914531366470379155977142080246659673812393734550978831898831157497924652761046264942435599596514841979513618095519727480937164790954899300880234587750165723905881646486261621167004012673681077777367855661607305342361147594188479631016259331723867953408376777483955134267945700053461864511937839471720214948517053910489798028783931768661106698768357922939952393427814405923770067361543106158233464291224121022425938061470856777952498170802959899613481673596611154959112726579339271613740523073572014268974172296863680737988725819541014439803265664282489985625784097802547566824658212914166508196087058521614846658705147697026387710340957087465234260573605285348167432762787567161616122350649326588088188502270352840021455192741209835158118655959168423114525491312413264067767345582213346802097387401702013103465880397377574911651919908358239048064086150904061164194395824922877746586042366965262558644018066448511888562381802412896436408728738374599235871780498786961105649934965350041853492268579511431227995301312070343414584991699546575641259507503449908394929460667563516405581573240750497240562207334512392767706249892724934416770485317551627326650502063239907662020750405147741818642274577183032439412627667320099976669085702492998299775669510840254142619581213623982403665434870557879707741524351323484328848793971697939427751149574368360340661798275724313693287648469577373313905972242396231484698697340252466108811847283019894422174122336326689798030498747402725999937523895253704491451680012383726268665520938636326516151063690800284282934004107245393502662403822677495846609956794873126355559142557486978688294567364627925362890559291975077527402637986325882153185989790841700772374055955491288812549165684110912666617386564090654191857450222250104605603653787380213765359188240637530210873527591715994519567694867782205944304899903586504123297913272763687499094760200349098490680821190425804554602086765568974380547598892337953037899205846614619072079696599824510992947922107884429566708149029290706195590377187234234453775782733188294699045489868559758738978131363688712601076444500135712844802802720168290807361778784731719554722773647855582792960459786387979263009514130392608351646794830833906240173595203195797961279889330194506461310080859609014657182020760655135011954449954817182566301568259438289508121025806716551577910304996316568214446650945272586577675048447444629009239486253262314523539861628471965080123804718152460874107869815374565419819752469535166867331805235231867349494160145354646117404733980801802340156560748491709600911662152442643697042896392233562076098344017922038071828326547905856097156128271604556068429359371619373502247311708460924773992236981352433792001891278750519093420297035214646263715495950870581352686977738472530619372400229355069419333862283263356151273354233072127690280356733564685050781078279097912605668899426150817805926452297075269270679606460280663336231791051129431343998585574146686000296693542488968923791053110731390586277208346873374619906528456179516752636825002219563451976681765484765536597051073500512035972385283941292450733166193618929358127097823567224916134090896327827950957031971739834310065897363422089993685935551896182987968357846129520659520207229795973064993272043825617547370350782673301934250184881657665584009092704462232196822162818283720990955174740157553772453822362658903376014094598389186701423662194280855443049324521397112399645804768340106921983922136677197954294141696276520763670740827729190666615209548789895495328780389872971022076477760408903077271540871088383907433007294076108989479703813260251826824764160136204137843066015824123156416871983794443233099301607142034896073456080553381682036426964510780205219149706375623661142915784666688128170923832449962904097604024880257234749156455317310704681659333557302271806361540654165714194861831504968740224383848185835241818229408525128813710235181287826251053162270267246227469597299416519126513846524564682097911757485819786248873122135927617303362075571773932995163642951946890289423784494898280435483747208262897754409483710746879354438365218602230421608875185658543150535658403952036852997100160235689077255899442416137157153078750631919256890045184454951247203360212059955686319982477316480170656626031196478127840126926485689114280859474720878297480047251150459540895257251087479089683761089284212095415676405679475427902090296094168833504611892158698748385496308799961809512218816747839297723053106635906839796893109266434717854725932095499375501291518586733595936784481048612148236777436192680740236578912103371434933003307185476301598930730704659772425008145817982160097945373816950495059890075515595227531083535325018180992371069688199660138535713955581549950141448662638583845509592213195972279916937342577328514482012049598658168510701944960442911893476048112822703136609226942014124666764012768664275432360491908086911828756103712105724376280553752902161078794607595876896997234681354094613691694295068864760694422784920350364431487757438479226314525448885290543557493284177961975211043683874593494375426809626261909173088904626289457042334585556663371039576998690670080429397521978362520582199546511934298029652333674966321155982332931281219034921775553725182909454237880340555072523507428963759907176907479812322875656370120794562997917070433493481610550107634358024705141258270188782047775037624778521605845610124257208603710993438121102471874509802547146115505014365832423785338639945287553968253709759393563125420669296934475299982862798729991544960089740996731591334525171400973359373350814560952531841658620571247089444002961107675624878935120862634464573123377403455661946837027177670851657023028560300703293019368780642380660402139294487049218034158133216689083235852440016628167560186682795690191113242808952356313512634174647976366150368342882091903716933345518432933293253566373040843820742398388904020959728105646681869895594451482037190800463047761137505733868103945657849141207112759481058241648553987477120668187381318305425761497992780921229824118639872459786611680364491294591148173744210532548047022695955900396795544950483080506151322641721169397633045577603846651521025731114973321731630757552244679492642310082875988229400329163192531701109940850940407742869233432521060209488401862569633959234587788048473551708891562193480703989862033751513534467393468253321353310503946960250399132946245433204336214271545687922512981578618677423368546424344898392254033698425781503429428990317825341698412877876853905848563331860359580690345604286721145362743155485404887107040939818292795821032282755193605485243297561322214294093763836496061909773013704952650494707142724716034525317102941426580402825246941075961326578981173533501383945138626656606974314887528947612378796195755120092445079101206926924003257457510300156984953417666872748958554888326006356989721297377316360292999119238218574672624101764484908960980961531511341917334481190789522581139016482305895137406879303697962238530557502131347197364200423810695600306394025661454390581826578069332873320385337873404078163996998773419762605069792386139671134688913798642177636033065518226776953017736621381645901710896459350940906904295782444377187825860137889910535080688295094471753489027695380509493385039331475486444168130843590183793447413609927195385731847019496323561666212099662198780896772928986908871665605819915468766549382070474049740626190257087201594606161916538966634406770287671056328200822853430186331857559254924695959610439453598621837410506235791067114144872877796707399065522077930406440572163339592544844559613330091079511464239517342109313097220679153911802605337012670299750282231480698414566952861735300120900703677265398633481192814248692838554270203951805335578558292054859710118185855191587228190157464319569985716909479269383116693294570140145067266721829383077278993820480042754835125785691544196461919011255424051669979320771483517475770875127596688733331704790466109643895625211737419469805827843569760914472577332989302307766770535112158819663708424450740276235480261392221436487909375852143219998239935345104947782318334373033929823362676081393297959193440830683402925412582590557144296499730057105374971906742108539361638510483509266500870070019728345983669821814969662718763243616436297090016745738788350870348261257947188121190459930228951103305678024960525055735150233450547056729473999547430358606862003221956690229263825496930870192345176774418652611555017008122700794356558014195048347069598058198907747907664412900360011391562791744888847665139819758253179256981808100805754483174708580274730613711036741718644091882338212508093484331013787798319477676915919103642986254054175654597428391792085832262442913844843133270422037728482723698221891979206999670838967573883065476426736765011217826067478368636225290985891398426025058436342312344643875961044543493881084476646666878049416669593866596116552968467102680053817250386026167455296204761587271242199999897729945395325030161131001378034373644746557811841943905890639149068854592416903218306771847265040053078040085958758326660066650457948534181787638139280023030247441468092521153716366413896305627050180240990297384692552772874241207041708543263753867905922698606214502500861383876694069534315089381117597276538069011235225699118557130567958300050799107927071821073008795373675904475642235878871214590416784014177134186547218728628454980001405703196752363734123337174774437134470534454552525740542994099430754293035691839447791823927988939530055874734804463923461314754621753754161777799532204314540211148719139942071559973397056483943450873202217123570200523683972810777004215085853124048430893064889017112214162967825611848801069418225788108427491991399109023644142176369711620234697388153216692721360018835925062648288903667058449292457824359224505313538538941407692994372307936887094937611727434013395248232641708473649601975502735477141605101427209355560686985792756063427071428791343336423020491926169685018927693570730357782842835814223538662152178914685103456689854885578759845013930144168684269840802380078612712719268847871715850279541072343668737526333583266324716450519908517914395085390436958680565384264190413596515025537962184805676182668990797974434076111660848394801465136550420808229533326620760837402977827063785146179484416207160145488089174212510106517553123492061676317724178404467937613899251869642154536238656278919023041794133665873630435309158063323252505476045569628622785212406872795329531588604969889311564920689633532237921055853123125221495587064512532458856842455367960048460153263823844580724806841306407684586167053531112150323124224408202894621261519535598141282902436219533697334203516725294716529439959871725764595538100090215596303710821569903924316395460525789778348499369543108822319430393244295542125286416031044783317374929131424540725685589601330490016052080537373175420414533886101482431165415528075349567075986334344027934410333735836747087393757253556417955960097899333833078793541606590822826056439896028572976104444147579238451884947331787046407415154921537304602473177253393094663359796059989946473987517179694945832128360063359554895587856545152680614837730548727177282485853615404664282176013854230198770669529097802892356715334874547710914126828301154635136958260188447869876138800225858615340778090631989016081245970692044391003833058935299438448829476723348033579971896158783190536230562569655891117064789792482678749615697312472407194140843598681234161560109831335165792501306693427989930476733058103305649822520049737561066877754164224009658579072819097204729470862843328476772846234181506031715450372701978480436334998769530283872346830123015584563531454679025616224369886165089655287369690217727449853888216445025600193994842822131931845666219441538836064953185551392277365352965526577646632773391145273412211161569470264542001205609037164534578325904651689401889019971675879071891188121532141683208264675497603906957005730254420361172468637906566589018896232431842485781026587634343384019138049769155888857585629476062331613338336256512824603563617633971647666994384212554869162371171772885416110567750094573841850672422869605236448155998205363298686722404044546565348134411799607192192098069886215066006608717121333703748169076191613164405069088534446202641728013782089297820019479320933907365513972540916997654287658415784262469525151874520627667423140466427983639707668015027749587781782487816555787991049312620690226387956270549415159959154662779711117497275504545564848980476664427868425849566383792778061740412041477561235120466335704901198289192410254766091862764337260521156145302370774192903769116776469159332459560864425519591129832927419219841794959900006824500298226582117921244976042611427142309339728080815930133199051967188561501397757041180737616147968369583761983573944801804472081839573273901225216561790915134113881991456541834708319570586515581219190259595307202768065543665261104076770564759151716635318654492040310001646760345049637039628705604679314138628364495774633601858259948702900651746252356978534081190607977310160522824427490613648457934701605594430659593952000528852713428782149375182631117180908479180045642345638607104297792119255740624586624626828250149452491827452324850170399153225798375846383695607982463873344211260684696930866005000305275873200267928968748148843644301369029999955064295069316483925024791880882895717223558142408964691574730102929058888610356701947545252319293069281030087023387390443437801086882495242561543511633411552178877108912191999039775898710425672285886286903331779157332465853071258789571196359579494874199169324168000302483188481036725838861212826018977069768054953122238920276867811209903097239907660822637783555626561904351289567882650362279819250514637215093928651021955549452473422098778078617569187665484349874030006865427158407896676021757904409319406275219238636270591617680684065157788569957704648451658048704757582541232478344405887998991675835605399860199611558362999114847972098236648132465217489690521439737229210796692302593065708431839114857015316126012031428184520979985737750868897733868370647032669822884633743244421323703997941578327499101710571639216442951053978501247152996453852377062221837041487716932408211695760132095558974528988870423682739219679123450766528014051732739067518024861181116195698959179159738111463593951821049371627145287578085883654824639639548484388056125494240191166881245610742040480187203627062351559833390150292437468642914856494253446835825707517329721578329441831026092539252653333153294101895623255234115143065531204414610709380191746227060492228777459895857878082855138544785632277357382156633978574198537640504124830398273240138651473024609297208038715149462863675299861434611114183906948140080952185775501647060953715728172025128305387207480270731070598732639571038212147897878262239676640523899518917217265243323621068912603811018564423586347391728842332553153623405034477329805221340510415562753874372950198990516088518199831279304132209095735411570440103922064979224286574068031829168727811053223469377251515830416999665104945618249077129945714344287540698609762156013413772665216662149641972401188283728942732798655923731213548160647860163641668804330376274028941698638988443173096962178039891860469023377272490852323891897423857753284831220827272306727095992048473459482073780956292179997913028905614693449687452933114361969535590127070550557400085169634803559185854028715896802695704234333897802524508610362890583605062053785522050676533746809675044400268295797549527090361077469348331832992229902011795056464816424009346564989834706351741293542542751438033382396097843688425300451220193823002683247503828120194298415441707749442866407075097367473726513491288239916037315356864906628124790099880820626493690660069346349169329126058135585251585227804250085175203249322064306585724621190073805168588243878348510834811488276736906492415794541290246395257998602102028320993914362288071678944886766781506035822400381378611732162072737503785957714740834391860065431886147796411090504160271922627158115566871717165860934350871005049108734613696722294667953999498974137561360338581525696888781665315173971232446623106058113338998816064963549984849888339225608911087172724543134404388708891712224148380948847745029509931276232056611086992560126907713540294375671293331102422719692627260144677618562643082787277412500145526862112045142715258084749301591475553670668286483142862093814821783603608418498161118766760440904566307052704580507210825940076533228392413131690035445013588194849155755843100653343095940002609880942484893061992237902546282470543188009665067795146445842867119196741687570299228916353217978170511609357515118278038056452710831561716549904631312991164341963531762674963818061688711501747860356888994891101133493817580671458873247401307782631268932276210449970170828445016300901065303919951523773334888372028647365722884390594889601209247449195266718420625021621856905009735486793127859221564172507224012609745779651637215643255848956454517127920573822670894081119762757514089763656584922961501884782435895510857310715487605908617829489114296538348197215628474018138011112422203263242493983605307615381806048021819684566219056050869276792942557416947837026750375069115243155077132824551865037345725044895155097358693255511999398970034980825356311985494593098574100231332767709693639520166535503169866898075585302424556581230037866390412248316817723900799291844486545442964624207226137762323867929700543748323062288972316163396318061104830974017676495842695013088165613850251527219299324128557750948475727747921449081174595532688118172661178403398311758795810437894780338529662006790214332856160533968959410475437736555682522304476339303559819066955923970913971488872124243632300241325954736693099414400134274426497808459765883758596807981966363826847439429086298737710998040471218979086269943810368464637522991488799867927919776097650415201991615702236725398230318740051757862394256627913086917328175305790033777072033281742790469473058860089348733243549776948562612183306936938626526111842418524677042137737716265484742316002526605827694977256610683535693219650661026139337789396334795075095119742990511789660510762933685687885611671435830408383880390677288709525991793147570487852892356253699607042480018215718094982176520810994255170303788102224074979882335550841854345987732426358429452528664208017292315379440286648340697638178503789295219246130219480900144518349145090994710384811619192840848029059360774970082435433029144216961776598386177114883972719585799950920436701639385483377095841470389539139631575384897068106257947084151786803852969634149887607329357072268053997229372892594461845593364607130073911911403441561161733118435009975908935670187822237319751623733551911546284356022541772182594045598735371750382188833821286902798000359868482921302480084895519813597648266921760185180526204073474361135328510797658339843646363022046214494567854922884954416117929727958914458277680691801387367548479443781627372922244442616784437823258298243838325240340855045514329271323764890141761964412967679342826468189011628634203115740148963747067864814929565616652855366549901159838460914909347249952972458968427768885367207504007858091098799339861337680445762072617127930066100392843102142012547327262877215418986647939309671400594476667491724643179083107817143666748637668305928200988156465232676853248622554761380635287687951001106894703210361349198196082138765123486114468315286096893717734835822238024374994038395364588166365391622090478208154190739906212349767783557941017330967302733385016437506264742870467947076228057478178514002860939832726639919960136212957294110730982101971543737424042125649732903315137490960271406669489347209118408693944121063179675768283696573844363164941319687809070494714102553616501474933155213748087341050999935198333034499741021794795742184329592295996521372099589619616864710782231569322986265322653198732626417615976064457967695015836885347531129698560108339972561085948511506686402775155419325682403690210363509504525693387616999742234283735445931799811330055447918189643998533493602801297606588025321682612867471430471461853191087869626287768220901361469659142556553347390042873876271315086832999738433818470843241162581256285545388982105238105115116299707619338898793163606085646572458289974957562988370607613052602093975112118958357178239175298562287335337083337111302781246729592660005006096480805559275090406911090062458437651983342306627667619983421108737547080436665678092089105174565003063070340837390579144494731504009049775987309807452884185848873394239945188297231307839244480776286513594001773705014556780898906880663937800306170615820657870894627301082172523587742409650823516648807269785392655897865978503935167755587396601959367855800341143726831662432736969856208460020614786337920491318190727201239704762303926543916601130992992639506955985732863012999081522311531291010547215377492932643445433822533692286522598621878150527555629456339750537040151395745093105667235552548572644671736304190276582476632756486837050072144895038899101058142866719080664602435231119425901137987468825507811218665948060191368714052035203361445475067311210436612086238389634141673006646006331455858704280801537099950181202616403098488306418784774904805627129592315417500267444185565036046711884627236483908146837078860945154100813464387665921554175981702724839733638371415467181194359699208808769816423384987130623675995620890362711079465274046952390667000902471877838770071635257593168841443970414085896565289824826887527775346810495359094577744497173863779043245901320556345566581641503044029491574992944034728832707220022453708446663898124877853296369838279824579961728876119911251715833197098595197720616348718796964505619655137503007580816666671027377393685807645221676536178107921121191301063579107948075260680096642739895084186333464538619108280798060843100378801600938952591447780312866656291269026424026695534179712574147994848049479096537078418363980023927249926815421613195610344559852886192336780063323349564124575190122145003227841342685703359333949931632473471524862229358560805170957091703315500089790762797927360659018620894720469922074144562769017965006099632631317023921290232983736445542163320265819579895524731810726519478939119458129903015150833722487841430021718276348447067343267093862920588950376434708106317571279508112949000303233618275093555431774468803204130199232091611751411441053315552413668083199604123602044390123379479073076542315948096433973680043778461852533081989618914365858447016902117044033550996627381254755613037202044932509095668027095504231934105752959764805598911648425335962885278122446775895448106646416813390759577945327218696378276841303001254422768794894144701884113017955107060507902436392991425454631100430561765989995090505630959144378315915986792494783563636102860830628287917209039153772635506834509399788487264412600908769808932327020986972450710244421845939030534641227062135335098144014736019597372468306169799002821096446562357894513739154968001473857461954460451780621389152938404599899738884933978634239494520908114150171186146315972544606490698178985855693371295604758345411732243919801517238524291525704130046060386249179576477832684324007131762727882780715967706103562170512060267542051640899406831477525544338183478171445492886079244297335658508027188437459982990114512244476429543323847099407577896350510353182914601470059036431529256931017009953608978061702682154899017383002412798215821093858195518844938199147284846126482110408705994438631556569079610486676611954433158179687310180096181969058381647816142770744412981379995054716145014212055130752070868874728314441451277363305029027470606575136853972042831048946526704403274972090428947959352492337101422152175951821121801283805159491047861504567679754168735769531286840123646091404568760209205208674975634457172960382731071998479710669522011260607094820188729502306430846134302648636071119635535624392050401448927259934760469247916135934630778251241614943813555219046112450104668813521145330732307320230674276639742578438902431565930997245724089991596667912308670815894025856780362716984778588573820330478138780502079029297427606684653777475912717253526259654806441640055809543448081056275051629681445988365057550234570642713036474697028340699282134334416643301848136092229629764115189236779063409992507215810394687642077517051643867184597413532566186839967280446548564833818142502853645658842814329937935549787476990135284136361097053022873683232839515529282488835224434623178926712564903592251189576324832485000024503341393607901623036493901743523810658090347515332894831380016640210133031280802097389729084924653818968950043767316191632700069330463647566565910767863812491186373448437989956058471295568391577393899579793002938563009672556011211064887119575653416843296342560785076202924613354253516715761589049285639105265568427459852719998311115761367589410348898283487927600726155865004051529800164905090333939298469158376143931443859374144977645650048324458849602270789345240275763454640216405601808355573767950297075575166279696337003527492112687353401962453197231840867963466647532327239398172145483588436232288634935559461285380147078741581982541680109921126890146605200023876223815507678510604089705053001624376790386700315152096819280355383634432895069819915511707922842099860683997883041584849383438853302110304077071270379982831222959323892572441919510301610600402940845032432385802948293976897534369290106585293479795645752847215973504795582868156014708294569716889628163786298664798023088608164682199702193718505561180972086906197136495032879488695739436546336788348952206937356177419453004892149950606116589103499585745295493760239977242536482866777520768267228970791145386678581757533152375574969476470625844883386426782853106270879011747431871049126162493861947131712095857111136661566570037328824896736087478943423264921083268285038315879520136104151689235443917185063920224220042913447767245718964568480945556277103245087073317963052676423118654738376610751222335603827836698857109554889486772266792799721115748128111832562585397535002304833315278376738646255834783061352279442430016141528582947104095945462265163678374494189244543283001721305785000078720436653611905249447546388605092857987056204991065867159362862379495107497368107031642471245056311669045998402548472143131644747448148728778984704350912499435174904727501405697667221711438052945241843112231003839435321439527782252281782926839151450122405997387972942939643352652555622185770650497698328149377896869915405970471010673561899680107885308487866924494864456763071538551658603495084034764806595547084972059938469257575126074017220228007056505712551461184849967950070152179592227379677350380343805242423804164317943801617154893986910782273532610992922079947455665679666873501644060462709664376849108452899628065044026885114330746466729312984595550005636028337938097675627721511047029645573964021189416771568229593368991290455537811911954481038526040064715657664255746417560736104375023830596441497376739622701887695738897246192745213692108684604868425644696102366364344089528370023068401541144238692313778242106759515932967525952949896374389870483040461357378210507558565834770744015133991264988594193416321618595517356993913199762600842073788024403305874002246255379126561881469705746723104166210711440246360442276750223810676247722718865703471461532055491020164119849891683098058018651328228802385297007067508664397229406771808136881510779795001956006351483027197673993473979045069817836956888439700324936235636972943608395057536320080280243010314769056045700351831230400882299694317003973352333954176646703229245013759510324825365222410859840979061542031699017020649720239877696022638902185750531536184407171472373066929073143560061100958434472064334424803458011867951188688807621516709262175767335548413358421737009829379507939689332876160025115351391024603672926635382843193428647002034368854016641809434134034183012473199133749766245150067871008458980647162007205876157888237209437528721633396477015499872527704365589839381493871140630269483187836663298345026739762193792032595076571817535147553175783240587181721590952751257995934084144523986908804819445597775837865007105970060286413072483201551918569340757346601145051858687765821030934588351373368092881417296289139025076399019372653369737844073115083859528305358585212947874095947082884221689349366372196765761224142797772501313183396110417953452192667703299945761234265137150934549012743219861228414621673459793603288317462262814382842096567042350016913260391871553155974964391568698074943495269062200929756888606412764292442951294474195514468843657059619438152701450243477246687894624680703783420242624464080340618742953650234246846847085630574468050826704333495093661956049771776822612440027639353004621672102314027957228327608431786312607165590109752071766768137522951476448889623079855790478932030009765154519359661347060455367012771860201233517802806322343018880006885636253916673061450538663591092776467989397833252932891838742212233231445103832550891342445378041499934117246627727896161862840543569517651538128342398044303300780953561494292358744123337282821315860846362534778490311041390230802182950307556765796932439934663927597035896176926187505848700964225800602953928445221987755435496927647102833441008586574750319879288138778314871650553138306182918160585733403250385299187351849781681144405182559052834135188886161663261672973641106904123859005263525248428133908222327506597889015869470774333850240197387504255899948156325292736402720832598248004692487550566314585809470442238349609213267794808623820306672330535453071879477424774268315151865249306833601053979634994223937235069518928482275436631847369693060594092998012681120482968243720614741828379300304788217631903955958595451366870273603531812422002010230223081421930358482811690869827478275911323276785630510078630344433114813296837612485659642209300807552219535900665287028979822393721743076239955689668734639590506072298460375621791650933399903536903442418739946084246590323270666667838113005434422282741364487056540488190107062884210465527740818262363512855288950376564880931571327012657529154073126441952471423458181949188058130364070589379188267886078413286087729339391000282829558307202798089470648965831575851406775143227364986425004892167547584052582334587679983922230313332300457010202942895617325116302960967185347823931159513866837363014274250063745571705316999415636332080010903708948781845540258471724099848433007778348323104813545928423080934407987054274395278259595284241944994973962303114686993386207622591449073042387652160100119802871075962611231960986567657110569126723017771212696262666335513966143235198006240411685187622484464490320067635184201900186851756084167929812226959801524356020983304588484124352138570167086545664445105143333270674689087008239007144085832003430540282164659381664260428027625916241070237440170282352202889320236213933546723786742234525478923586310044219558159761691477148535156272033884303334211839283105887148532724259307639835205051707240188795670191874303862300956785134623668210118822582925986222155050933250802728394025094225319402334334174705666304337107496911513957318121315041708364356742127245652273994504040516922772303004690479390203118120773141680804814166296211204239220079556897615869156359823353182490587018004058565596234482267464248376247636842676562264520664404995888481398015016401818107782845257803330299570682369339413245117151991565997317647992890334785544383941950165414517308445962231183181270364326595209913147965435557766865526528037034807997391325025858192872094369993865736019339576442832024210539025593384272962275993582587105812886799006655353500385017052747667195095094976985375830814525036635669004989030843451924924130915236117091011135968756431845107823910320886940789602504216813795286530114485393168253824325953307370705295189343932300129739140616376767317654484590577715051268056965124139742020358115740071565515215220997109278518188462226356042157301467883949422964793432585006329859087069289125591246902557997563254216520784478177614495730083637898351968222941647378964372785261549272240022959313858192067663055861099497728025431343463853451627877348545474577797415793823859929277233626696759044396554572667698944568969181058762075572269337244834999917993063323644123657761833454771421616518894098923397602828816945623590574552802110205663477675988042258742368985826046099576327761051300516674857437412053108036940663735570187418504599315799771065396585672659424556446105548362399718405775325110269765668960398747608301826666730111759575443731515189291446307205251346031878120073846358866108187905284913019502278048027633321031682898144839379718560161849328998698233247436556982983408191449666440615949976506274692306296766159702571285518380292847079097959046363019101773136277567720759118964645027049148312484992395110455432098274042426404600622717209533271618945643221546249324996121580213501637546114754303481362230619638092917557772164072121674522936107685756421199540514783044198610061151315828279084915333227925110668062511728287981170669365223586143681454356764887144445830929451429760583159689960268732893344019248730939194701879964863076352565021532497785244745894696480910922872609479016400918806786592561277609630505583635025983695743490662216978334837374384159260501646260844493427069729194938805317577486010647296757669482331148187137982809234915921488121087423698577837801699154034143420471128300463636748403714184997834315102578985164286733191897279190197932797642510246616553183568765382480357264999462102371897716293370088906620331998942808618941527196224238643872329950236723750782571943046934699865236109699327595670780703671467494879849448162913835451725832644643052215875836562141013191633071454334454244481506355934069219674138475072861668766723797414311779692779131651305707239833287651371021567237589850335614810694520775725275961548501522563617863407074953024127493136626544978046998957467712008411495499110191987127060645364109512307213899973108262581643494472945227104238949959570079395691849076128328143514592515060428564072803328264085461534972896564686646829352246786661466699213105338926732991884520756124904712312730122564499110595969403866584480547238990447116529910273106847332866798222741645176911005318348178571960017951758847704689054172862324902636495880668535386040322279438664935504984826763351391269299337160287705854797446819924663256614564287086276063934780607980453809326936543451916393080913730629246190785678607390918734475482806429129370460606801498112394167729690368037421729501468746351305204081504673889362952149734102064548402839114217491053966829067854024530224041672471675083139069107196743944194245502623931828876590598356412952072316096861842714763789419460089196378833668726358512262104701744088763856911582320233298237586274453835584917616578652770922638338340292884063333523427980002834381255026800598846545641565094566369605224811850506794543332925782490300698540346238326900956287660662063428405741904640768761623482198956086156560242572957153631119417354190200065678513918206622760550683308018749482906586739169925172541109395299565717813611561964092289519494466037651786104334807106981683061413473823086230526124305812491752189603980432113638791519578211239687226506086865614282506347482750709342953266816239077278118348059887021916368230406306417303088274261185896699307118173471654576820963056923550816187676374025424344523216174983568638063924420678185423450355599317858236127186537072207548845185643227027742571088162304396062044503454279694068847822021286029010940682985637200015342758996672368143155619391081299037585387893738855533352736296795545910005011881850450173755614424677664307058964456375580103322956243319214388720498645288266074562566313721900802297637828032877516880853951445241107075133967843862084565224800574208244223786468042777016696715633548918126728569698911267249350952250346272132805487178879285159153232521544369202481429396301034607610383220899228961383559315001756170546561532759539899985369267533710433473058623214211468607588774327636450736151036149892518955308118148389861567108472136896565705342861370838287551481643389108384471052010088460211118381128545488342804608956944902950711193305738369602767742793043721560681277369294659928628431308318788614167223213591977727401332007431858552597997471455372784243220025597380815634733917885626031668312372533755290728422048528099655630152839988336806472045007950007407950635331524493298309424309079441012442051816685431751210135874310485903708161075881976534437352978076512078734128888155040795330010728405888159137420435671545118235501166016820633988697352694751470935053557727748449137634878100014140340706536113242775158735370429567917633716114643413325603038564565867804088607422581972311435795893631774732321795618070877352744896770472085608234372852435341873525001673831618895567901358051801564044204623919407249213783757513420607563261801473685595288548305913584683148667105674256158616159027196834917300368402852698628189126157643380973832926432746787222759970979197927530846290505546362582801585830645519013743166006690397690988503439953674311004032459857999988419005722313763769155104415636845198205878636595835343455194698247455857579665139184257327656114461255255545414876657036772985758061775175240337070189962419285757413647460955831350303215415868517266477964089366725557005453682471324329318100023698088169628269194708606215685099775847130959817633172056604825503073067287688186658029198132132932328848803253411566349603568982070548561958151548295765231305777712139143040603568098392054777903843886481403812296110762068417057370898439628210079803110933951485037335428726930446214326253565531986493639682697483532587888000627687297797043975731627572363508000365300338964695148233393418283913005660897562346600070608512071422706461612198368400260583526281715497324290377783512432201116811371773110462733858211501374912302228248634510693810000260057658995478203904530604035975100483785165461606558171065924878914664862956825035414321648222315745955539264885598745459359504043031948814569900741971513639638710377254513067319125708965013078878776374984266193926194380621859922590160252149996883819941225368162086243285543448839343097965506298053843778369167090021347441310542673120036139194509908203905461579568688671900420627078883663463626421644144326304374418669956444094810025590876988979668330113780048088409574546166690478120237798849449214864312269112919459510908943597954749288074512160263706022440659746253036581272646742773633122943906393886743496238977002016011653598152158325403965160659314355785898984601554324825504783104169361295717051045503006256481121530526592194390712541728783720280997056063764371608250017451423558625237827784477565601873076254381286137126769124204827589048416031793038400749254282121406115671996357726570354240428287239043871971533904844870734853241520740740722575985554501135360733340645188423408810516111345959346304062714396692202326119632821440970561931733673898950942371608730328442624350466631085197040850300305260805012741197266106319871587755220568061176504752310199294361797783754223774044720867185092273312285766913474759487232154937649509492319276137119862263752614804117054994420810514176522281044863617814348127397081300130976938863322587344399307166755537410057160892431000930175746695754966273841275478540730970406532801735428138750729826505058818315378815259412337615324400083933668229012201890513471639451886322710922335908283372894827253430511456789416764404068799339326062609036426982430227230820026517317955927934491474752679883711450016670563330037818561366184585475714090384334477371951660034952802126684545249212532941958115625522299037501016767323937636767023596006399225228450864090508218533457330665827365472546205757373490410814226427781057177317757918078395847113330490245457261143733680259884245586757835005195779593687121670216921482863371252947646398586070640717878948332182348821588415583818169855375743253174109837448177930046958220616274080528331487045294336467700920911960464159586006339003447048567006155075625183700621000983580229413365773740765372994308519666997799069581641515951852601039494756500025390818867405406803392068012757580261608545175426747354330080638326634052601203800797743194832308352202413129586367508844768007864847278411932104981446277305005897843523395538769102783927613916605442740276127044813668304296239113106902823854523981704787880124776137433685174157165273506867340748843692299675136836041904875690292975127795042771754652077367179828928089569118762936078492843004021897624745570489532922966730929362255850130335472900469871613459160725506521527422281572084066973484154934602726579554921123154963833028481482311762031213115476995908149461818345791754751167863755911036046274885522808702469504477834074093555601828624634137882304667875153929257779764287932591725513276474744744969863497069453231277116213238423942268195403502282442438998694276234738584868788737003081892013208904495591571592757811218241676813464361495608145423400855967074792148881524006990007432059415639971350655748747357266120848048079625192130290942939754941964446805117150282443039517838180068766109255784700847735396330815309070790258850283581810270910427429907813714278916785864603260278377576004320467874892263076307963810777651530613670045828887658743036403656653458500503347309571648904212680968439314591765050795840835664837530171292321038166150504030353913453320171597312760361131182591116328475124159205000301404122433587332157779376053568787380345242401263132787072540716049732033666693405256044897240210772099751813486063657463670928051767341993312650397947769231246372432965111930866935771925831633501369153692242838090261603641662378749524318815412722885990672747891689713896976544969153943840920830462682383746712223870501005825693894500594059842740225527903752707983420994810133608257607372741213075286064110921517841272086641785623875824659313552220279571222614275988181469910387175348960443441088727310482840091570726077244835545459819605425892211731074977765117027009545989294776092626715681511289649285471793510195547147107316731592002156702005931364110756712999745529657605727302447310098308222358021107276451590113137086568068741528557090637414790283245900125718553325865206411600999975842866936781933174677181869077562683507603222516209604601626843475260891360153930734554977468934584639649316746585707109362734307090649086901283441559095604768049787740417337172984052406987054620535027426806333106959910757358135796100526822910155733299434451622878357143225589732164310503525315468935032554177534993792154012729853529982767677251252081628155597828257519659572933116397960971827460654640589821004111993963990037753667327668831969526369703394511972225119290038371571353190758151387189566170745184069014504059771453651512135464150162881187196010459109801500791815432683885458071292672505682972135375530559229209766407301978311472036928036525081080230493947509909835678324290614019290619421466580585498688888607530681588446307943643233037282712371702333255180317701803040679292312210624465687000238511069051324846621506419309687044774966811750521005149244843477779015892526601770866888016869320008723578066869619173122715476484032004709399887958242598230066226195178232609496459065154357826629805162812938057739086161148738912026872862598504584083256115864891258131398810817898006312877762518611001153970481989514896078342633553108218985591149222667872798475073702572193799829327776055624680976427241477922033880014997099385087024595236353709509975491164544062647030779703333466697666024693626044989839038353831097812714152166990167422428772245361813391356888389227025062740958006547434306096758455203635533815850888319565364190008564793621491108024187279603975859699528978457485621471747797529580654216520338909930356479551733400121508463519288343103539660164877904702974331022350046247111487759856902006069041640577638475862657019858951602959493166528890487641215051601684183776866378404225051018615277587851729868832873530888203847089959189453410424230892186498428367216560696904811649077658543225725071356058939671542149552820173078850929024240291779586135824957016915965729419453212472731077532548298341180986265442406343792467357154752022750129785576008161429372638179205110898549026393202454517383592589347291164257578968826034535719867305073396238258095430972842216877815333061128057458420906288276079671880001816097702494230619134830604030110861079694877081147632957470576369640929479413246152121360617097599941593538681227505379326956582530253759628496790730831844949652922804927735332624613509558254155970320027343009012429686988931703423333095188349950440485103399925565516944149267055716875195953052279205111894698404335134261002228261283489209034066098615557034788501885153874513481310919939741939229329397486109128773429713607185773093159812913351845401144518196724203012692346060012526884848847135559433379119150300671865458781231869605287382047410373041381820481822251814940267818473145390083423928708727406233878504925788252189780911092044889705816881925817409502682795772022038988348999375562621974318144537752028647561020199649711719640554900263884205289478310894079523142192470184492906322909948856517728392837077525219946277088254179205675612194904092140655375379587194098859488018255066967677640564370044947879596681520496888234667545535121304524486557905257241949701037549429561820106922162413967031998943073296353703345826014724949785994030372719974398961936889294267273549695138321037204421874321650601036420809914354686950241355598293105095495343677824670790892664029547910297392428873942886475249973560498495330495630874542174166442511376814063745277178809209401885038005064732719298567075211551373091441837964885579358396539580707933727776458072948343452328260388367515466438651552602725371573626606787924470534837662105859443607316722403044915612541655231935815729358425021111112404788954459397598424700561541186892663099224028176494722916429050255626985402312527092432686313179312744194850582687449289575982915204451415293674349752498284646456205517930233973022308442837348302552803685436649419105707617261985153887397439426333462838777919590527354014313047236291456581796747167813041363925119389827631312089863246776685737762090293932369706885683207084443568134453543027314339104543547894115736989956313372608908735448540062255142863872133393528368743397067830360045338270603672823702252943451232769181573372473200849955066435710682268895962937038952531873381868077290046968877469850274272153690281119774323147087562731853872213800705080823105891984120345018643468178176315863126867665823093349761791075458254951018621029414995980101211069599330482024511912029055619233837408804330231023487551860443793313035863200245623877120130333018909763698975915665125953113539632159114963068684302450158978952542195395894023044213868361588495823683033575033479510744259020758214281710148774041684516955846473434481887873133035419883143257067480153882510963464935128370622829793065092379348977274334029460709947621335178792973696218089912789857882690772078495803657842891244533060728499273096213242877068037605261720426265738494121511098929398237887640731705836403918099191852928510501170127986629154096028112224585445166213737163373234649757732720679120272705715147030594817591092923105305732860158267179320351872898845943448449904458464409457383963823259687482830189603350861069520749323925689298248675215979441517031961526606350274171793534187050541237077331197987857691052013134794852999284417242743892072323598334216606989988785711264030440285973872951132697784443568560621684168202419128370115170671188089763168612538388662342254692190786152966980351623522528887558383582333234313784449977052353537690714933203120220853667379115243879112409900927637320836188365786308714547169812626506466852259660816417509996767052381594840901718213007925394428515554140461226984812607201068088244872761789814804481690036387602971432846614971981334965036958308479034498376450211008785042360163287678711886702920194531448647242025698370547866701627049005965569356337512425792797883467275197656054771340823766275983950994551968349585440860201571111703229670730267572693008690147141272197855172465953016777931630166468204449628230386609089139775170460480001023606640170234654118225029903229022160370971212490190907097227734423461450556712370106579762616711342904364691664532343425080402350379605766029460803766708346377907575829496856692460896392738648283634563714342515523853410032108262621032562506408401906442731036432247711298373071090132968333168612914690979155688251103880395913292347529115934892016128584391054223158388521827899426787999303666745466899715078054877348859674252923701590811182119557026450262337320697505864693379646806057666077868326197635160217259418120882669924778599078993387609466587606272594025254007110449213930363870102803080009573977412135201397534553926090209485026144569619996768592067755084414765984236148077905746269833757380949156721858366188490318958072242993621853799611407256767836484214006241300997660937651492075193578971202384249104241800441667437600799227036482990987160502773207648790074659643656233205463995000377935140417024111999853739905511196266516357404127050733376851809373718083754453351314900060835593313503052350017365793528296824193117674368050398186857851661083611898921039606508170727665322012793627212096604637852722607326856271538691510145785014445618682102103022993944422720984319749589593769327195998705618070697673231414255614504528392701861488463612750458540274022730924370380414034254079803886454248329821257458194537080807973317786183368248841726715746052691869513795883930984689093987217806652326731552477466992836114270589613662500803399987679603132629911405412948033888404660189212147403092229917574637237949022699357197849142953133129874247616585717544992705373465918091619240434944389971468201595197564656369329706832287918843867653847628564894318259787957331669748018398470315810347279839769359165090653261730746357430132077563572659928652793509278425497244224059551142477965944110313485482266561653209566318861421379964979658639890386804231854209662126310833780894606823083970868448259391326964491109297658976549911024799818461715721533961777527874760306097754756344818273644312123728776124533011973956290380253614506070474384159406157081789823194191844099532322946486188664741942020732434877878918109032853681605575284295253188355487197567943053582529409460143852433442188528436136868944819919625865978627218065055466044997766868955930919987830357475183259232680183078247074049823528058371726139592825670218243541443094173712915591765216000828200353424637178515717585731563703840798680293468628093280386152862003118367168626203563962540931268413199273765689062348212143502836033180989309142970134732669520577797853344451659005365334469158378735922089994928068862636796856342051641636819846491843624434328176913116030533010406526514073874855331449245351688767108121073161791401511531652336830627492256266153850629820815392718219028427941036891582202133317533702703486840015402940584699396598154402849405517192295988113422988240272574781848485381107213133999123260296413495586561300797932319874243881533554639336371134776303963418479050460080589507733558571577671988030577402421901625074729964194198133069161397228297266312456759313316016218585279222196055091551719984578443104904953592208093661564707895010288331542435477159178724497571238974193693014146136273235177544406580983807186446668449049023489875161867600190168257099412553004663676362729482069532199643397395709043334955937187988962447447820324667280301978423584053408083622403293388883301455830362707446239132460408283359585312912877369910258426404692990984132720633990315132253899412819264625478920356594439829569194620564205540591210474250498011561947215257260008572942370397703698148690016924286971092800649970141404015653275799317636526265073239267583450815481353490761249625262913524960113889368299696039857578500686169572395817983047558319407606207298880592225917988770507102735455601649048059545386605137961651737060078519246789136734793853715217919851656274201640984090032436515633926833358123958113325558455936329147496593112228057173964102909973111009934084281110644209061767811577034785353666011785979985114684603967304672818804763143065179157320847267827110550719663131133698726287826690359229707887265579856086659117020125349629854715428710063387347723131794000288272926379054071952781990535223892947003110909461554608086708973402542864794026200858523542348674269329609907104531696277239897338205387060217529547857891780864935015166933926289090614403446493855714444293847728675144169844004355017531554219899377578234657845467244181504307849752877392044111665150481089658620008867256129862217296440825316441043421214515289425718881513040084180870748271740313935339200869839128793446838733347957584900706078157668251739883215943953126799914387161481667371341928214640548228712340247055507770017638637257358575601795976287592180826592877486124326003775216964792319359972030635203312875714176752642541552316918403018138789739737298261129780772200627211247537739286231673380812787398332922233691586572575337152493802309312593282723793585009526733218261396546765648831288427973267117078720965969632501447994205601726053391833453467426204106257700786682042463795511077152984359377863300265841294820891834470413807079756307908920056863345859746549835907949222864226647508174504359710047497649288364243543357629055330264080286240287530678569647206734015320209676658858870313603806910404287371975867442575671063185266560371241507201641459823940148550421696578237700426902392160343849400015055607792483392587019388865673047243127425214335520586715204976804652023006252645795137042743962097112541236787648046665246186334110294058347482113143193054533718963485772275658407851831289872564207842709325840266268525943766455455913673465140886651687643021071353143951353633335406408732785489518912093297168378292520503196593878867348662499707626212338648084814052899246066194120110155231932263863952952330120819199919547306831064790164692940577025180137701511805280876542642711279681603736043787402332099536906979215327944403904109360110951586069776869075798833383981645718556405546075308659971463557018419583635149622949020178036752692884917050931952694470134011419670334393525984119241918825079126232498243541020621379910688355205922849052936745759116797631170562110434961896786418398877617323627236874429436149151234025248437350276178379029146590464981076533327110295833132731022996435681754950885216018858673077242740648383264147025570257643540122376558886826922399361497063962849021376518810528403701673227136363611937182477614718888781229909829368975422512099808567676679722589155975990783044256241903534277304512489705741855787044807929243362057246880021291520892593061282958511833326966955765567764839064928331808093370539011043027621573088699316204790434002868722737604733992270850372481559683690035408438957949179676923217595664978143596062073496068840794329450793710478254391105380113195993183982545109051150521583024986806128324948934084661228931671553098956615464492730445224931651283690156638499774318313615192008652101926586890991595793570495324784096114720580214195749878727323056623277768216915376606628317655545236670995976719891742455726831362018440322927541692734193622611718388150400610012069431521644529430379992891782838180826336580327670338629154582500619913770742538450431224561762600423092989087076809129005999399531985732295264990020235939717936970028403071476425032924460382621898325000071195957039090438974710111144234744029955035492372516043912922569306375109300811399450275225071776244428558705701177764071496315730715129537437917703844854633492300164080213168865761708234504874872994750365951671851036154813139512079080973858708117207942036426876404496716429957561839789573351325462956721143037958700816082322524708571602019082388848972770080048719681006964960451561907616119676318954087913086649989289936896015476148249713370738876609323486952142322601187737519206289789406378917855930681886501800216237011978198465911514320473481405341190954344934038735368108470403778104888651300121505827958016958222638458140175757701434091353038968946818855861026252101284449188267399956336908134144017259820577544920640121861762935892385715545725532710618805123719087422938860125032727306488878229304029226847755093757846462922677081972177204542799995470574150205620756888162034630024482048510306760982969423453446069086492290997795575245684822716491200803741652609992111917588751654985969286787530165563420157196951339438247273851077884825689246751580032524838061834543854748633106675725055636360379095623407401607194893423811788706578461881748460624306057433317346042618498642607184062368316089706609419924508912805491930971128239891068498665048586166817908976739155002142924434789263429932570590381407408881828961288323349660550469975246362360628365763267288546538278577588217907474058421975246949074559314370570843406201448561165829742580076294775480207693013970186762269356576090843437963104808116829986529448509564877781420528640254247118322597624850342508610860573885831108985435994912875301786327418484090720322453517747052037440172440809290462079632334455663349612918176593855297380718702766378869026889323188302197285799318599642545505664546365866063941015833277492028353795367242988261066701745256987059064318636552704506517309560278595183232967715761154177706114213193062414769551514748371104421819228038402778569552450037037534453803540500039622396164228837115061773005482708955911587023022704237526883889206865737705142038407291843379150091147575596210547560226514783747557476426535141101302864537644759390591673499240817139111736106549317873026403752994315120724882241700692185656199865751189760449959008657396678447431288505997317130084945187855271616879427058436862945904909033891178327421127983280210741888496007640031588791296493967471538970783135164075120983523326984758621145178989604475603809943427343015984733304737233239991501802250892225074288664873090043193768094880581308586272368900956659594142376669335756332458242312824499511046004096154242820971935090816387896265856673343553939239610920107693603748053817196131154465828446798561280940155380182640776207706861886196516126551732311908422984868470939694326025863498402015596956069929122181593845185960762256254741295783591918354333906259923386243612272349677261742894540664905574492465773113732232903614028778617728633502317633705590876071705212016671804297712340190920212801601628470632457125371362680716949827789551560894326874305073385485851891748414539903397312840765626167809346748887502218710280648340352063739895310559447351394759373517575578864138315579854932393942824186782594530056428620571808453007280011634426312750707583814237294215895745746505796395879158053932445787119727864240257943394716821564023989445132167728478280806772744064744088340994372137228755761927995748144366749511728723953262508705911694948101911821756972938006451798537197410398735899016573774348339408157484442114987450433027767194783899311025314757411397627544387333200855896518318724122795573133292715297370301204814753384490257421443248686721325135982823918354211945773926316561651197217611648715593035152174853785870504994650818062487919391944718919175289320848292887156489311379246745424670430961068590014530787986952774413955964283621374594378908139679047071830190873924207883655663354869740117222869678448719869910808079166688916196477700505635207494204774764097721997785210994864604524829125454965567617208705171923338381731511153002686992444247800919240130692696843881164112603460060641571056844219647983244907851253385399121208624771044833556846703652474381782820834744598120268295834688813823446226186265390539372135137347739999774065029919902137520202380289056501375132856620173148520201047863363991416240186356181263749042384414734161000071067158349720709299065038188372579263594351213881697801335271504646010845538054040180128246753560994395181121050779921683781374948223389750660722784887201525549950212355675665085687955807185320504832484761949128065266144725155794632726796098387984259780879147065826888287042989745374749522706779071604205473920102067063289074172359755448118150742119182032015939125352645754377040274334618697003589926899682890717643998770114156928654592289700580040719313891841434629129940212134745477704127245126522170494839980241114361973670629238183916756608690485135872600189986680692434774104622522764477192501966144569877957076278879800796137766641825504494697347658728311530591289182926581771651974633070387159817887648569489750475858750932321634038768968218032531619269728392528346067865436886767091537611966452459045064023597297489760026591133744976122115946509103815912505177441060273113950327514576774702362217038461379147692903304746853706565132928387414968596347282501733123119779778892474546391998760192196859010958141373956772453212666918916627143463474030037716091454350240936186358893616789209606035797078629002881216467266259842959286183583077985413786171380353628764625364505050092407427159081105680557180904341143782649035539533682128094283338153009558555304158432275278319076948001624704350689345505097645326847981888170477820418941199082939308951297661657622128238665883617843232687400720788089513939176032226597506417642800557210273653778592184778955600339279804813579391958658140931486319291261319566900291760077828106995203630083232866184832050415102142860301353244577745967467342381618110356449456274762214904875025847559594544944897427232919319674766579449305591950180088046275677174043900350201796072745765189632014760900196381915552359243066873862044913652950159682937890753678407259778849577716456814193956744167219069346775990174113899828226548641156575203045641307607236613962218134889563118106729586668038086116894481240925398847136320717158423745050004237627175168116209776146375108182344545935128252213568546046947365779741772236290572163442038982638798928508186904573851448015711739800236832283680843019360231294628855879547203872567369829546892244279614979169230620940055856960514241710984887883729029964215681015417656295716840993740713463874590042959007010549004261301471119437737983821544843688248221841710939827271609884730191919626388462194161452997075238135252937525391533277384416057461909974010312728482653989706633669297629496072824654574562069910188711945406667437014068762745450486051249613889150975242406076220119099349447308930838992268174355654841719268702211030535246638390463948789196607854782291389263377529925743114326966704844139602732536817482174869780027381459077925937741869551327330476686895577142411076249556837169279904663598805077459042979251444927914006921280222376563120503330090875262564176508679782626046949453960310326183804719845818065285982205515225620457934465299226393119631494494486078680403341740126953328682454824694103786521586771099236734941444661728998814676822967624069523666018131403307116716679587530774817009992079432166983374742931690654371111385220390615656236358131629678702744539245381298031166723810247292987853769618161129914535698013764489888709003957517709555729093937508794717926309076784208378162790845072989700747913912800067650301330280677696090036378405765302891798943825475809522665570667851858035974496450300140053176602045048445244512823556132577943786627164899170600426111022950825142568193994071320888399962268132909241610655479775020892151195390036332668519999822110244371889559129718813143999367897289037985261577629306720534324420086819155157357689848420202426784658019138876276470222068556221721575512151594293191383764994749028556426419643613460638474668200845449561227800116318198858200206295615409615815867050741849485695559702841881419274716489017659984358358438296984202190855782356208552118965979945078938728078768944092275704023365756614043286442663926420574814752040344539152905349183640937033932906242265309614632464520827157093277313282334122745853736501167515566902998202001925114203036535130729936708061008008185349689142441959693864552330522945511790704045180098257752631317943924161949346718057918846269229456803062549571183645884392762771939036457885406299472016321950932618760428004054280730938034660382701950905171318494806607609699653279576839084938512355504680535136865903974573867729568060599116949325171198568764159188000775975979706150503341121209907932642790766173131700052722022436212631507955233797869895941092836589975035168477099586101744792605048306821998095570984545278488238813895657796464084540437372876260344774218582890254789408708491446972494183139925988149136107223734260972654454303012109446810048662141761385776447172321838072440345289722652308954595008379660768534131178093392972416502336778159601873366821844989754270155883737874667744842380393262644153553825776003352997110113505186100384415336279352171500524920752318319035254286382053987152222426909152575729467529870697777500651072559003375269159874721513591125313962273994563992073517677548699700504660615666856382485066249664049650613808833658899926393832534560444532804608982924934545209343881958919759137425223808476043363392847990946495403088851602733491599419195112774658209375589206699404772328826415125782276398974348808483897262225446387909429978277385388294300519294342762754136643729467995610211392254451272342205495539972932767465118898832358671420804101695289298358877957657420347516503655862735920118187745763406516455593189052503651837085612462267785785396879576014990058098000465230350006690841865528583385381693471161922833195847318258074918580149559386702246598953054920416976457923137136165712382923167169828122210343263986887960477309334307171517470488007957563820300385681785765711128998220231025726763030101093435802245772447125913452081840318288577929777824726417406561513591222680003457727092016531078132918663926436687675654915770319674880946274293997024739372187689007835500007286709261053123569678085560270931193614266731440853148011136620652544283661522625197718194860341616721801442148338833731912424587004880280671926577813810423741807213989712716354208393072968546813071624081087857659459694939210315918862312097389106850067785837122733857285179616946868106424765709631931354816252759278565212183824640251449483240196330573312614948904803806635307300895718580069160130621155489902342710700035804804844325605572010718637683817151364835256634977700293013091726109760189258768525279748904711230388546143008808815584656285024974590317400536800967228672784261186120269269580050743412115256299673908859535115426187836486258461787485279598140961523919051093592080495692378220445576085986428573647102134191809693949587403319460395060241243712659211086710477566415913914319134901318902225043681945004944985420196289897741150493298636156109596493856086788651353187630955540915519054134783864667637838892534357720599926840559481358504375904410257296406546020192308821266886578260640045580225394904894381537751478426045604587127818725047871818440152077081915930460086607028936355740639910327618354609549787057155634784448858014391044669513796578496981606328895463428973632278384904167313459632465800970199204952973474110631827417281191862867147717476749683638962750717632597187368200435710347884795773431412903130165835805285128116969507569221852241632075259657558510406176269830943037294870768220975100434165472162802718081180306750893882924230289574823964629931989473997076403424441512506383542000575706236919476591798508615463970838128936727117672152688884685540397847019459517126966962263637611605118630956922118022694313536916950845751326628856463263934008656815854037362053782467097740649709246341851059118893918667172209302770569187760074590279567437908001398747257893611890932847601868550667628368542382230326913637278376695323327332216345599368492631942291014231259743560523135301868031101979059511409846454859472053618470965823227015269162324896595861310606050151298169342129935100318596124346950957495702891316452797088883729984122642113410412438034481995046494481800295780854125932015986538600218866332121303834561890513923843447313865623453084007282210484081951213973054164427177156865972393081032033622826270276632138118552068617586720036121374099547227853448442758956335627310918751868129560549338327923097286817317823903681423120382134582005668356015663804999307642881658676156196465988769684292028996181911427181927296314369160626135689732872301672509807555261777947373450172593908868689053721460949140108606017823868994083490526357409365096541307261671600255483001240232811744716618852188646888587221039098377260809655328006430483143548491247405573988464440145538665851462926957156829691838565918870874660517384776622571680889310633602891568193152258907331928595497869235942730583676590801182427948828803773060488539998814122060186662926002514492945936739699015094930656157304454146853573013088565400088321404262314922841510263917529879629989836804812723302310240057152683378445281043131386279682812745330552148538650374839321281564171500239495294477729426214215799980101076544063237004429485900742144708116183383413539673346177193104908873363315012039562842087408758037024292629694814655497952038322756900356726512277996080238420666915558373400806425823892913161133056305062437743370063085330374901073164606540235498568039203348224722027982451546633439574597318125447562757671810325504144734465901540450202315689164905623250238143994699678121969803629333423826801528078799708702675831164174254942490440420240513091224177259185977504748819724574900061142439078190377859646498583816765319829443213745385080923084254683363205489005521437136139268244874625044870493440362381051848765613400592452468703245741537295960279684185419436011053856738320350374654894544331778401358048285758083601017101222957354546133626986417270239810188884509580478535052954087396581257382133578213660998888185415064944851041427424664129184061434371054543864710848569485597321172272548249398479294462692448789871932919802487818346495003685230991626747998253839875187685859368150839452051937325028728079480037740788360690303737936293308619858278004777773783820394495650434177009164573773295022615541902983255241429795475448755894671122139998751705494750409571277952493591569905661925902771190158156399715927424546757212110527858304343934896069028716525538200437397615912704832524642835591464537300269596118637543912780149243096702781565618436619535465181350606838324603587252997576271852172501159941108673572276338322191884016298165745662597252778339662622408723138593677170858055465059099351400495642834781709915676489859037699848790923000909937430062081363559780526098835062178360409147987638763002790796554626429116794201475415640344610440446656329978048627123994253584238432232677504105213494710811227165512997449787829714672227400762734641493949682346701562287017919082543210991354818250831312933573058043153429255473006440219360861616867385966199959993601739726571303494218986956765866233711334370853877357686156486077900653007480985576838147418861799576316475821862217352258641193138437479374735334539329569559906580809634771250237325988987399945157805905142895717049273521798147492896998327412276647785028254317989562433078401930733186973285997175251901595418148466555750343614614522682860137524852338738604230517807505004781446367276273221061102063267735243789139027588315531191843202721047434376251434621781675938286434800140016305869933951805219492277783470176509852053112207456554912992749218498746149631015205729391420457521898657378416042350986819010441595908779285134200355760902585813391539149060441030435816084009253502186241942776501057612079984286118888851143484547180128138614867392701395549244544916183310349866281875443300969049335354473384181255621120644447454332610645844889811257065000336388758711271522769307251144976594255288589192165259119105958789666799566748941230785684146403131822436620071021820249564296219796848902745838458499857676311664020999172861047924422035642814248942317089144049816442543835414937314465216273721083728790078537186039341404138910063665486383038517044800133207424529620528461150491799262288775650216411475479807453860553475851979991560143437647378952546275954177803360606859167437977245618858873244909894556596357978087443574060386918337582873642994649692441138294670942200940660636230510951283319517770777662850203384869198074220001155787930419604809540705309966803676045054365111620088384726002186217185439766454069157617236553784065194771071048447709343891530043434003041375301829273122527948535579955451966975353459141446375054254655773010075381452224094155316842698230926146133720133714796088934948947477906962003658371801472684439412885398597810251494907041887250335115715294896077577148693365230274924032758314151510460348004367130649685937654311994007303619425136107925938246550374471274312161389220271456852184790221094801811128992609422597692794410267663856485028814988492961105402530472466075415787029850277174606563771221991615076353267421829411873590030052198166934583595372406126997218959615417186838725704648965178948253050698945953978518539760937806325699579055141517024531448023630350981184626522604534967413161171449580891437405196518513939518348361610882726014844209266978845107209113359813782771522552422079349012334809735695820314292156322927390898315337243255434025205303662048454576592070518491321539461380263272231720297158343815829812303609799552180453594562984131233652474275372843407467076888615212852636999088760357989226077474365281182039020134209117966719711608316982557238626720302784880973186592021385547680518141433135753089104462759948890359761065507687015629681848469765826927347378146101566445190261341115612274910336660531239549545017670484022165386246940914824805876994262164924102457692192253978703953312442167459590575818781485741326070800498755038670550049013848276800126970211884296502544942476533021242695082356218537693961165477632276167051482205487140596961022092541948212650961796613002646085957776035990231926942980825625645374136701321471656117707340771987065012284614173202234037518379034360292578461062988905436904187235863071422023662252215291273992334020596142765143123182050426211428782093693255242611615626535088040459692947322059496336468074806886520302269237109867725452855325085120767663820849064078353709662779430025083746842843590040251831235162270785917071361862503767306080542801706449492531446727250346036038014256054551340257606191363747671469850206730061311512113635493824350352892473974098578872858678132840539316396446756195415565588295171220916481203592935810769065772346199228465428396932847243659885191723172966324574826055819649318588738491271389534714145950777204701070327535340228419364905191617270477722245032547020379607914058970023200160093853491517074720518575802670924848182649705287753347055265157411832224238181215856791919747536245484633858823292443486546142336406056667902775734504034733730657687110689667600107890209848334577915851645352397527076455144670695472329200706608893907180101245260040818046731447467448688582813720857411534636526000432334408016197559014543348600613625789455493509763101368624918950433469499525930306007910412886692174873230161734406272401616988867763529358472411732902255684411180464443449839922458609005392266832369064446132239864862112963420607560089442335639873430714520582152485822782593272144664037209127689095282606614051095543255240165146857853080594664055338068813804933230879574888397354548858259797374820875618230677029190577749821239596551594495485414679325375855505323652280333058899398761363625749085077778227028009602216072399318416231298669415745167086764086758811401926663448635070577365946030089698785832342215727813741374653111795721571654201477669842198504863886647159239652048103357411615190751250092172550698913032501312016791985044790831694985375865022564324566904076534974063037244530615397281227732834254199961468829231242756460783625229949844415957891419104522749234899913153651433813893601011359526525875007692995864993247835555357269516070461505587794012293476919767790274961169787330486057725681774028115610061631499465736081006098465480461405215543021250143951114661368477828093448680711874055530522190287516813638582511651113910092674150038439305220323168013169479266256419711673500463770958045936739383334624643233460874909768897776085710735146999679215004378899341960704583497684721022491135266248933597266008596936543117586912431385565184409994318973553742118379802477299147001238224829769200402004579457946805622236277637211327238605746538036909715563721043648993945774093331074353543941684070457673270205002705332492742968394849480161967197625681479192474077557229230890688396239516623203218563024704547306087383088702138705940051162274839568157208098532347526178836528710372314955082169307164080343660147975411902330444819642269819136863672641901663186637172047291259393477003692126692517146857464687927760418166796773331281496246261716253273347020703228962422814634235133456087525395917054429030624116429306451164100274717647851952624746805205206217642907929818406919348459304206635061698433043278817274725848193675662973897051526325894199850490144777399740710660565491730639638666174892517919572225773660249845428620425649274728629107133861517679258452797673145429032334847685409485397301594480595035958313463347276546660051212148684198453861679262244653278911220317503534460948050362738480487437718193992717802262347747118806741321978222808344673479926905426357892226671017123655728290241499636500109137207853159753227653214512459736599813892768526661910087955328729193328517730347367695281909766128802842582365998360042243029016611673653943398748017535340856629407263605671647950940479395407554130165810394834947174107759782941532779489550413114885547171206543833090983856738871713034484219118296686369679785808927303920344804470024857953072722559214113244220557081132974610457295901525238104511425480775262954755178364108955925707254664920374072075218936464497859157237929482553335912461319972487502772870069112248184343364793614841804480158763886494338969451410799822208905089799683911471684825842320954182755320585512089964115582063974432691816437467574499017135822408504537560332165430338447027019882939269399699811986428964233249843170787310279409254381615486520362293583390069556157035659621926462067114092092549082110154911535857636219200397630395766253026708853127361854221532493641579060324046845363363504523328022656894300912472710177351909773453024856108452686617310902979707208115424548699918465772775235966415613661500388253589609550838322937006750624792388983855200659304745783280956119637019837584880792064827088071194435464907518590700170143618077651910830782671367690992546146827980204077551093469036857897799247078271027220697959182835316473016088401678167157937296332315859870274640494466308235635839829689956803460702699373869857870826102689356288390162607182984095958842844186521809631079781203081831817124195583052474360064420584479014683813769066290378577689794673770824418867965938573417409735380119965225622677264981354418532023929929142287730416242324640911182208912833922521792834893872957481697182246437293824885412374264423037572562305165882440530730421454139542795292387253258407586787886244321814389696744625646342900218818739857829103427488883351098218625801593862241148162996082492536692447321737691654499875499081019953360427037553512889474946166295017318570562237647528402025185978041006373713386782556260462706086495503163271051368810059482786104272635817534064064545198533755663038435423962171214364165194820570600428729906901420229941693902441707084357727788610612105609211551044239540234844768191645162706713331943950661445123047454041288871158842964558080739930277595694917500148735139360969268043643316918534611154593162180423837176953603497931755739583823722262417365725124935667139654064909204625967247879959015468556360326914134370368417334335071403033379169175424397993856092395036887555189611043369731149424263949572343878607227576906281968927721436597566405453405797174613849829747198092695944864106929955001370493580531103727433794702864273401858913248955716661414298613533393661836961322525146626305522115978537418115315684635834115842024256433085074292267482355484627364235562799190309533317085317992480740599775341838724729297296573440892179406051568664763976246480180763583190974824181770479045850058864520162071983059641815782878472925852585672415194094435956759124127753109479460239656052387095517496323002789187030872955587345529223741633012890854299094077600285932161743129188241386948753402142883580305813379757759982482492201559534675341284079587725142848408213629556495649389463025756493632322086132146275834080574527731751244890294125414630655384770771970564671295707897925886919059616397497369995146458740728106037988881597819514399053641835621600589317086647477287789315600188486602659684352088598123585185942729398100545839711817344768236719509588152104115397887074405703406128958109680964687468540796875812771175917168800555449958484359044824618630417532472227556697080941309735362309296590349820197298729727413360469515753771504749009219351409604573169141704956033592197670695220279953878277467537434104805069955375915662101652145566249267954881081485636447887848162811389630661198498697849742693694013403606807427006561071799271171217835922877857158699611464517308645307258753269210415169754784938991652697134534740094309186399768372444051505507916800828047760109976390669652781703153668398039988479984741397015949776303641600269882728520123280216992306330544079241254513642917657897096827615909807880322130295960377522746136967574765745225561810400136371652092429021618019598798936194721581734526914567743511844066707275882477011523947562182756997832284201999465665738850287414651690371267884047224668955208372286998052682703064729831448256164762610836342928156692437058535145642041896266488686460867144375245595012922135322231106311154982642316319823039394367048420691581476753187821167563915740653515196953822729466466112306769745438389107119679778185041212028972286932197796187769413941519072311446570140377163475138241084521085096945916856858812403592824836058076840029251646944395449256219036987077929599457411733660377045904739624095304457823056797612510663434400179065968736325173103540689514429063212364277925937276781394105606159931785587331072612755909435514541496112705111987758992850169857170125288654518835618012718059318798926642337718426441331147325981353090354705074817748940122606442900446161571448270223384883417061280826751491923909343692368805141859347757545687300512125375249363999622427242078689498084274595266768383473411362855581938160046453272532222666882396321883640815210952652611385579514483138274393275143141150073723650823428620513857438962193615815666715650237565533792653519076734998464326616229437407991701381114385816368247139839894041045362897784384575263273211998122450195010262681780757079882287814518181939883016453267759412955482188277929293297209793062177823205214502753564326519273522372171061200217398374949652640645694873856613230846503696951109776884469397274526946071452661720297946403340463940296917229837288279144993318900616455469912104801127799550178757372320510833809438231065332332297419230950793471226937799267136220281055063693778793114904811158352419636421698520960130394583677258623642220261586460578567553634969944900066799748703144448276592616147844014063605563228569934763235172617847627269418631864989155483701405114048100301952399941253957114071864708448025052329615098318274235136001538061421844210023297793703330934663111281185622857053327108307347538382161796722620611972782747795320941918994808247742333587014614607768829636574001774981912607782906288876728210947422401042233101189047785976476847117026231297523690944380348450518756473872044066742621386157281897527440819728676150330031688466417848628428915914227504468322748728807328402423132908772068905683040841395212386703888197504789142107761261312070663995334961175699696416478878660126052231068848845747315527403689647003758084299134114780128232412979947333067157809266423829257888680657298987062276106857266962996770265623711966993741705611030084170042058315323665575184877340351770442104348974891786907929753013131097643718166976339319494806182295080560851673206566590536505028112531320447288018102399710530689630506523018986076776905454672820042341204060298792077349405017670262500531533970466826379636333243205854627386346878316506170107369373353172524343986070635799670910579873574737053442945765679923561168663119378775691909612538553555988233755082915107263112531642544740234310388982625189093446337745369231788090180685293796965308544244533179617320844363809282198386125050490037480872956906031243835451937140397532870497086110124695025242933394383375441583569855897814085190440939686544168994936361256565711852033722635985511772858796256012607121647191601569032659074358000423008719729696267016457661569485739306473984331950441413075876971800308940956226627370088872142092243867393693064123546742559288000622504325830526017059190111816593569097255335519185670270898478313961484011934864476937376795977539745642606094004667798110117000872201453397471445008041906246047633054374301241415659650085457883760892028045957212162725881446031968445012851564994866133325435045623547693285045843472168224269938948551788166365553634293366385586338997465582258352210000173044371294211872175447985043119935225988476426119558018696410068812567793447810424886484531624847451081820787581347296196787088729882632480880306146478749033577321016703658295162062316563111196608427346573082113621843940698041473113791336061015748117060196998570312720197900585240225666980460655380227623751870258557233035178404784065695840024202961678170097840017558573634410694380252968036783215701906551489722664802236582126584014056363035132751874885776683086477661778063548599963391240136835737675266154973911295689959616712672610392827165096944415254710102145937708586815786826727714763688425946870319671279451995433491501743189847037159636389123542687784475623441196317843301225486297575099359351086298165047765679377640150569325618767069915713008755628276643687893891060370453669952377564000786942095129734947548444236164206335544244191137978497602841696216546793074390550031816362045243922973283668676365344639473527911584138368220452019797030313850752624090720989838626523272631950797600990632964201120095855972657749420977722733807269781920732174349022125154827767189812153823614667416685291429768100436524299561224077891372473377051991141239320417082914544985359692722456135354951568005288934964984229066069051763362570352192318114558155790101905932024534619159143702523880683503199467717320735528294887312392636955193889613262295862058972889646656939386685387014559642472969394992622554105927681342750665692448674577540738235096480250782321422608411522007194277522621410741413049775230439250187003871260090048212632201682062191232063256851595869846037942689182655891661249272078517505331420876193965127014874886939457844938380567057577016100450238093901577834362797923057338422209936200678903581869981695078311706768570788685896221031897183397647095432047378261718793738694416175453375361919558956624787775184414328039380888902849038561895131430594904323099790131953185569858625862079073328237029914105148059160079639717154100380149951150391894748579814252205041100472900305345652855905019140673351814857465380030854735229898399679024423067935418706714089595038768056692135104649598621146281275213934681188367175308669212840221603973477238037714172443356856159275341286701864463097167676899527955366810726500835549343114037696599537876174262906271009900517611591799933972765341393612450406254447093778799283098815934369712126903765437353295625617333537978539309271790877789370750298092059373446756058881513145741799528906364474150804908877767953948407879160812579276074625107915034906154353204574368193221628508154528581061469165755743140677439016174088482784058892004420932522031092936602493748933809974057262169087020442450330691356573443797605384192956091984295772039143339823468583547242673363063227584135391771230796562457058265949232467082037159893319677443556331453089110157572403184544651229321591764095029233986810689592794938334388007622014347651397020167951049409844112249685893361973402949779228095467893850410537913294490153537169065090378560327913328347155421433923865313633547297807474298732315205139215649190791336248040727814011994284714143412097438215567459628517528967088406895458427759346428752757297522920555469167499542754742277378266747784953834142495189544314206855475285742640754994026530131856910200743718398335922472344888348437969571664696514079350556758618773705122717357178646221528948932892350140899142059116117421877557508922496632773218240115264185597631622378792929166567004524316598750576688280457991860455431949872888857545580175156266714852596612173270990886348435191604674490610983076082258815915172060680364711112184867868240740697239399987947487567614211854630279269963124378608930906299698481079151143462386388654801179727629448088294313373331581161530723204356217713454000858131201085377401100311116036041673555225644777679345170206962537213030957130507482414186810468332164253005690526474902822232483086563160782268241226354438366446734802463890945688805486476477567939411195876240409628730777392423178049032382545476035599958956939127094361042737910838965603095617090109649006141444089761608531457166516376777928163217189061179306535002906761265569392557400474499536893520124623608905135506485594767124225679041423570340653172988784017672609779263917773494875020318015978779876599768920901824412672480634920557779085926212616156821605892508040188845617147711719292555372360940302660491864354547689494144677890291303279621473010871588166296212090335975054077072787749589203201905638449538443649859447533262377501388833172734966264686428649693226449317135855591404300456954738779937542673141052669527078854488504926165141162608598068462006672285162311454329134855164238186733084179520832707734827241780654916635143364506695370244473765286724812368392799001273669665818135349198317004753981410520142685249284390853737712694269507481584455439505412697792085872493889076497744639763016692982739245147815650040749606375172275325281128217167711868371382428564442587024824126198859447019108158212186662108458233025129652906803275419985211301894091252116725339018461390852857542271546248849009445072452602791917492424974315155555804597950786660745338394334873922577129873287141744323692144698646023816755448123455994693845231595128925680064683359267162748808342221207507561435592357177827289760212763365911964506714266530141237934274527371557022355035312174322858916332166729785279533121619196128688551359087157777465267119427451957761072969615105178304767232494806433614172377710255721891491409494967743762107914568286979345000846839285537750046576417358800365215907413598257640546386923719081762274278308140979591417528022031846490561956189305946970544982042988086364195418142713312872705713440648016779491147542087730568412733378761201399378030760703505964798662182802024081684547471536440691670946038422619285538534808864466852596202350883418077645070071359456843531513641367658269344684010397310240571020037786344636335743425573852804528056544447933567379861380610433207853519294730905431207998481968194572067253274200442804586212181553338349141598640996791555346475912350401295848923320429592137544483405760383872065360837656712320647402685404715626270386417580399995394943413844047222974436411023195003348104377031200850412510589535765164373191842186908640179022426016473808570087273211067348876037916478315906609219748634169047788120438648343323135477129529860728098355221789736773810944178984662467409499199733411399976897779873948615232865749960836089131360437119457904340658203241871863898832248362135600855292003609279744898001803539895548604289756720295899834705498836581159616934946717336263584313429965845630856541686257697375385462308328347195343248559033945769740952404173879258440184882573734826016837911640484425067061099305732676153376011093562600167975664372368709792728993389802187024327575749533091142023383576860995365126852209848978661393337001733882053156451815841246712705668071271403994438775017784583588389820445279476749692254872233476723311220284854310046021926065730208428476300677243262116879459635752811551392862114780336169932960084389118453792937602392986094450681496636321349759090277909203349712626528318223433722446789258130032606795262477066667131876971815557492559200351262428645705392223288056787813144699195884989692341785875856406096783272921108629083708124383786451825364348985280519249330465657122128636012871641338305097746285733670458015931425200698744477763266403338233869511898541207659022229376742203907995439765350941964755004031306657095359562395776847962984885510521014398038702819710214278693049816579620289730052500027617137263536659963986048860770861314984711468388754394216557130077271465582202088221973237222044026396149181969690419768256597363177008310305559483621470229244876592949770186415242860426086174974338634407948450966949214853346617929278075065141815980091857887908048750657960047749775665533686690386599979729225300975113371173938117414359265937870807635055270803205214058902889325771354323804434612737994920120015798945029105655072238231047523123579369924833001298657579366118244109520827894572964297606020381093404919713488024476647498954094322632689579064680857488709258809277611408152801469538158949462172243763181833073410714690036042172173940958819225530216764818400725295435292067944251705851005641674089608815057625977554896966329130664362136087805986425454894190307603051981741970672807752998921872019941863937580609543033125250149921496347023039747473497712175848130072584630766181682924177350380055794830473213204113630986537871207195649720526179190551082464816402875517041044168385433389303624857006777866718306733783349950961710056610447326477195719585412896826907654237498490366338416048162283883140234879287240572562841490951835811701508447183883394589711055946445580854223360424465516626150864224311959710460137405890957652110223451689777909623804111418611350530014163753640168567036820831716397062283253400615122401264064630496227718922180232713904435456751053937697701456985817521462401867391376288647699405581026867696803740053712413031676152411794706750871679682750376322438556162447627109866419962471460371825483594573078847025195583403717839162278192113579147478351858452266723118576336306870857915705488636307647816719084623961894478076417741102277362441100991845402885078898060698234844916988358613883277657808095988876277121557899294793419821793498343695592849591270808327203844343222535020316789874590042031524159071755481850144126198499038262047548650704290418533415176448407967684449171740585257464168471908810399127241570284052940515357754792259381557872188002795020171502400149468677591760323204542698298406498384290969465306320652243177998602774199833636350115268978787346378733595077268622844632855028069012541030187324692023773719190944154560547144834838764230602404250104570794277725643351758761585884207375321899568750758081663404830257248216687888730778527352747024645528853711740963251716505292571021225699171621639944397910544814619269254374560713735097215177395802651963801448087791196666407248463540915062623287681552689962063627223987905053596202333141306775874903085388024383463973990039254282286566707152731249951334542776976401677517912650770733056735182430429537479269908625757702410240466223273472694961807807161119346802838079846655305105182929292880090719456996747722609910414318756318308876484094614027941427765941088911670339644929616486367694694121898180264282035456402427199931305224219025144291475895811356346477669772808052072927322150435937616792568079500881036526201515792955243525950383510250684325365120025674816773282410948219968022257659610711202056446411661407199504160744164313325272708196049574075674969365721281498411201879986805257173103985185153857220356526176010764799644548752898306858136366768196145352662926814954889340196073287427787016320514956489043756125120534857469132090081379168739416922115141606057226654729958245062608805183986904822793819711668678740328369516772208801143726245725034086571424537599158381462684024266108848556579116925952907080884961273477335207060138769819398777678939060557190038624931186572169270217940838172443044217801956027083551278911213792983239220472289601831874023480494914164721257342109491816772701461453322611109869727337628307282604908158252737591556483011637950660769274545210760351390367573388225349935259293176945858627454384180017031868421864961300342768046594290687460954896865828580188020303233769898345406721094128273330474097509924088232726602571045715014406200670958359952704382923384393379742100322466074809933007002284273713191635819359293708607612276330838220432200765822692933198039468919062948678379250746826113315584389318902875682268407553965762952893920651183560022320881775003243408980607209848760097106108276295309314387930272319864078067541264739084655706015255751639744102975827403209087423966207698722759454904354034491820016645625995571368181260024510895667200283972548096853923612362264826540217680285286717566361966630679675026306203545177334397979443120359289015785079076173114903737819453975285095520405934917852352201777046621948826805895297826352551456483172983893489521170316565292880686615930062540025080251622261889439778470726572567208024041844473472770232548856884681454829853572940168306832167623644359696998654746638104565995445456067389933411613202524757608299299040962291204605771071045552435975496843208209349865894302744535915156466445632723123595452935091558099871364864330977136485616376569168787204916248182091026932182986847563200591466899335350028017685862695110997078546690812834423572049015100751147666577656914987570615853818409208228980606885097780725491946708008666127565023505990973573715610084375682164988093394870785498973848995544035548512196233791021362597670819545394450081131982516018909133528080720421049470650156077041125498571043086053787994610188013206773443218190199652559684112905301965254815420876812037211620787106741341212150418163916510852588036784336773547176973768836439416414888251118704610768891656255724596187573944510823945968567466086204711829183204957312408615878696215156147107443195267196870391660675306742854696876544107879424025623128000738162202191636802958328400227795810613067636125164483123078203846893630871913439410506339198642632934844155743924891144752456795789727481847393721404234836658340414597585608094129477472513997518713718604902533338592321319646161182762564201111580255448005078110333176246828030950773526407874185943858437398917143072053795918337020141281868606382933120236391801878737396101478681872170451058708777085149414827090193519687292192022745826889507998729194647017224685694421733788726040328568945559924753824837686711598290695167475515962480414105704867832117307079779895385760460641031246093972316277439025830390537098296265387266358834303300893220029423019304150761464028227467093915979980900791078287260606234157759937235129241836283486697717899380068219320520595037010150486681458841257498851231340790453443744049880987430617155638266369204646249107075886655417860853542125572409189406563073210553617442123764333986064037203890213054436370503668938473206399073735331317169765047996600598923329279611530344202627232409155500882205064768635329233016066536154189683331056387214124056323979968905337289653974324190247272506078836947702006493470782401523845741829582511386372730582722525779191004954195740426464137973333111256092192664533276350002536172502142963506226348297719290418251897974712390583572659727359422839367331197596814125153203424354500965012841898640286282130706031878572979735486269431710587699363323526291877549949407830703166068917569488666190985481636705449656685751717323812680422280112903178850540417367836348191123442384475588625210488108289842709712255122045386425770722782521991740917937244344462196892610994865362347719038991382209458883218090364552373681491137532247013211199906095412758580976032276940319621101526563156502646755473547383552705861398834650640535226838568654871925716759353057948038674122163504717220186668507178498475554777635299974217021640233164396058481480888186723490907833970320551600834547419713488345528073435943462402497199365865721318267725043711346359160138981444542897485436236996543608205239782477049606900891874402230709158161427827596218242801345641321132221387276163737512122544474278089060865345650880268209533514238114881342470028639496688404137396966588957186731010730483269347067954273712277118154470746997585375283663766614047721244444208517124284024002540527553234520548265812471921096185792599941133557614860834602077375380079402859680491480462225852519162618115800365809084196741250495537234645501241076826125238692674108272852677513954088662973270428588627659289154240496619146727422873004264455260237234430940557393113982532342752906637155221142104888271060278772539197267140641481754524344883570831273008571802117962821255415768650431400521146138269533842596092778898834753077872009059283583651591991653918249052348592947134906861387571352642026411981158109178407166918272256338055435942096675570385598264558284193683341288309708509269349160926778095368672103060730497164756831325247663559078961445225860915524211934626110251254134044212388989860471185733296521186790897036720015322992086197384621591139064996689564188267320922180615218395353203642113722836447750768674774877737151893074059760541923738554159857626859139388664591467475045446541867167417360236250529764229842739647959460439408758428029404824435129560375012584036939021137764883460606086360685341194879337821880494099565450860049212580947953156505850312084673426517487265331645645068943565519984222115105492754122982848064993232004350320453028822834042864897697582519044546698092796230326196724558514333042845239090062743238357731068359620541502486109054456910873488742675976209021535287166352532802341153834410587912750204902105791279863790986153422477050039867330640666574642023851374591780404911404835911496874629272060976285744973376415147702282034616763772541603012825517394803849267437070745321119630620975784714851106704433735418190790870285939702320635880973403937598347407008444358772372229688954046252302294483966302416579167762769933824460982734269748508229405395914861551479674800810074907980132812811320634892584054066671073012563927777373164191656260341253798752534897127182110797199910300370560023815272224487006554468156926195689651661584415044929410163786546590041223767810912103459586461488271020397225912018266102362675739918861336058907907176944330859157698230012048043095930471429285306210499329861799238564357528737981507292764308687325135616316447698100602775239797094281511308585894322819519319962188012916422232237293457073786836524239768148590083505738501095075407608064442261845231537323817995433528396849808756853753535103032307466548675176445055422763982440836645696193388281842165980084694048127292043097461643544278763291831512020498255307461942259124964778230326062906005470657523858644112934695683858099796141314986391202297567872477961074783493834536843912637838218914556217941868464516227839522927786504053574363282832668921652488195440091778019666225946229498019364077432152711873536230049216752963028084297385879681995843486078065309153162494855291007063326037338975712421320974063693056501678267692259310320571195008176675894202964489472300296005696168580720283662260953136330216677585400331149836043650285549302463079477474191177088235220209097205060047817932103524673063636350779560691353147288008213405743544791053336570840641726530588138189683517404576090368778646986820871669512997220783658929156183803873671296879164513342700643007769276947466820797212481691703387147099276921454752151276408016631766959652219979542610700655805842579462243290655067699021640316179072280015958601494856536451831157525275410577286860306702365783738724000396811975242302897011426831446210354770526372107663690403788029770834702266145545716225715388530534083642814949149618330773874276507900420870418642322062358101838589362454800274736643832763085795221592187735055006980126941265452801775440178567582435897160334589198287702079478410418069581088251224491756585774818890611118767472536506607359590466266820953761115038396837365180575107150162870009195761190285789872998275085722349378605569367626538361650904563872311403103874519914311459037450475185351804699337955925178521125651953982910407950558432059343373207391251429247649353109662414207555024392151341133942434478646153043824770577320754272912020528648150095484789583332456961613044181336805183301997115985740932758710095032840668312488918633788913933002033172936147464643438028496847142690575227599937838856640618409596609984639348376552981629369872333157372742572512706632523836051870358104693286489246616567952480697967140895552498376897354786340044069304973725951851798988432060992469611560203512464839238382050535247927106334558352730011612954344524802434083257331242646266767301574567357826845679747463622912073709512318827717891293965957721302739508977743663058141758774194510611528868705610419833396184865780650720566318463250152693454215074617697054832985309551209008322288626851483582909186344357389486740706262955388654550227294135037884202271342288181517907882672557215227261991774616769391940402376072694843387188169951451568879564121905708369193598361353944464329712781869482557392955710187766499143863458516518891344609955555185866789755081239420958093077253838071505793966114708944478509084700237561486703051239288077180560721635204347017709048894998852679328944136256905423872638028627817060480842398307094937295449568871941784645365995033152720385706301509514778737417581255721393244081805386106301569620236940588941178226520166028517173061144603573202978258894013960021549400798889764624007731072985058319964666710969040869217142179259055263033055257332678885578934619363430578562983612986762569498425011618821344162745220400234294590576393272332818892557537412967293241450709582816160386312448926645964923863491972327037880981742820540578485089140911434892836386684663204347376072537698259547062004583465533312810987438916976335255503401900260541416543639936889632358585414963829625845801976903720195440755643516642942384346608699679434337756435840552883498353801672237799431944207031696617463425234392935484890544302471418749407565077393358924088665733007814616667805587496844860717173873171306293194921417330662655504450975225523192970724545783473516907598393395178918485768314716855402832354580655933979853307931263205924740546066001557699180383013572965787537746958440655531330493461666323761876499178474406963349654618018053459869510858480513414510478051282912838594628327036535417459469268148001819163839263149552693669350700843209631350205460200066195563612367977952216325569390051551328825802297738497286251609143589126696478876264253809717591286523556056557435602184277847934260639566423849717314667494549710732688140286767313163962306126286464435471852274947493494912398078112259778385842044979657862116818472232469345289024792866690729298995709819372016242399253405600108488203439233031945431335517856242110668413563115912132864018523086625135760525171601106880523653267785889365205801440152577988898229864755308180755156824658931509609538963745797937658216106432136470592238978668824208299243267147415777031618928120310759118912169309888477423986009890723463199163474849948593177958483965236883178070942974612375258362576256068975459369264933257433880836807070848477823689815748512146522252243129617880739681063677398645796017986339773458513007806718485651463109678817220867054774385807178202476746508091940576969268893450386593258107394290792532005895213131083988178444078479468990284132490126606178604347719940370049294193841924965444690422965325166067014030346969710751682030772326489115015182039196294215809432302132514287246788014101789197024685953189258755498261554195548232234148034454138448522545820389682050800031594507168965808683107658016689967631440754685441824358875068996034601100940897054505925777818373219118235336969305551847870377277745219305994404113927350693105011056172823462883080874076448283211804665051747181964086218447324949995718733804230124303040817252764905825409150251195425655548988589004910511755054648761853034120442161804582478356888500107643968020949657073009204947776081807853420074780049628512857655111881953248374161178799960756460055078442728734401810027849961295207687395146174615148664820046168198526867956724802348129056251451714349385916842324330762369414590474940521957231117713637586698444101139446459059323185659780198305883987453792816587803245311719604722448842877966745172893892176040174576448615604376920457553590002992325906154621029749269669038194087274947247865938485159508367081269545958273672612417844550586202895807451555583240457823590204770863083661265886280441371459195938986187887921347283547071245935926943846194498097618218035842673399166241431922396638529939921403138225821293055418704793823236848103575283097009732485863474559392476961993875033769488103396240461063198390456906311526347260219768898394598771966539892298634596153950495381400072453418871023318592420246326946681184591379437683418230458767477591202974861075169116448637674329415864734896591379602997856476246864661108585609681915269717185534051989107594050046901086987433840121274539360655515100880904781091889382396078486600683565716599566322790067582698984035324703599204158181918617254490085321071326180276967411578299906726000195519796449533717542600607298061893279173873034220628622067813088787106747455016527135172888815064837889830944191043305999656895579050396474547544753631067466290042743523802386322654039374373424396934386729114862842363484217804828780577087426518516923786071054638864449343343437801451327834247916050003248197537382278686348672140795856721652898820825700685128516665446720249589479860811582801267580310601629451873978414367735941028354901569849594723565382072917095900932440424234156881128795910043077521581658197335439971019027762593792639569560284429995451409972637975969550094316426569490064682745056121859073274346790676445603090944389646354337361485940110741838470910630179635694875373192535226995745232125084069628554253272848849766528113847272253178826528389193723440888757935436116420241975674709551983099701201840177936862177295150309341277455516483026416460511516991307766321018350688419534688077844962181550013492315465539519194718414269461104809969511198723336027915691048424586948165642767028225380443010140746857074887488094098018369107260666712893786663128007870315485853445353890618595981702825840501177895419757616942197667363541016962875677554041377984971399540394199185702384926625838174680625974744189736138058261720489989299082735609529255329425933091444520554327403806883045503351237950590234708723000708821883437416090373593510808562935883042364879517294698435398521169929716198467286517466253729098771433876560413103392380952998343914297698773757175130465503910329743778737667516619234442798637471734796269059985857807227847884120249442455085605518206393399243319775232146174967940701038599986813975429279590307462365248882469260141300305399839834069452075822175497945111354999300337936983399046261639474345101085463822766145123456300962542362256985521017405531101957063365651664705407099815951100150337263616340408569451805610312211793862674960159938374538797464450398540454918076142256064467051282112721991178101543680887178209107273776916602467511087148044668708762553472041282469171993647359767004339813588277380382971604473111087876656684446866743394864304067187282714782919671593902474862449024849713135095721364063236740242518423390247046920030025893656399332608224311156669166620724472117925208519600454639971894428041459381766999350663119855414527918734955706180972995073392270000109415165269230357760340085944572851964670580415276547869476210113693255452138842845584532022357681846656670773227224732843759075195677342115171962149851766073858118594689928337054313471322609780917086052565562818682856527662777452773242719584552975234362925864534552838472963025892591628286794603855069008769718037001861310289012769839370144883835735259922967950449920973962733493562712683192521378582891747434690413217030079628909254872048677742736782278453809668177407083110904781398401327712555371310145928149714590170834419071444440170225443642225645033794635580170646730993682556491950396101476869520500957603882877791243146426186648579230957692611515997306538239417466440202913329776324733519062450647923989216953417980270337252214168416576652643486077268463212522753264235472454031913707248242797759067301573692114397942962085642647646660159082427860978032408322597511337651194205861449844872342179866783366701309068792762190951709276260334277272179664535521674131136174733169382580528761499093860531526256581795011335349055752312631630556848811359119174489678137396680400653380773592844264910555657568623424187478286993909953286062808161630117905394029653811278130866111320634516498024466875589806852940737402884293907517693298634387184975872484577000719174891366536023742770004859850318229076426532676123192328108116890824367783497394541819229992448027906493076731435724541515443865498439118454060087990620126106072089863842592055475067702166577781600660218254588621064549452222975402790140708137968391449835391755762670830491106713991153061010906240448621111651529998244555250447881705993581766161396657299155443479911987123083736721288641249064424796894267457384143359140642753834518965878110580599291949951340390751051097167845645834088107599488890871675242938017501362272279931673410694934124252732732564549970276167306875405726742079214906591514993084179140345946268239123500091647017433245282560916424155199642185137744918812710993275644009230793291438052767247007380606308903035635105194889335387390753281621725794077135367753530050545359147449597166209131474691370894782257303024979570705417377398449211483278357369677342290389146454815183041975323247979750206744397344166429137941180036493200927244137454208373726317084864242745200126301228544839438632912263732378436528045656253436967805461935248755292808333221214031307934009487268431817947469542822406908169291951624161024182572749238308430342435888212313076031297044905887097928864022240951756146575981031670129540063870704457051921167573870884370545712213720881973430510825554949255772814336661759014683531364881047208363665148823758055632366123092577027341744302643138572541070000135400942715110962263908960112549469742735602434632636861544406729143550402669569042224607671966420671514535430828354096862818729640731076744087209984696750539516593240581524348740083172133392953252540264376603051534655016140074142480794749985229740641421811144733335197529659477823197508859732017137425892287647337800753599152162382097703868605100905780628313295660565620888912970607844781868170385077268689520602156671609872467439446016540265255875388720971257274897222081766174578787152669584674019148056260093620044916566427344687431133306147016479631067551156398610661146596782483390106468677665368319353795221930156013773694676890496716153079551040621141974613193525172924241893033006742005138476065751842546745282983414449967589957809705512544471121683980925829469634647714889500431567966048222620784590384391643078887190426393117607856935328792334354137809692752118471186551311159522196003512022336783970223155221501874811926944999179473129615478475914838200876779941949252999644145967306751872582324397277653860228165263373609712309311240571520018719209314005528911314338634776306225698124701902292350861196529085945811389840568630879510672287820768108042135421595737361285043573943879110021663280097193292251089062579246322241094118635346993205864682971863907702927657486271812021376500811072670694291808642511147020202761898706340361554218087946105341301236070122402954428222554939975147673708717390739067008297800532680874292097121131199596082734902015706786824297592105363032548852389232862385817565075720383926695539292857930031490723154970315290128468059800273096977066564887834072280075669216036670317999028046854436381208769842003929158388957300483057994535750865029600457627106689150942633798679814830800127945065323943700088239282854138474283731211822538996410318482905733258221332541101531166532063866931428982801560653520540682008589468343205923474873115174539412384510959660842678826361478899789744360897579514032850015286425594168132999729234890209263691258340443950307073016316066189377691695077193028141077330952100837514125407607731072661923890105659853805891760118791585586793910168069063141257924572507638128373170320907260989910716342879124583591606687409220838920513450364840743360681908301418376808111815109359805654551815712865936699818181954977240998567451324740585879874588015002643155405478738083442518732789784434591491356246174518728735919305558224096464752244535400560793086254375447770948895302670877398717401194598914707901080314493420125492817249746677865915689999956384835758290106447777853709598601105200971070455794572765286167623718315047964057024376373343177038839867574096716742537208875084495356868351380334408246130199785828277323556198242190130939343494224152895307542597430788684886608128947252542707145597504606301112324658584610950043663910705452727021336589008151573997227844680611634087882566931919200186121658120175786209304137063053378835673877257737244874132783599821465572339237010332691275586635177474696599810234447908868325023288157084229318493727445545169731133582423213136962206702182535350553682992655043067408985774472008636461226476522955791159869086658850837603636482448107729929206500203699960471686061943967610537386056124165386405137611780391182582385857656056074886267163034553759893796525849315529623838300856360298362469810342245549447639741316559865913186010038401880110848975857942237556079264335051111794958352557689187064203749376034784232148479588736942553165901887410182928498417147544885382070284765989320432173198890829604773697519338981829146481112431046232985184829034861657752275487550574020122011265602282356724511907123729048692033281820251415577981629888910691508700023733900187908661895990832151223480416177042854330257483964139177274359762252039353104500074376861903539465032669769665885233926703001797745189206351144997365500974379131433407067199027700619458641418905948546243990442331787539111882614853291931540896601955132950545822637453155101866513907591827993842631124144483100908120562026447443720093529877914014868723733406038849342147448448134323022779638046016281898280520479308981233347578462217078224252426010147793345953086955795793084570702119932555561904707893471059205837356804208918822244844619784173525892882633218870631139537477458643393331545449707925941028321138701317068266853309182867293347218302120605367009251937097017810063270122294020821737056507615930559422654736891026315327711287958362125791710067966978636744847454217977199544459183577915687353233541655247334758771716390725330029396201589897163815471733688523941105822445809000421836441548105653604917924021257042645938728662062046979686888372984424703253128538113783558515945107893396701909511480850221918536874900346863584285651065822592999084596954993651727041906338987281105234840351988190404289764795333646280515380028858370718878610985285739626057593791874341289712630359103602481726156941393265741875757404327816417407248217776641999423869423703087106795772419100803838853436651748874793132367328591807622268512571583558288016545676183699249281007273462521547877299186072202933298971998006631456872212313588439428179842219996804516171456077245424486298559346426033661142384356383176885176932714198723711795914386266870953337555849147385916740495329577843671316590815421419154818680778231071620211558321071145252469964099926337771159672917245097989660676896979320727801802813041805225840303519536821545363048157517754771024681198724932532458202964648905748037677720846903024839223880485552484159290103018018612280736776657472033960003717649274767344699919820919215786162433961867040306058398958501922128215865249190620290295467733750915009972373039281273639889855629606542492059786272477161196151689902030786781224333734421936342482941717642221063788081119442344393683508839807243648470493961152556758973581993848388406604450355982209989305897089669094047095130972715646864985918430139834711281760395303076040556881373048340226947641893920465458452601969086874661489501881426259112106018953158282504770734522507103297843757923834187355642870746533804030589366223781077600470337966463784349120620595377475673215294929451638993319203246080331569782628087383580544286679399659033241477396246865945219437125095059679326705985795209026595210914191299639344155923809264939688787153851200506678986177468166708619393636309465719941666375348746540513370365149730176264858892540953366410444805060614703289932105074719718058327158227330304758050012033350306158625870638709752461318224669819435706142680748694984567555187715897600122198033686670068747902511164659113052353500981000629526603742920566651090820575102838286319729168589918732829186353345411546912570714034756084276601045349082321037064417654466863255712046362958293591281860179858556343751260328021115345561423076774468291890720355356478799653684092372633851256640581291848191474743109883961626985678557288136172478152265713900252180639066050985160531862272821211428152321321810943358469183219856064305543471782466444572992539973297190939723251157697971688783267415076458464365186262524436336847335182867621578834762135764552121392483030617295197846640706944821082576765338083272946898903438559511050966597891831164249898054506121359008034630078989707636830574676556937954311177286575299560710012410455761055237577938309261389440971332997404384008393733490236306855253748676763083131015896956844877287008881380611074320856429853168164579441889254529708763343186156966605755350562266042565714514420562298537275194012043982513624990838442152016764622805045289485591081773412627946791488775008578305367363098517030783246764997121071515998296510880409004822177244227029474607956132908600413602917170281551963908749712952304548813162698995019842075555800450040186468686381120856407015083240542215656736683070569182972375636174985514467176638255931375745190334877641933851043952195330139414976587164796919680025873744118450023013213427268009141480764823060201513611336739621719797224175887422225848197453777680757306572927206830698553015353696884203844627476479491199772478314385828498547305024186163936587007197816171906317848379302293210995439958168114089601276128447725734671943478682679667201459940486395566707306070485815960392277816367257181321938282083534535563138146512449072359890211744538382985529836465622473175023310865682802541177153550478812550036413139311555907438598465030444575464193053474894927267876280648799527555169027140717901682387041781792500407042564775192560860916999232006735627455719186766029333312660441907433326431092098715057030205928880142457263211477001717951200725941719698734739487467446215340891986224048925364869445023235255031443157314556189899208561772340952003823185739903235170101417329596796399774026124101042009806091967557131693778946609189418618478807428658156709507856143461052494352413949157027593766255795790840399717316309730399312205110964511883920213994071392379191379208383759252431634967613486072358081426948548597950175693268971348387270019098280791980566938073575047292804625468634897089060053899047026126645115177213762779761317960703110826720454147609594976377665040989404172356421292285685818112549842581533000727621673494729474207694591447126192316212299719980214481427429704394397393932154073324680421535391285213876348560792005159246257366350977065813241301753538856268789996821289346932509348270862431436531060536424513786154204574062463220950159338287026005093793077899252509920477535289643847882517601331077221849629768985419971564926122070880050990006829905845312077083996044396251083495544099078442142363220471092775178770675323189767738794811301015592013629357801319258565307124684933351838145249710306549905838853415450907497057964299089850878376650516694254980258269137528350851006209183907582154154660958185287219289093269497843114997032756676668528324847813969737765676319422760375842833544416136427012905013955725653811462381247637517990896106933721531154476372677137344921041854502318372192953571544696406066863228830540084514884041197944444481572273767530412171637961990910289932029437555179468956722399285244080020324288478132377729966701712956855529385324769790736160810459507259634846794060932609751091341686998158009241550964690489156653359636766860447753774317017497931713254989603333774866332906894350349544413420750553893787242952601906301207823354783310511870894920136583650204553519819873347154889593122901345254471757116385434773884150698058168680130733316436924282821396998120427900746077063037758005032988278402433192187325105285596696053422441349867053243242093449437029168807155363059505040606941648992233386187915638000000171029350509571274133338930708678371269226046392355053564828339849635331792723031220160703661873054565634880539376878264841836176550291385334735998493382066257806638444892994039224044772125478946419727701453425036788294797283192528071099592986647906874006691154406602798064371445834096019371572852502554495323508535188331825221450716487533659617213863090923344403131274019209123178508661774788592978717990512403784188201093037317730289782536439502086222912050849745377523347902000248490634958660103084370470166144151350684493046982239752826725857268720306741194592256072827686970473685024214127104189316485349462645187194428620940269159730303335280021352500202648119926000993811150424438136358190414122014232115187448544673919040863847317597384742162172200981455767977779131322767556690541561841153162003927165550762525697545281727883179987433140904120797748096375862885288694869314617149445638027674633508898092804377452523923927246034760914140176542589203929341199537999245270475704724505865334163510258647744996795753806127988977766762331421579598492330557570492704930720478394488131109227508369409087452383531303865632101740735887869213664720819930347396572767907866883313702211719609181822670948939072483055255014532029468186697109425744693566985540421506932812618948487033617429701090920897506456734847957186105147368927710413900941807599243929652456340676311474655169219455977062619110458479851972392102195115663380760263560425770752739786679447090882572091855281261965648032828617382394336889784567052879781125805738446675087751265833696980794417897193625626657991477345218441502634133931571990059128700218002111993282639331563341521814734069834582017729603032017142348724871942537577331590896414816325130947960613556991120166489846868100491445991843660163700725683849264638727626099708065202516236942885144409161328632776476489812527909175792410218963964767298827393413290097779080800457526170219923515564493742321759482137080619890399414971748296438929771499577486996854252075328276359601300523269124724600355071299518960125663720037400539687395924280144905240325392054437706514919115152816647859849306807694282739939121692301669970635087136127224393751279965188762335138378923791820024832022518006942384493155458230154034363419954847706339381407709856431029379037189778851927751692205329693938116821034004676997685080043131892185704819761505413548620797232309768117607296819107832964552114237524663064908758544026958760650992634394890304971999235503816878869540285994265228092129775858265909213845012415873253792754667434765968898280468297643115142584232297333217600052102533811499282695882818450857683292913253823958714350410239083626564348067561346654002019652708222370388285951701884733625423810664561645434705774537165432749163134510931204508023975449960704252599682354552076124697281014787443809571703269895384431320207534059880405070069682121252953681976433129951793255650555910590161225031493801459731585767271143264993067947517710577043826493990020815746315227203860297822247727283691065912000464448890591546780226517807931531976352225007755975738303486510384386898322322899599814433997811696457859716558025406970609790652396227558089573323001628170764832963179102548776235799506201886261691125235885070744912758835046360012718705275470341658288103157543319856893430728860117406275338466964357793928607162683819664682583719882204317507904063075699879414777585457445248931948517987557156243906914840487267252447162185788894317516362907999167093238830550895347117233988505700549085297939666512945341360808718846938055809356633095583849683326673299514523569041542777653631834176787391386534678353901564254287565085797958265780901319199267248726121588276107117827559706782828746721756464852075461058904312472563570435150010524805793025285664196453267794151003273938411401725557799221539139245225714005596828378277580421303554031486055747135405632073080931105219605884801090017421423442363081386784038262933266914802446894512567985394410454769638256995927838866178140898425598249026952333267810974745515372915294611920062229166340613495091949587118220638698144602012687106179412820886813812816355680185268431463411024318001015527352831913792795973701472741475476788815098455119269467899656210205163865716759109301688598439563095425503534234229708677580418093523718137332439704676745430843212585160513791953049183795354298809189877045914263187414068597175361474747406665177748457837846866042871772539544171696528960719296966695176482540399701194474196551490206315647777192534454609656799571956593986881793141321583720537291036273637103538894268928195017151025168374824168005139381313320850216312178303478267570934139750119336813615633525972615143310581992926983743568657628983694852011121831100331591722676433546088438912264563881761308303375813541412263002674534800863395329124530854328747941011543808987844178401011290654088524791976967896989940502970083451440916543473659861276384818230201333603084009329307365130776655728596948640314320757510780999231939777730648595471049526986132356292514008533708426925871587887872750868546239735333692400009175859617256948851695320044001984199879951359459351685541067957216136557149939328214789486365485525143095344700321565691888336595883096318518631564614528426382319247126949849958599985547322419942327148610399119846579786898164191331471837119549498440773700437730522665018794538558439878499915042229904165884545161400837414417925788328416589474344347150703250493074582555788063025507581529357390241381470324386900311930602572931264225541428603632130417292353568052373647823602805431330736355689577947204098123896648680573452703277601991801237383471418512473667842758346617846742796489639272925300603315782345720567131793948316657931258818277141100328302730779651052158983735210836711741654815603160845288134246733033372771357409653838253818937925246047358335033944361758254509937900014196519521106484909271900354357494665122293880442922301228217518697198746738929671097373038783474811854602319142783429271482291789481305209071880652017140700559845709147970448523728761640179281019016373098879890124071269395521110951479505298259513338736102222984525704018777844254323662431532937877788348350977459849378972416882135656951620627905840492990421924720758551007199104227674434494778606573370932022938833430178304191724737566477213513735981161439411156249971423917717481986917185394027742800998908253847042480039037185227672578804779010772255212878506479761243833757779327118668931721455569580442795814329283000122012556960871320222878274755076407565741130233848398188336949524834586592980693434671631470570499418041707942745168040387114167827906844002397291709519027486893641178740775395571384301172148435462581195383627869454343665609798669464612590347369682194049677786444848476246146453369330840192706653110165302035199412236545458037634647906869862048325912496522695314736694373458247736167801342136956515774077374121653302600586282997868157573346921538665142757973508426231337606896888105586095469946632917468474219381788316375362356068913078519118634597009920285181969467319929867162246301403345625197863225029440303084651801440467402893784391436545940747197566041213090723582937836878760191121517622272591851551215150024971806499552649685167297581877020598757508242713390469737362403890236447829755354143635401584097983821862350923488663197024030498897824930145692182407874681192253034924597139456099747509569623549646714852196808103179894323237802817085426591553473383560618148083880563611854549743502751749083231192330580493452728544082777029458379932912458305646908938783951703621082309823567033806405165294730956611067456434719270502512698702675929045661180874833136236211403480502288075521066817781479691767526735164533756076836352491116297253410340647950002101081974263885861828424785597709399524168962512236957003739776492637874114320142193258493428143408809540315470253494447641910223437130754945006251317061253827880277257449241514685464328908131000637442570519476576705835247839612884578813960218696510422880252166553564229877043775356939869751691371635007848172385385803560213390259422306098524445674710517011494555276107819327050507289003887649144532051305074338817903175990339334149503271817268783710169743640639947328527792378485728834845870212009815758722462209180861452290311655940702458029874174673875845554942105692245438631953052551662579367119172524681006112103356345404361087262750678143567566839775233002825977407994099166873148933648026885812985697179602449731663902669132158764390147518982718927101713636872359802147617130837066426634393310959411387235012272389891399639787766210393628555993722578111668448635639726089872164015904988351137711978530672811883581882924016817997806590818226744030144741651519898654272561449429430471875035880855800188837137189910979363954746432498619162368700617181150050935815911544125884725432154974401735171766033038411428266535429402903959095323087125934006276808931692709282593370209114320773876420590997959521845899931799694229754302652928545326538413135788473777427622731087886377260124388651820494187249299642901837572870696895407166478694322663484130161546023373894731255588934563079940549130547974062298519222025770244573924648152258003336214914739674216940500627742638323893902402332935762168866617862249604612215563427995003804590213338635310933874011745884497570767179636991974430825129885688514738601287444084130879432162446939214416700826748679686404301443786428119381728542328232958243778053678908477126902716029803719431261955578285219133958431310978949779247983747171366873368308399637115981109138506610121443428352090507488817246152717359387773751209497140065585266221770049279422676054582258813560184446483370858575660460152336160482470590537222318632581547940422668716087527873236648722304564352341037619059824478143815857030972038304757732608224911566256612168182171644427015230807815631471015195849522890842390841100170074416695046635095056424661607497965044954251478100328810196033314550390199616033532303379882463878901653825805113090609449043913018082915675305251285609081106177537495177870142970447115380304260045803779602388886597994511316483330210571048952904709770099962982137376861632806767116012587786450857861073587121026050185469523957305713270840690580305485624488503813379915256884388550418933652734259580371248679934401139574243400687213879286850103287286599422116283005638364980281178792205930993458778149236335414245752315502156467837789856778447691243734804473534119433111168317152448365897094976574484079707838135521966873969682833372392260878769924090990155624074907105133748669785124067246400868074852375239277270819295708534944775878773543333969505272995771043476886046350498468853157887595578418236438552889510363165643442556833196415139630227784268148942054940450999120169616160173095704780928448447086893974462916497678224088305559941169930213332304621240608805579698543783912997015018641024646864666267983651232727458191989372420364447409150606389872381979350512823991712172975187485006033526014976336484102343571450503136680921617644259708631519341652394869575789684918356550786916448112923471249278499686949496969725890128288293256188804720139528380095576639711324675443966784447448419261261758957171470859216604318777972344407367341837894126248399924596480547909902981705167369444272588708340836526078092883884135198227421781874734023480664456831363166647098251674508792083932606210291440358877430697121869267602035032339533777624236697545605085662366902115900620767001258323920899364843870440555961539643840746157114096005608517430175569355134914764792529975531851867041062599991950622615876381942987329195461314860915432139488463437652134582494776343113332566599528380625860604300014541190475644626034496145076610690092039958203912352074554264880957298031848819528964742785282723605816163212683382575205822661080683993159823069993111805112999117743483756525419013119012391328560978326320732622984320040261693854523559859949074792479528540272196276635077860533352448848473966892033832405953606591451073299331356167507096264295867039911523241037522634452840274740256454036114223217830300557185515047739174600783676492412497427847260687590570874098582139461301006942339437426024549821909004900163104537357080609381813930259809948755216540403581697096947856174518859051927093537347925568080947726331596527254036094267736543752831631448598650344484023601359432066930038038637831498628726254685447783208828589840631363276613163552742537302179805476172774260315411088021279464760589285475170161055574793480500545917405842161337223176184017832856134197777684500458743659082371554078434042796308793557567373304174181654148493743978122295607050869005536659374735990122265814956057664054705776351512709466846849802592128098523739279775572505790445092572638283894163133825970516768734669769970984585148513068161341270869901053175845130096914550392987487444072829978356078803923408148181022395027280605577285929830480053041183521193931862092293399006491191540610148382349503153837480196412964038618221126105827354106551590106484611503297738307152289408318749714591355530207553162751498842136039939092210494624831019646189885585028639092267327479817589158121212064421237390492336830713528648256668073243472336993332870967078742648851691344744388750286888679775442911502400524621964122842453783623563066989325922827429802925632768866351303758598494536709670948796191056722713011577986686136036341760916663269275473439056525328020158300078019551277761225986683943323594360782880232813770825212172284932493173240945854139465885764700958250190016956265714555439254773704487992001489247165685641259958344537011038980222225527392261262087952632347139077645374448690239348143295225088297932432459769570799543849187493327386953115902860701846086208210319753191763338882189320415313760317192800591215041641918088319689304331147229324926574419439046928864152457166691062754914089129554023938790963175717840794184652275291038921062157809549646436068310559591904482332556645677502719014785173635787764752203838485474274921010786857833058732505617878665029740396335398628459926810713116911298237613200404358414523092508417346481579879877221698617174008896358517702862779849412683062496017930916678986841226552022160262206163644558299479361252500886925934995697726246455132769658531091622134926591471233433285002057782170892556480640171768099410788598133626776816642094162937312172246010188625984515719951591731501410002054221814358642652359702370013891374740477191629965160334925897233112539950408196217469349249708275166801226775806804370078999056429420747144717032228006258435020042142522673585510400565713930840791483967748197861602047248708323217708397883486700704105715083266700423622769239108233022650209167052143251524780883561474214757646753222523605669250297012470878113725778356946259088776489100148186003796915323512524168836330027118651519987642641310201618413287955113399131348447276747298121937274915827720878850221054069676399223824034441548074927741978930618723543352855626064516765683718182849624004784798497901052565538909808164426395225711530195161693786050388507099519509143360201594235332563055672658540007695401255539273303085543532208386352086641699742753278704657409575338171351474638594060068127343457159739218458133166330651019177640490024613100308562956028390112536258607240960302797379638142111245978387044878277728802349972517478058860562389708285050494424798954084268843650268642920069823586803559455711909996374085296408409996915033289872186090282973854680297989773593765705102878954080161485643433060419807604581072137453038318254480291146948217801191627494086191075972738103103339692593099180528766313650747007637567071966412611137663880716462428769025353619713756423656906980112245957771589802444172232719044139102807772833202292878038608460836262563627762313193949084889707019138187396436719042805371687136055533454878283027035552244480642103203988275053254628255558939098999749416029263784790872662907607381947149722926571650581399542229681363221902433337870277279173674257733200798171327063788004115524638666904715812110723414714949441877589009154717139646499455002971518145761458118517481387088722846044839372062933858621289354113461503031487634706964526199075505270386145452951916088628769331865465083860487628035756514146512892903373989651183613937656361282575743682005491242969821824191991442067656809921646153888206200605327954086596216804702339110517103553770014801133049514477784705962673003149133011773387720199008471187092766797114341004745290512789208085484259962166518245353935593187206562468277538692605694256749349031042927383568548532468656751550947079667914053678798189370375879321246917378595445418961485857066770281573213692408921385090433911729210439528342016828833541808521166678129647844124249041181671906655211496659723932345690636620239092690926486528037956185700618365451075250049323285126878182940123085282674897170140715011028921390229437647526449450836684218300765820285903433384831594697789477928125090138391898069722578314526149966387670199861209890003953519061084541334133421886431688487677442358718429108051914801479723603167888131712411699594715597141037837711526650234530355289278616170948740890722656819413696464570940100741488340122178670832369208464321553983202016551601062790015725805417287266529701346115494397932331296521847018651328939529186521534565158054159885464788189185147761972726529017241889276507183466573412075274123409540736876053132057240076474550675350033404627795435676285496541198100472487983056871532390965173278798395654238305004625425208399109402559895875424266230839911888407342985608304815327088972578306264342729811015235079930653058789304699068232542782411287130712898868264254260327426080868808634239757108402442536847727196530913887833477284330560603561804549381732562547542862674612091100147445392075382159233645086550462404773481483675174173738823693797410128475750832863607817904394394993392704839661348215340869826799156220276795891114648954916737401030062307208809913707747482169550424508875484007266317835279012226227391335997206450888139490820679790809421530030847902811017230657366227234700395208973319510275622522267270607503660091664861616097291875452865080459042463828700697856377789809421897002351327539975512257794483419166903639722507859294661449255076552689696206923270941814820469291083026793785180413714692051916078663828171894665089108380860590653831270935883665774768446139194799498856489345712891790757806417213369039139438111369873245508881828200604355204375724651985278407255189523251438438137133967915589948027927966396757942605803746372348645738151263367953174546045248227404035059285673152220384948314613101817087732398324225081859090175909127437149725848976703275411971244988698157605266928527237018717801256975499945966323249975723031800019073451618820377279010342783888277519530897066067947219487272149509090512913663058329146012060250855582639537526729357389156125044744449612526868995384566867611961883525762948161603721946537657283393203887438276819360096033604415503760306022091908150472431777786210414269426634408606939539969081936462485305175860438109691756387335100669130712642518391592780351229578447449634406192728608740748565897547409139075641030385087613138102256800317934772957214908945663182196094300403407703871114656106905175202765961602516530662155210609610749968972409475206672587984581653358896430213182005964973984577643013927377746394252883916677685400078069469705234390462087806707853503037972223477689547588626699371174892287914888785659315259604209053135654026374042981369438013753979455309169083576496218301780852372796804906581433318970689878578574342048982867860633120015146865404719570222748489518010340976308211948197417862472470550944187754403276204410734772598902182941646410750505234479893931955492819977612812735375292871719927156693648378901412790958706010430069543088410285279779185305994207426301387053881231914886940602724426840164201884941015810211568440167016178946553124565836448694842632401533926483689367043682210855438162242831031096902039405422877271419389464466435982902977480104149707144804452818748657691927274849663317377805784049981142585162630332269145109459089914011333133747489074673494894919178109943743030037812873101849620829965857651120288011140053267676479327169007348184314415347226194044437947641598627358453034251899041013275576049420127652461790921323156996028950182624478724352359987497783749030475316155613217957492252869559560679282027196342703069934902322756531603094094658959804279274848221173086124052990800164101395877119396889161479021313764709312055728953273757854807471250035395498002680621185113931658112267755097597092793847455089087865893321628965678917288016781899175518729336552447856246490253144272217819860619747947023060902443255292921438272019402535608163790472132901614925370318705297738459324843844434302872458633235923196820121909621465535801608310565525645937314139743801712297936635299006986306965884300875178485641281917938945773128306766606291206350000912647097940839265498615693388337615742476003772328401902688327203023444020303192804758935961288334359461270866039022965338313364934644479944664514898001857330754244332014586585308538589594789210106763490675079885639160695071245746901235642705038226965838166123718238138497404583932188770349142976723292405865654016601035187304828671514195603475154647351158311125640642272692715179452139324224021014335630515740967042268139480181027278713521224938312334164263038972011506896930625319326466961895562197735904938184868179374788929599991681298548230154857381844961730469977523629432189605474621950911306531205700393192224161679521546833250761746076576211603383242485282964183160682577815114891004677206068158236454738385806706683764686130757370872216655415060484989598667687480444950716019758540645981933856255032068319255354870746739336014967666765106286819071080002360492257993499247662065937104563749659300298190797708975297981943933475638452353738263632176889520313205555863807003436422382219928690976818403685374007229188872029502671972529274346837672107286277496014314279838651524762747383966412445653628095689032700820996270232637901790913775099622043477256354962691477605438622741522028022633819918132359544240892637597781656194250108267355929333927732562070463138023483275832238579458221682472727699856430719683650510923475590336262889390359188372069164374673422013921424136442680718543588181224476285923122950134327242531416186186470222130433555747827752280021472414101212131630536655556717809884476366508830913519927251044905783749456047129795680320958779935125383136349622195968270001586945674128355452190382003869792276248339266086966789744609066743312484402460936446160524367629139474825544917881467353944833710306212719655539169069171715310506787335307914086480220396190666173608142106824001090044496072696346062905540165796988948402467872603387464964110282749146858685871686575732785980481328286129061177627572170839479361454716797463159004061736049048404746631004343908131405538281308207825818488905813701501355036301844190529592513445240334595766887582808170562815769590394442192319045580181143524296539253916060812570776703292585801998298600766427009097236379617520675440850025803227647726765477403429158939265507730036077194857528508697827110063177886270438164300278205789915416232471908451010366644525864209009963404786472807797137584098634030167269561686178940755525579133379524997318322528457732709844067531834797837579926935295024121263490874321201806277978775122174347268223392977040778779134201985941740375569098744723596691814203683962970316148336206497525725838102607350550147545085141561251995557791675161122419833639261162116665611510311391421599205104207857885057982782539178762805305365402672949046040737101780362992752397423384386861986502632493240439364166660696850480951329285647858370172976203078240086811365771976968658792508408985422792825488736579733998337852955899171211208088226759282893088699528657355594386657156306322221411066733612336663223233352973034041627084938480829167130681101943611855564780149253782002839753240351336613015478461140097105115178014044190587106120955244011746151805475984479138517272757816058664453372447833297941834164408879860448148404918632226201833698746007729724387530912327809450883525071682926193127496317926170968354954464111747603347678291125401914972909537973615891229287511278811754558407069932592954803609372443834172917329737783329197144387845830183330632042902168767645054980977384846825324274311781112513178531699916452104456039524421717785903242015525556026150315946676528755487713064103072530786280611640810597857351383518955201687825426492807800968791063819012000116418680608071386010781971839900018576615500094444814134186916414675683268254624281736590818643280008961725941716372878695597837932558846299338225118638469387482863735567247694149860108316382481739461988591166284751202949574879203809291213462761634642330866498501109724979469072727783073216165487606257179246690273870803359293539615079716833174196218342241253826682496172513488638872478160038286615748972442637151196348205625830842877141620612864968728170387812212025854092258205380503696320951885943636840363884633959925291925357450165870947612670809417922932661307938645919747115468801044601690627176914789755828504410001643359476740279254365388201183466240649222542570560369674062501790728412986664854963615612479731862470483699606222093507682052694313721566170733793728203804257855168040323964750358142611211452856208691431080930727940122351728134181583188974422353233300775706351219708657669737766996430930804264282565574428102395106866918081907825941808671596596736593671585380478157011026752965928621366700969240016170231510187002215690669104810160769135014659975155895480131969587877614027212048710298939783729305463732577227766930349113888714843061352431349256329264320459971835252643735957238604933697221518474501009398502890723155532008777580627903579633166467626786526569111743699003469801236721652463377673842650579152258674077313044916904562573407527314789927694244029319105055485867548926470034940362692527407241874777977010769952341946953690346258105078825587652734140875953388210666778506583812166789170889550008285009092443527307102790176751314141028979534246054517103302798587557312036917841705924492461481178435457771301543798415421483610209510238410118523639519877476581348882225097275392678948442044743734733541380961266248916949942373805530206507917615308721675079715202047862596019242178810290382708551700920960391531322761014164104513140601797468039037931198928308286689850081624854861723293085282125450563557126452296724575609574780886889674240604500242233640929794670616203641420715713932821453800350983482781796257709900576103121607729966998170448842607801613881653909092703941940348720154189842260187539360308624508030881071476475454427703908525879078209769958774160895679195266066407065137729210318035337161449916399596679320745988933540840285869392932124021180177699867735718115712340184773492983878598547027298397795804854551370280398878068233044584996676043430708666438483997480186040919591757908939238397930223545523703477741529472075542232076505131748389111602089653909928521354991317857406774278733651875611457323606861341793165729099890042621788201058180612122646946974578839191819059435731991552386857802872921099973441160252540411580385787578883816352319154795744516987595538650746610588268195064223492428138848498602793480619192591049750980026118257585562572847077784406863064615026398819118279831513921193718280641102140470230538910442349620338249033522522774143749053141217870340668687763556359572737003169083398985749673108007669336956727936103145771788869717096795058345887518880007275371560183127842422448286198724945919984453836413967669412142749147167473443744335175843645106263096543492729051626011300841498950811183466110624498552733087116839644639751158768275288104622885475635117309651710379764857264302831433530184960838145249045848325173743997324717601202492210619384332285468310296865357933225308300671986209170854366870040715940169254994116042939227286826639484848320703650700968325977317705438425611689816922672678938915458662587011361932324799518471341174334352575842089765818700978927851476298086887382499461232254047537973359096204920703357359847374602381080177378635284725767543501368045118087800003469347643488957292754065451590991968498271432021437065422275343696269501809078910838755149234229953929993686259725450116855437237782603752560785492529440153073210037762363018530118809032541940275399753829306564172935239848650626331429034730672698803203624265169052094459305494720882159129982095151926518299180128441430781195336315631570909465705719104393523780194147870269888317255480944849686377392883860280588930844730151736239069938795706160862808057221887864793726341116598790428636279565947867828357616671384213108588786978668312027829308104720078065556805806922099125675747746768246828784637986849655442650188853337825038446033975951653537224084792347969351663538889892026393400190789013017554108798876140697323453862224856678317094658120370004295017653672355922213745129281567764832819314247086639858121805736659312947030230655040851230970469738170333319634168980721213283432366610915267510089162817141015881496857179052898913631362139574221382535610527767154134590163958104231087055840170672509061728564302811912769715945488281730886589876616066706008187517690206044802633992852849624388158179396901064865734181548868438922600983431127662668698422880856530337105007408234388300674149115977705568233926684924273619422131455829874552720525333203737139778799900303802377517140247582772115913380018984627252364257187290284541172790600796798660627392322529472611266762652519024455502360835890039044912387794911376388755182192339523451253999858731471124936494680962035308126929496935624382497083543024035415764263721695158570278416726126739830338312309691287412488371717429414703694215099754508937736498964047534231926794932327426430399144676293662316642796226687087665558211108772082631899623611541113060286372662094264719664514500407770823919527194502560207807285041550435308897521929971073266349605478169284025547204873276754062638462121304788783443784376975382962916050334885846561042106095262825939321035986892942304893358445791623558336412880620024856942697314002151828235799091763833629288934591679285566643726652477737353989649521310236221416631094104538604979529813360028092324776749164625044191949927468394618743588713091877530248420713616347487473938451879789050281344577191036516220356938775012125517206856614505740130093099363645773260627663200387604559317425804020368024975474528401487777093972592725805043869400645868436364566123322001978600775600518482713427807545560960208274920491132489210323964670846308673893566991902077745148009361565802283785126601873371963362346669652916242384720159027558704156025059254568857063391898119375157766879746421765418179684346546480390071099303719165385948846331757735800232702294000584607771877619364958959366314026576232569672703827768821059702022483316580589597399296399949085562883572074787580036753215543928204282218748215311530085113154043984017730684731730064037238313665793365509056917501524786422920514662675387472964854588726785443879759957902626852800588622939403480258842695409566673862750600100825389671098541266853104477596310498207417726711043759225323309921427632644304511093329052297145874328138169684560973210760941621457804492445461687720065304741159734050926526764572620636955450370165326557295655020067679847587903586608497415457587060023090624411322005011478896989009265985168113254764910339317337878720233754069076792533974733459248493010628248662209126913144456840659833915566271714006372238066201323972190917328160730792779403416979417813944640787715588194438373995022679756571207175534226289488980871871773834118282816716788429336712489190401838979662142765888618733758644574884728831841465108459566572615979758761524377492771499190558120949799087612500962609927476086105014899475817320292156059671238550100632056414154536780846291528964803766875572530519631950678485698614387289650758983022992846888350611407199168413032217979867842730099039379571396400372714479455445239522822705477739167835189978736661234162994567501934936302228475379822270355277910498093881883730329972326978732795583622157462480733722917633168189798561288368323095351429378637791026060850994627933156787874652550013960882394064221221298130099392293687635980389557297676963522940320244775881603486441237648206641422824404613464775384889511689201362195068633924091550529778930496462477942393749413502643475547527219306940607635602485448464588798373621207162599596269600578609895105638444305077512928266938272844612908022207171963323178280335526256085608122029134011794537160207982419721710113249977275112854861730884743193421590304657950580256555402867044832305007278867413171405983467379284659799062331913928055845875127431388828223577499673572171344348243767398673031509432550262796895451529409388673652204987676028230575973537399172171045661105233782517177684221570766709530518502324602034657864301311612721180634342471994084029652630022480083255330175024465739128059904728538743189058381119336515173286908362898353460398164285482992491429535326578573048193377668109256721135462850332565549099650159138899986634879154753456219799887107670800208653206548976734023452662364527183918025611414262002079970203468424670539221295488600562477962491218438467816497012702540244764359992429243590432643875470225020937608077421664804648367412750119003392983374111192931161361120150206094434617701416907626420598504283004034889915891722837041310412377812780212982151200816238124051242650830928569026826386667823540062860451757851999606496634530010228082047122172781733285175582901818351326314396938820037512470914982192377501325928966885092399996625133876958162637109313920726552090113471123344279099842156386338757866537430617033582992846924887605335927896332516117164497119904872494787204622869046711691200181082962745639471816244657020806119358546661482213491815609712021480058779517738716189707428153153871977728338352659445435650980900684642553159942915044595756791626472353403239791728378444459499174312352787953987290211365487656412011352964600675975505607353622892529531166527119516167881381652299401225370101496123518782926215376824333083722582273621718887582591079307353273290770872356165727398753918049025116323549392104472200380181966060657328787436024108585332277701445499696187756587115338340660084900720214112260175380786852979125916731850620808462753834381731332973505551679734683916441808135873447830986937179972512525968654093277565846597158579451123697152525549185090859210392282236928858862866997462350763797811965451461191643314767547972506807269020055802306775633477073758730732948046927083637203937987771181026303771741660934115892330042343743115417635483787960464549256767780218053570407549332399692491605715734278183343072438849647624390703473339658568853912393365009734660343820163496616554234226110923302833195297527531552230673679212223157958610976440603620288391527106687704555923863511209506005506654003621424476373646169257201646360634545782680154721195513491950589339226615801846317055006847345892952800744330643454577991736951527416041001797937033096300338275794694485985923867167715795632479834037120015197009163448972358181032311065899551940599369665238961587986810760677241650643196280613146548369738150897309414619981143439531288280179011452672274907774968655963954574559007456924842805484648921075395845174675215521866651497389017129208419131577652869474470258262668887117708199320058437000825920664772878352967073733358718504091707394607819126551523237779990623108740638560098565696313778131404999840542639328055210069845559283942032246084159380340370647556910942806846526765465684509598030911488922160957407910819329101723709066417671236060620494931871224764330784650844145096220096210536807801908478184852244373764735601289513923054821566545951868528072162785412634902452351980618625840513015630734229697994131329795327422087804789171393079656665561118968321809999625257184330147253935645131306507506490666703566688808116176729110034429799317987012203588177622680272440678921784238333494417599102367071090617711228996071554435762157197162051676274890024538651905889518580517513168847257191473360168277591336571686765202516900635410145802103527931240645897007671160609041713701341479829299910799259783688114557196846960613207769182190677854515239652675649925312080210123512401494637417612250536567470541465691410451170897157319258330370360332376468537359928079995621071434188137198716206554051662682287596713386634499182837187257849900851057349838701321879946667348509989479119989258898573272985963218037051066620367483164459565868800646686515022969612832403552639518004911395477704919485824389726852856940613363487782821970053082972805569962774041342837536812983417203876087587039356282387406153488528452213953441812020998176757501083863612731963806684631627007590457529389405718377377168777129841590645087612635074917158621463535649052897445676114130338917032300451965623538217518399093659768613777008501813371086576305702489845096676864945988528630884367493943580393985003076459973508649135019376925868744656430419121999750895053197172812357805296177441857896294983435108316084799547253646130532903057289669173401093861947722852307950921409058828008995933168631438440521141689093933849804992199121772380374856856014412316777750875209842555746363534454253682819657631188649285329182853489980686391319917109843266571632856815642467145077020158974125209480863463294957275633300759373188191044876318369170599363712443717852402952885944014553669919025542254740355949253309679825588570017528889103219942470082428937777439754554670377358138234107024781578520949514298246374475429183541057380756889703392276296580217355125825768684988892768330862001208826646368484462986814826796657966782636009301536544975545528982613197189438961660406442773823419337858955568345400600898557423446458372166442721675725294286022847740237433360273522366674483509858360331514685762027237134189979063338124757964347808338559244013491418797643185254860434706640614949950773225317630076911079287143551942288521966949284351518633259825746720659942192800407213137161629518279699424614360769832237170182566553291568980979506461676927497862783198685018614736366537868778106625551544217205260882087510149356198730760484958713863540545640538516677020574977786770884350019495648211541863051363205022536821292733484037389536735902394292931475355425276444129403294140065299254779528210713717368698116191931399383318277514035942953951264614460195597023456420027191152475093168156369711389899178711220783317255636971803369895363998321493434492088656587768200392407641145238366828232065407688278696436278888441047268985680102831695321377004668006191557386415135278770998336716751413326370769888287884463896014771035232919579071475849784932522580576491951516546621001839893135618249594861054837311797249831310509724252628004913208849948205330847203163462685604894805523716691511192003341279023178280672379567271080228593247513997314071509277949696732679161692879332716258085328078698755093705458266634818064006895601515548372194642896674795608113669893500806484438368710225035123164988411297612718421291012784806121288413237195357747571167277345584005982367747451049199103972115471419880342547396371286554261989299277819358776972053192665936355777978316550127282179109331060612200310033809586645523189140023652882690820971979507710703737913046116828991716321752499036234662269436708952832683692630154492110713781869253709559666882688279699543135699815723099659490500713645771549037520753193172183499915702811165366061645587096098304584679472099106615023849598019589211548831059899474112342674851850127611166839069360712984692588144795521857915719119113161286298192266728043549783227054654457685430134845726115972071908639810347813451447606339589497440342241095045152783241517059769644875781492444094018154172506743170851567298223908699794968880068436589030720005266174891137291067364914342715772492665478115619040623195963244471552573291429071527075036127709244207875448835363142229721923789256463835087738679971846125911734399237844907078444822790158985476559285916704037521969939564019833062934512405852867732823088677900796648829507103177143457020932289429383003396365922664010130335723397388628949977018314550207298185024126287057586364249500087274924211584095319252989845281476727919746243209898600731303523068263421976704020275471348503013325714432493194828378857890350873957466270397978561930120153305546975460632826039856485624904564504719053013874610415434164348543963474380330993354599092967560134297752365219354958859034740489268425164525706690654496619187825634895771337486617773384247609355867020403838991277500538664029621427342712414993085631567720430212324841330274712702443952885365338290059025046943431772026035762232330409788591790086713939896903621559657006282874828190239922607207927087462849685157969927308394302192697562472167344383615048993292897370806832652815009122579029618616266392941769775268411884304659750778194647805078152301571329780515118940594754540051282773773227288299003463528562102253708746673481692864457681356917005226511890791376711340856143868604220628611337809308532971328506758753121648011574989232572096529314132931844156539014374179873596329234461493530039103023300429962732112125842650370931220222353024048598604329464673480462286517769746564541633593167370108990908328147116476384666391502300097442877708766060887617566758302551628603763089339034973464639390767156721112767018092634153477474527660401776515312999674027408777179460672494338113646101958522155632808462319786265367224358715976321166348296832401504213986324606477258803013581709492513913088069737054740757220085292521706411618445983548860001542666709219307545148229787920574442089029374455828421166853871743640490563120083884444208848754163658954895985043106080940146261451337232203953411522904674088509967591035018954359103973976276229293500238810827940712605577740130294202476177655157402547438218834166195615545554461207226572719175311825598571136086210417935237410283814446805966457467869334270364081539283602262032442717826049114867118907384591928332262099614649748099168020981597007366706907965450159025031358834509149449780819789883592368119332237865539170529970546304598466448654594187883531850308019123702716377888246552686222033891311539925209307370452906171788381532867933655311750670845210409133214697070296652827270523137631559414576025362434899804440057177335733137297323835936021712650091266640363951548772938393669487714112506064246479148695660685512678438091635613839116036831584469859614253371872213500425165816126560810543027003470941564376285306156071448493567972817583438114926614791413251379361565914983588297756898941939262660430826304201356495834694970226950095925242874790962356756499579218361593957754951934132083368269798362890596753777948101017939253380008622395381414476485619831707804142589997473206383849961359143935946060860004511295446818663716591904018668187047594193909446854087375648476726963798803794030555449530763367405037649569027062607890175440683485456645499758780849443622918431202327001706259508554469273682412160140934855969993089617710414856688355841381593993220980573273449327145701628680542229265034115662519405506463934985502014436253853587437163316606195408216028283981405554005818915826063418906846288829726381123237486263122698160308334641966906585335128368573049809408654123342518400421899330975589931639526661928449876525293087498780809689835959049482407103376755280343687971011212126981721512762763234629953542899891262396381575869081889951596977465004828443129158829743901053988420216699848177368824971668378635126232817800568618540849554523352882297504908600247016662317201330718342740918499432428526398660352509940893998521380920693150175680544588497564766702074690050983452640742575192770917122572996458799580621162827422497350896752263006231709085058094005131695217786763345471927724433735892592120063852163252332228766425987205490846224507905974917458122506744959577790387717513571013994937968243693169030300881667657109266897235014377683416293297890161043271542265105196734405495856703274682710524014830139722662467912210669404197778509221797290892344315996832500819387188329070361266022780906970303390655310763372521673851107512416193998397752109327234726973833349981454173862046890694350741310914105164276786007523775365502661688422805259346345598760809608898243818494440282115944702151059412282831654390809876818111444109867308168014151742428936752156131308158197613958388186015153879161687705956384952461271593114111078733168020354293879794589668261631233478523328977872789252722001090976594778059959029726530042936875970992493139398783435914985959602799188064165728802149613020984031167247840045362210009164723338146362209818385866881489596419293395418339727496482396933667561616041784965904414268665033253940268133000426298897397468114756268387842419613488328607097663973145333882086971694827211479378509865036419918245110571786884944745134590248212141215188957851194078374631638041408436502879319801342886384364342476377354612341716351982504934905743923593613290368259438596685529230653607268202788456979588496292849023687833020663051113159144871573181884921510261020387164404675710459349906574367001329240462447796001301623927269758888144323208616725010770892099543637947862483656985105755124207624544483903320518845555940567498215963138704118231983068889418143617354672283497095175847793998653194198686926326245719012976144258979941177629750187931896162313688227172397866850929601268127398828025453028750981498516713633073859396327199172413862494473585542165715953218966727443897731192705759250337574655887058464166460626521520954862247496836255207837314197842966923605702031350769374858948460739745519942803176741267983163956323809663004499499584463074875925168462092980018264242509632780530155659594036245867406960683835946609443470466714514301119814568363327817600520567939590986818265746867976017109467162974803061419135153326055507673871452253857451142060164179383322133842685569947076560777704606466845291830083004357341096844320427628589539744720823454655732667973995030061001588455821602190990910121395050029370202158653112257616761583925194587428728095579061505584400481181855268977610070223282694882286028828542574870707576710802209951928949841213663510065480015278537740866308123768511768630829211433824791663532019471023298113810918589130897145566543598589515950040098606423958230801370637623079933942529112681471885137186301077255829988536483020166636454841636799881798521080008056399473531308390641161252248694978783040587572574573027538780979965911308874548038791905938182530317755166232236404555417186589765314337795227794119320924562903255036911963953631033454056912938180195576570024175762580000644730842295698892502048079554616681569450696457561950000309098275357432961055258156074490627774316527189673732425992009345079057075301839801017261999973600992421375837663961608812408116931301093423251242581370217001061966657827202439383554425288834957301381616665404088017866961278118655485264266131675027724471601614057043568525796251040972917280857097422846423095150072918868928116525739083095387481134209550154763086665634677522161768519319509918224183740638223171472585697011812307338465149444954835600791598620355299981452493978163183465553412483174529539960595951166433444298001219655158003027166864261418165711351108553632940178285852067902359365897715421883005999198058328147450733899725738914076997293633425614084617561543475879664139474205325078308630480651472813417163191832575562020112925554726992074831663094178789828059774865384548474870064994204519262983308470613326260616920610519948595956135326546457707830768745249039889313204269057702145347917392493242827914744872795963827749398962875658136600619109883324545732808228858483849213283258974165367337636691481962605797600551351148907010194990258949447452181341485530289768272953968191438314659853077500324404961177862969055930011474217731218525023965891147630850504718699529817056158082347259657266382415381556735053775529787834200721511011654717160241905087655708121250538399305301330309625644021683325624061760712690974578094739498883563356695179800135271209083199783842622781288875138342402906505069342150754866112982024724920837128696966713427581712953174202473668191695975873541104703495234435468006706423556097632487828257802894410932163011994614804781277648182973708227232198346501352230546521365675603259193350291011671909263624375307135473182979470221995830014032354524061547902812050882516146240960714628680985947651163072383759187074323946434851092240250985471696393586198304779595924109059222172878407978511165166673447602830270294717462679444320754931168492093169273652986786321421471437526981705127395131285027433605657672015071829337308580756344583484458208459057669859877950667887891201617595140841453081263764331920853298258665326144148653772487567024702380397917213446162084400441680624059783608030464206578427112204013662389770168644404132867384662471262797949841593271320149088122116275255232102354271873939960163675279112372772753647661262528434432687474212728218934768530610175070612523756585865509281536804015991757784578355811764793270644209772888790585386654746555049652588834336050265222161727363851638000944632998669461261196017079507510027948150387694484482695287104108129185914768845323511147343486907631847475537331410557219861901839108100328975823545895909668707960628579939828032850190508742709836383862093521445988678749898456404714173824875960657478216366169836664836600340699579885466751237720346745402520494639411173501345410375840034775510236859152967084737052821190217302108793574167401404359576919468500615575502111022613537737180048479551532315484412856745875801275063175659350397357302304877542321899310505390039789508190155442360480218090881786154257247932436296010891533703409987335601179243721550673465097094837421700890410660691995114371490019296558065568623929437243476762691450643648424444314362745019370660650383286576246951573967982650021901573007274180344421078216483711256900880734569122837190582192438455410713306256262472446482363448342378891925589888867505041292806505184609523335785652588917917592299579903055777087581910795792652449848105249851321820269369398564623929212575823372750380629426258696310235172237172626600626506687266911401436034285495336723592472346682188938383620499763877870460636208805917689906650128379833710674546369079811504881120986506538594735327673808573970564176812836830677650106635763034520007544105720471382405699282782994608918586901721886621979511122805632586474490713517487461811867357044008886208381811762186836422696451803607929998203214422044604450655075388397604358042724715570874479333495446136874409343731448884792664738773300200518863830244924946824192464632810317869224610086544907908797316273377954611119776225381946577273567722948178523252131514671934550919466319473852990428251894441163541771585325611885094659774911164866318712986197406513048005096021629579507319269462850319185925947921912616709988971225449500496391931565725462079662195050576750398140732583602521756720336488138839402370452067243229502618756799382660721343084397723137005418332437027771734096769293248753215891437277810674861162922183785383035222209810148164393989584382476058540615653624107523745443261793286268683479178475847391123708692950613811029643267623815174261510143820754520721480169486273833573717711956300570592609399648996661314768590912450359749680494529830486618854871529063324004963058665827476592991036269341055149259436449838591952892614475631895291504868391039540268553969605522847233209383010148207091410504324054852007779292048124613692313071283560583123113675507261644102115667653345501724218296205742292038577327920774112392020947427906791309392725452431826163271325666421636613208047120436878510327328315688745665233633074096653037716476781707233423804322116710806345285874129748022035250909761487459194205398344736572427145637155320253367587859469381239139848737051503887979596230129451551967176518954381206405117474938054978516507879752629093619171163821351956651733855038942786569256554728488006806811916127948911640016011947415124256874860233911683589362236621314598652704901329278031649778598404353504936580558149848696353471327266456189922373195896880388215296219112253506125975780869476411727967230357055629402979838815888318143969709339695694482915201068751846320303057303796178699407917615957177485368562291739696533760538961592453395110636206611365869593668493480497079053896464777589745972726488291323957512012774259952204126338693898103040030243006625102775259366422983978273654481817562193165425337047367957049564993226886390741192957425626820379944855576856445666450620826923539694362372775207135698338661258730046977801971473076465171277080511567964940287106901399866485890541078350666159571021618633896159211246422701891725007881295513573414133096657039661228433317776791686088437013807282997936059281896796188120250591704469010660304139939232039372832628300851805620763191187604814269110971100908506430404269867879500477615837309113806209768680831213399769356497169731405298325328483962061836438935835272549012160394866138166763885994986431486363284624555051029483119712107624760799368205562925684913596611431975524084449470525956389370130655834157727087482897318617245446618754730027005060919939238338054975607794558221634763327072462248882541260621330933075087561782793372986612066212674818958382572092037772993885098168292253064686406290361782448635644064453684672590668647878165861844794855442365279114402618246517761510824630513211811633866406907437225330978174719347106579515859433442273018191606602217439444544795333267045447978840682921275661432847028520215247872481130662221342972836346114941247032708042030344534508150015761859517392826693338980099784824916314402030090295034576165306945709181989563862646927169270694244668650970715345702510884533644206153967385209017613452434201072503432993432593044414041176016764782709181944672743693390183192551314356924852550084824588844344797875739410605341778286372778965631931456348346775246828895876670707697126063071085175599720305136339183691821070336921405999675820006917362927344434548064628186304845506992479415633858135192138249496366165552462745226206847356254902101024123024373328758021486538712232713338952695615837402708631916839769422941008076414068701878514192454728416143839120466478071375943588054132050313105031651846635351279982179279732631367934730771054258567324220327993472008735320586359660874816638767957392255383768917150266053803007671888043276464559462175047383610857193803196175685223671273176914797079254023164456787064564873832518662566022096914845256814785180924870604307350876490724172421029018410229873772839472037561047637972627525146849977291746586533707528630998034878013984621662044061738976942634772743108201824218262020720051587820673137589216805522137633470820419250726720697456197348619594437161023675419976955563683636200349049545748360128771371222521502490820336520940145662666702148780958395080829313490140412348585864053279050114116548104283024467030803286531346335603757531242566157188571435392420091814127479434250152700079151196037554210626203353916642913435239959292180833469653614458852390161777571906653197495586087864224416326023703091228761507478329258809761320837039666458828990743036413262277611927233756781868644568456905319376247993355671440319916378848715424929091538717190530293701365760304797054717995067843141319630634219103291876354959741518949170144870118787287851034048367176411131405356778527576636772411576369440434477099873635797266090488387656838666340196113183267502127495454293980593541239927434388014628204065782470959097017350819128228880067619818379908445169833066919305140740471884146956025092166742154637514466536190936865600962357952308268782520009959306500788585098425130735712824057169872553551305753917608677773095565105291600031528082268339811203673333881523918396877362675504856059161226339699277772241147348348486976316274740895359904154296341872268207124696168651548852565983697192027104688301065797725682769807258595295958319147738463801544003189003255473789776964074575507445855527951009434398440786266546256877462439209144229208098989272929592261246691015271104147027473141748167099790283793478656339455419893068270980695196273547938290097206356864510674143257704299975393839381764929835825944560408333845894185321292178641413829515344782410410507704809955152146310048088980755578955107545684485167993072992483739763960151081590404785641543645039381308979062090049645334880723837423582860171657256841546676940291030978040432040564967305465889240988771274137914642852448607950999756691130472314009088353433544613147322859393997712083463397264999102170909469539615200676876825098959317826969653892882280394217408893542886965565502538178141603789308497303135726812306762826970200846887573048487401071844031520400537431703542120919309984381654275085799509972047699075827710778996532802762933238692829036231872964608470992131793385245259875301828974778115523494359746350085456756419118766450890809671597606570987926663667677965297177047624351763356662839638293339165416896902885283053286170732204770849934744001116162990822691531534689208623480823917970946145814714025129775637527325107968303419543637619782147273908399102827879087301838591448685309962111237109958927260105409517087400386752637373399229458772272515811989633612806927989625973526482513936782531388681229799233309225142812878193373155604171460439710629232070808145294925329064735913742145253338544430501463472779926497116028954576543082933002413152233056934241371500091047491407766825103885112319001169310677920790102633963288023719168931574212124089506851706250966123573451599330910331294790935522331794353238255241593758014068368248522125653074568220509994623721981196253813294858567783391606653549062023711967786288235679450654950421835262274784375364299049428791638536456320271006513109182198534080040261815061044204732098189674769294917788764497764192517066441545555356349013095293568431262761207280796886422558291405218802924433054695422420687381467137852790307054350842080194045700718724649136087230757347491903077881430144161240957731497363002145095208586421450812241636913251790758025786085486539733675308397816974418882605662273630177318402577723925043569685311642916720053894301473392368975275399420688028629402422644479089759898253635096306909024150933461805021837891996357190689711130940614360354991316818729645622695187207855459166225973316247875222464157722977282147809589395866804814594030542775510478388106648795618486120499577381272356572900682130462949947932783098194026997529807039956237719039637436833511283126666090429583974506939778089854322091932179825508395898752016467209483381176657983100997412248491596558526239537069565550785435175989492856957722164036498076527848918809500297606139583735203676163020089600715071227946295426282023337653641163946865255099222510489696566109544248875230495169767152299777437746530561937033170716694968832581166241218109340575804787943885389786830694244479319853309157805186140803629984722930192976339650607775210063640061704734224183222090765267773893811562358660316233766950216436373247812557314005626043400432716002640886852289164141731796091173524058480525324412744858411640226756526539768303408705580849520517016405779237937064866180308465836240316260888468827866605869420915876647856478886955479841184718538314295271486867355451018723124436187562165158226143764436622841267935667215747571835818034751394382488577015840378881992190086729020470871439985234632183348827578868056767937816057737360760561660180254438361508724779397135685821302964143746796383478037813806728592662140577794110743425905117075567605036968797477979180237316063080563163072692884173527459337093597470947105528526950615191419167086970680644072388012651732511542708262998330510115925510837137940771900206179487190455918965053536904233878668763844853786392993690721851492250166946824101536388643291788639520412355698026889168066324721415411636299792442251529046609102712414251757813279637623698286268350806659223066091652444137093474289062534211114635482341679516706107554325429688781048159946982467103047292762580871319213418742797516724803551652854609583775764793234196763516513775435183965753009976495896036334154225912146187938079500099379202127426915929226333472346316571314587223956371920821235353543355838536935621800124822747011854259505346951566627543042150343860442953546990104175035743367961379008165470652502272291220010842033933457288258129060146636544927861408798801141664003981834901119289886387270505551944392945072879683302274671478907143193665648203151482664198460273519129850932642935249004854690306391621785540359922496614687850810192640925283752512157075970541549512815803700309920382685776706132599583259877957448608184376642431446761310420989350855096089042563612651645765751850446144025479000807530145954564903708086460088885304666484620341631418728528928018616645150581788772935883890579377899983971196315380411729764356963612099490713269476543249102116835083375878874488895860218079350228976283075381323351739859597259482306873423985152456541307995614806683375577250767980710181507869605282761511078285755943939519570833596810306247654364674650624225362226036548080893866506512421734312897273053203795690207930938913219059216184381960013705342218790763465978508814151640359128137694704443011033017620714653601073026933739740467372953510044942812394257522016248425531386129006977033536568316135671433842132866651517387374848069075064261160452196575419587085715029301268464538020338280673518129871947503731372750365873751124984703970602081396431790780637158883256177081092104763752887231061486157579030558519513802546102402547768432486366408805959825519670790703537226101121653606480513277784804533641659655387214112035930251075947293933156184132480369818207329038467760024226496355927031031670715314083127895590965222058881577662830928559881973392826945087060240983433559859130854361049149857876405466252020669137969770009776447276137004809880572149183921188877182660359807843940280822591344570285380163678222544216895234881831212419198619489067409291975488845458080809657450308211074213763611929815556356829109101931372215317485538293401587318291884450219822323050079982059362865696420414663766873291262388480752252519682772864660356423993940904254514727187362829188450029054200947642634773492807982435975265083158285015978455988231176456306346614293509977743863280844708223211937487458624013309343829079728839116279933158412785353563017459405273293897455571109254767619060417366328142888972912443046022078322155113584414294210266994771267645404252942548502823494115302678304165294169072166586102791233029772859476637694438101680430070157896712196104232103217453542972896331371407514002463727814219654499198249337463688491074081169698804992903647665760516218239725923049441712679167970660336105118520939911363090770608820851266345862403805409368735007819793901529955843768390627454759893505198522164238877301677261226932018294704790316575816664695603201891577679485511126516439037654712043232718292044213757054951847093930271707949055269072365178546703774728335363340689664847169373909999840432003781283826479547812510766548604689952176168925961260147457371582778555803338006082529185088348001445878011186936573716046221439208207215780600777834299729631739991649435409530662901002514324311635641452295895134501551746461922080415594686830469114693111923426699931808286776417648765119556867507924196889431276220973780167572915069035316773220767748939052459590809904174533277600173614093952947804766181438443358810805499351559561693958263317372002596846785200573918378443901839159574113696626344908734941722514847433509188155199162443252823779621986271354505722914194296210042667452789088968441276802172689607950725595456383442663327894998599285309248073907932379577263854011525538097408040006954611859947948915354025271575403256231745519661924743962123876513324645888295398939515972814746460755561376430091837036503182891458277190993202686678698264550037973519598399420171210631126824988109249720657393509717471994508667500522292695406298609155079530884256819019854227067438549653208712873090248606724488210195911920746721617551089839786659132691774561785958898395314051359243932004675566635530470964369564070586986019838398541701046954170121578210792889179156473337484801322655670909067067495190902538161794891573157945387336033394574543206017156626751421376020798469310374561736977780583308551459773874003765045356271163974797695040795382186468571393830058663686912701697670660947165714951456794401728027195011129435368426915563412445204320357135513432751264930291374737286398399573255939180181675631464246439741883987929531996819195368177438682216416974044639791723319514537016170586813490954919983010589191631883633482854707404356403959129719829068217894732480345678995161964805565482246430925376654496428005816850345863417958399896424978529782312040950878395472337910456002345005764702581426474130232125496584950075512322886245396693631259482315304056688040768262179050658423087430154423570225524721065116354664255644737325368400997750185792024588982461257937291268729067770208670142094864239104628375242483445584935004990593759104930126206616434073200147336424023688249871484244528832290724841487018162649885305869196585736807092512299633073357506833482011042130345397104351231137436706268678041490105456697707932087269312070289745477939934441099149537579613835882167915747626725505848187733518067155266018523002190070260709612065171945697481403498185382863964775811115862935764842520202233032197160598547673906640866872106386085143025836289154566201970403711852081113481892043738275177413131209756859602102470069316380152653925625224252938934013833304216008570265408465491580043325393994003350769033488380372990100615314193607411754190882888804806856985382476401141785407452047103304869116091517064214801008118999328617390218896809053631139728779423567323448501058426494135265056644457982680495083509618471916402245151780390752140929661970505663281252334029772944553492307628786721330587579322504487679987628909681434905378934560868470302434305483324403884921612667749643212528238518667806864417216543078555466025538735179946427671820841635864172336749133153365959135558240449767891105674560728089071631007771556183308550270327994189427336467661295835368468900150271251640345328067119164723787962242351677647490490885585813209569216844682307654438732862203003005723609497610602335693378265923045430609530442512083573491411272789551398770990864143014724528031355558211276810517234788053553265990336775439420810339341893085074847213295255314180541892009799499240626729074683916979618328503714600418134548383524877654568435343340449040079608633090104109305579304020011352567448444074810087487145181238957907040253602379110563129867020666267582547981903667953282746154659004338699221748312793914095075130749471215715927581759696248084951991599060721575169911674546982887534674056238907520833381137734693652871501214855691524872404172621528998981883235240153384185795099413247255880518764915573285898565019996346895640203908807477719721231739550496860704203409284455738481115286488661577050655913147965590028177938757008160087202518663750608054383037217821586008766429159965610712699648185374790343221048083813391329418996709821618628096575041843130027070919121206538825457348894738749643999593713340275277256107402591067725730353143953113630005843530807120809607107836119093001458514380576102947230336673803244654135035461625868100534398377029083715024070749356859439636019444138282021788386458623986489629385574850029757988455060337417666428767700119911709262363970579463392903310706372869059961885687430026181499450452670036453646690119497094316598702033969265065539015713396826743765587884147466524566447497595704267510529930350232723673161933601241275040442983353684364930454460568906345203700488113241371600037412066829510484380408269586955258246943227593145168106898187490571474729062635401889298007030004305155611448771609587597876134555280161338833030450335987796923114746077239624085533179848546886881256247667084633506848985520656391331858424157531187050391976869531155500657753681369289052784471914206179794962063095671560948640105486386092385304697182965789634173696129840245669468634940524710837070122650458728535839299314988869911194332085168415764089858512596500955127013125495121371356212869383227804512588479938524975164600387250298624336823828315151984454552342365335891063223279978795846848076813778455216331046127730479093063556680777409317191706784677812668808429057612036183793896453293606522492148629676548635168654294436056597645031032791060947866315835150177911314820414869703926988445362269511315769655091867447933193266561976320856557878170063259237335499100283066197221629863664205337227034553145715503192568252661096907218825084242079329561151736573893915549783473876414663348865988497606903868033652240215179814142128620177957539082901999932505890307032066573847740659542224486988042836397006264121690937842882242127295137638306388171732485524433836449441704646718685885328850317366838376521362863090990930652838441481790652438297140779933546275793714993005439416951218707726282871002752613103829939622470378207024617940092655942294325823814235817184218846065804272043876295115166847211807093796015282227176974438389657401348871437332432929199607502824856351238595787733596569227105319293764161166757423303440087157162172301472535626395563352406713569282174833143014161318814994360142242872166917669926612500951820476425312890215849861037670646852148060615051882755636166110879186373808479955462400518963551474132457602488009978300140921767492880362547420777483598047153790475505614779139018091962376226364583381810160350783082436068225677319033634729451836443675055021031433065761968694287555799990915078757137407156454800407115589732088377242874893277754351714161287450936339586529952883868073460924097204386509011796044031833876048692714553518203400933006119524619478861452362017604225094497730276782969235208877350517399995136570596752244126828262095655660212408168001346090754159616472641265506166690979689180086742846976670631501095323698586592581589417826023479268913694840194268620927374712692974812311155458123262371045211595361782447809326673534785282111388606662142872540642027519591337710332823556310370691770208271884361987920177772319533751747175314489280679227126538752298992070341661878858641406130129405819012449042772431078487107180311202370663466934026908623714840342179861846137589182130102005458271009875527405559235077606793932287608675177579505442777481157843025910919699792754456842804341363578282757101986545723262084215153107828355066858377802778336518562525734991206692271447227409436490331555338146091425354808596342635094805387449638369553257163829328164297427578993485991409218716018208854657045171160467615790022258269244944448477141446311175481860433990848997566182567337543540476865492425625293326374326473599466533716736274251461003024551873585378667376987600700725790069435179589787605734892557080300895816511086660602563126940656472757987541898139872061501077867238213330181934118336807265749510084995134830688343071235633674258712262096270938728349878359837187919702758860924983068920186539862661914524880527488513363748292600238287703913062216073964868902973033104933606097084270729812275794837605833095431383956477386329064388602528096128585648616594891174867976028199785200714446824911092001643957753340884930099626435392755434714626393485919986034194959517733999974904725569911611347422197923722759714283240987311963807181635487933829533021086642697795246694215096689221600419394160399359449985846253441557823325204807443397393605462040180202933033138453103859724499730985788334296829696460129072631683562159334837035097434568423948627368127202571992893304454446198962551925438839068740144420118701599384233897249766809155836033238421274651925413632905900369543276755032902324293945227467706506589114932622366097182387572262858051796379877830530994156015091724678596220546069363952526349451316866993922268577250237983470400896302335117255678797987141374926207069254403365368774017422855134660388132384505500346800957537065150159895855410683913957624152154606970631593168312003219561969539031911289993139956477241440473793224072625112954750102727507162294893872374638152079839835097577493359076542122486366291925956106221037053864078001694700176699440437805927887628621602685922944024445129644520953974344773954280277971195528519917259187079817618731843605999802638516609356818118858483094408966904229344900578782024234131354708761486805788653813893616223443689630498707742994244969182129427137986865606456796990818295006027315042714408731062026732187337810927403008627580720848298396737143779819189993676888442274546239880015854925308492731907674633593504464407292206230910597289276169938960282789369156704745079059301996362870425698401455101182477791071427089402076628249269794123935788576638182005783796057927896671748262625686833408680712555544407191310535024465527990285438378028922383383242285984257777767641746786549675838779817766417879516603216141860814158681591375841235840799900640222015355926173690077219198353048870632809934278048973685983611146330317857629650690714041705372860057631285562569437019810303496603190492352496471761154270792460817966596385374943071870402442426174167341499084802217042395523253575546693712033969555311330367455026781053240724717534177835867849877828997354874818802216952262013038235152454660895827482648546109257375019839895556385892497962970895863333085362750110878413254248864147116873626014891148735972097313442118514359012726825534364182669718767238619439791797520580090834927198024149536489270927222415837178804982022119280082284539575928932520953099280994400960959185142993436293183116872396567206095440821353533536291531968681131237889932345167404476725235880079451982596482549287073423476289573917755040362517792233224115194404497152788386529762577148905348054830413885134478554959857495830559767577857108045801544989769251447269579533505247189392423951289024265443711009711033893831431193734325539625705129853104490441122771229394290059993135518058769980156179045247193341289653780752845313105614955410989189364398574935946306532509178942566546173124888255768533942109462397970174059343961657673575553262572624659244600871333294796917819964312710747613992253905161863843262324643035262874828578370542341797185796225022187037148945268139439592558883800877437562948961200212197142757949348745716627942413119060486005392746504586810446226770383578923225042752306242426605723714859022760019579318362685501484307746970055192957210257843780510122415376979403392162964228447488715209838375079670237024484307032491952611537831645874722163662965114994489232837174715087092899157113082073794063706805932411101483579844001462511162434524009132473414215682806216482946277840458333161804788211163336034104027430666293315366926141978682136169538816243868556415151049168459352150205848722564991962217424305622987134425093648260742155462722244581715777349196111737426689401308843850732669357503790340736386387631720787009956128511502481531622188296497267694704045779180915024722503869143390998901944226797690516678620709156358921187005247437700027005669301669040683830640003520765052226325612770010634410983759585365261866629493744574983793383252406465097103829453846039267592824640072356670187989232253489827714363496026543294146263071533196611427284776559278513041152797535593939164782788039424683765365834987816764589955183082124500804186189285537100665896156891412338787280773104204081947558620559198545254224072179259841892440163863305012910227446173866647365576827408498110974922003654281451524370548725294425740856810698142615450030477504579358659509710019509084417504330345805548973338721753376906900205597359164283532981993162281622585977292002305482524350092075013533879718252797889217726768520279111989346278162337040996442527726501437947740724665583782797023125190528597564032598288043825812625763562857442619196740938508112483025396694187241463297497684773859511684731443352585487271552715422360932970106865282920517454550985166929675566226245812172670317332219602621771284868210076712789282813105208799085474240312718777178298339861635951623161999251469813190894656918259736964807592564832681652700352453519131591405831930253049167416473141277411717863096112547635689625059698303879117215290319789743460997803854006823524065035752186710703238207359695756323246581417650934594129433146531526982422091092914731767349211262352514423965068778570622513248900148461025650364418539478462247204147018647694053613162296050825635099979087699960377880374243888994834238544164877179647025692492184598777181474831092655079906541026789384985598259596461535600292704382340527020334344056850563282008895574315669140995128920459277812235555235389745062193645519530867497845663319483776395446567228913116403116525666222392151593688051588903267422245617019671279301782028198431339832217497727813453179277353676218551254216087315331595048958060949023210727252372352406628656807812911911530181454282691742860092240117030156576234827612735409437032060981090974600449746408986709669272174761879037827547190357522468523231432639417399367106561312266123799026206821276973814408870574987089874952532171402776855333357099532669513581967548894093762443828719895308321496731343852926136039128454844408080668695955549672316709355307967342424135241564698788690851729858368939046001822519350254358089486423882903846587526043923626824524487836153504923880771904908187048586684044735415310736970222192535032578571032328510909145711744469576285473133784490861285548469209664208511192439215855275444116271159730116974060314535720195469187200147877978610687645778880032729069180782026024326983792957133852586256877911731931867327168553658591228328361699881811405067257857555778494824314844400883282572898991125866424333563031256760301330028292839957294694887277232447314693442544934399198732633138058207625934102081068785045489918110113332508944213019991233216870872809104853422484740766328289186424861863118837978003752793838901025689908641235097778438514026249169301700129587454737470538328492756334899425660033051001600641993923633375288452959098578534864175012973662183476192705833391432162166541414704690377793765385255659170062172879104535185189033423255167670394357540184300687462738479349596206217904282124504340969015680360818044559992472822007415568887485575489629308902792785402544343791451228370636261960001758710184224938330610708500343775740419784406999020718770305900266128127010639926654248782584377674072646876492228306159989549597359812985717569668138721958376119203709385190772848944014223703797108683035136106351065578409826101095575138877689676432274922398209833009186173863134170492450622246098327887621404193953983861619286764507317608068297052918866526581002581760182751322307779778229244335670222092221785837035640970943027756851320522207821839885513232379861946636226254582523152939329590340336951181171319417302546253377071061642276273264939422954737513581285172093703446864029341876262195451487328290133695459580500397435443398957251182131278308447993856826999089872905744964813475240061065548582923250677033723687597261753035778700738047845510233434842336574526334510836261817505708945349831194869295443495347334143985774740662547607204663755816421907084618977170388587696855076623460745619838988664221902132582137004869365975134365907395162161982682485352738663299696336593795211163480953167077219393981588472292997782594054350643724398361846770101529288246838706171025436053071576828666677266812893276139080563915958889139194131111652734505159276470175245339060407317204154249230099955714773361688786353492534527130926543012566403475504821571735919553752405349594727015654912514964913120820523127899365487720595464682823014371882389882860922309640364065939149372388852906406946200369689455530400308702182957431760306483644318335407243496511567583278983682235085722000782637903819516340144377658882699715642780878580812929863310284162413761444760326622689015796610880281855591474596184984252487329282930860988382696845074711179028836528097514897355129532234869886237682282738994501145637455583667964216072742777626968084805731881025039412871688054334866168800309297487622152505614324509697978011209013528765255969322397413582277467067840486211372851501206886200302962946368321415472841127607739261306941884400707343545232202183424510181700127202648557167526160061148160447454405507215645942996176606585384569286894981912109204488858558963801687991560083779790930839616088515004704286806994324955663077011168473268910045132078072456492790611592013767695937511819651883858340785691727923584991133558372870425439385413512978567240419432595504745224472959283738175382713076904777697341669723115045664085851584388007734978159567725371693366807193046761913573198455755221844410754500878905499190263017068197358641022714561309030234418077030713054614109588347785452224885015841939803606743268908419045700025329080092482055716080743787588201379776609638013044961920154679449987661982442503525280859776901698086414885773727389488332443054888579925469050231604464051332941509511083047662400260054019611636292828747937364161144807382353590707949901423298868943018497067885649632305882145434527136921527592447447610258822746436073678286423061384688238420447461949458978002605203879566276356924264624862393923135646955493102266493943767117967691242801419834079788296381522652118206965827921187971517781081240998929848653096319088449098769234195463735615929404617572934270090528001607066891591241603216521138844493598799667367794835112502634696390470909888491739556993278246492125063708195829814412506538294998086960824498623201414741687562030948404692548874920922017251806443752101419804670521880460001637483474355250750536751770689188100924598597153339522256745100311265679713862035390440440086589462540981858599577301796142041398860835952508681464999381196922716078542783117256834935864327019738983484096224802887924956922021559056680187286360451035416745936881081187330293548609997948527402911011329830350493271872808022903685412881460679680955531298053744861776152696190694508505979317784890348430037357149849664768241858485455115809935351568901001948430835949791453771030872661234575593500247415544638895707625689985768819947549616466519024611066767922323756376429080452802524626673648924734416509537134648786012307796953532161402547252155967664953008326888068152060933905800630493838978661511419142976711155013310496760331212262721342957414201892214164979636837605109355132761736357500367826345087558929831626405591057390306366907456873468578595944443373248469324754455857585922895557664146585612345986447544420252847633085111652200031217557213412887486741197891529160629581802737432761333074193653479081494135623913803689594034170326345550858266480599047112833340189686801435543665088002168347761466859218397210612650687082605152042386603818040489012444033416769596838371628259647809241873915062768647639977864595005552235744102298314598076979260304104339136351728036270202815824845084676340143851062394262563259587545964547461756960751418715750175628880752534272791365874304231851172995188383091111922538783520770242838680846919796130824602163699482021807460723873740297219098818189668826702720158100487078653555921229546830371256368423444167724484594481934706063527424329604542108403030254032605599100414746488506742433466098401889880419156984825388379013036031286033638606470288127292355562774866443137005591805909490500914872865582462279086521439185881758588910799913489375734312202632004372250719445217198288648753489179360211436578864119762723746194565211603877631443642638642808492300910240042210063630459804389831964023055655704336434942373062577290839990375399182802408371406447349293016389475595051095455891791134841878522153119912787658580423425623416633817408162204608095824466970191154239288601546717473104160156094944093569440935829505313157327860011584347592163394887670137885780872060050830822908416115922131021962170510656725953668165494978815152671250330452648728866979913644642015063474094386190620648615375028838589235914152965862523889975207300308206578937314859482790876826589967761337508865672272589074184532608425343049469144873500066015806366307106006629950142005093634651190752389890376931419237301399236923000072424937272453210697049586717308809151300074432213376848575784006246125690197922598503489653590887511845122462595507423875326892924840075557701280082426337351979190337733490613463755855502951271851587357216701999423306471459385686333302726302302807654085195935092344506527803486229615696761519006846940954565868263806171410939733073711909564751823383531223866888119843174371729566295210679565827969937087799519329544120801645749271990090543186678107394970140403216443524689392274260483834651927581498240438997852715141814912911157758387769186994202279591462277950503725154898011115319530405723445051450376560590882107753683616372342672934770853766399808673724875772195480358536976606380982024369968219201574474588159473004607539240731324740154800907127485827747696373372613953416923186030200952929491356159787462224439395768512277951743212651140775495104191696932250603690255950461855984060073549007998752116237946267165347778205179472849850537151983382017873956201759509361120629326988922234446062024411670589392475621897560171319231450722356418768187526943139697026645637018565220173323032852304393020989734368932288483404645344732219803593216014703894927494551045241447542703809163202494718065881150281024700260075198702990820957582085344737259672426107546559075922727554252026778673723841379408395444887646657156598587260227720551045557871354645383790610124349882058742285428470075435393128912982027227025537159470567920891691707685345896041523415736934803035520920767028969059930243766701080217990405363138450209386154070310700140253654449220952234160357460547077326313349412004036728040441610212964168184118962842401606154387856692544054615926126948549909935775583339625340229739875182285340271386970669437196394014991557293249456520119069602376056417487376795471183751860181211075530175967686912059883310196675633217672405318278256611679722559516287234309013051098744787702086111654130936357406424175113878113255192943429603507710530503005010947244956514341888790734593325144780876015844650555795903831995206963632211667025113689833673936691223545154688138163813867563823886670733697609594891577550696725778497075048236555954132435649802440801517818398485004343747261275578775590425774073978991342836635728821381327252759432854515196653703592752073706231246172600641643267441343151692162610520578042888801942471443427386499913156238753844927053636993818083815255785528845236156081392545588702829728016464358700899721508628948129226524984027164357822732193355652535452575705776293849400716088592720777150542207826028737488018928323740876666530237269736452187787378222222105201184586317741417694208277206786382725940359335286099895931458723293479559044030076119743028387621472658197155279681714306999736583636072993034754350824410413970740956609560221122387909804808345614171566193033695378426648451478432879974077702322352175679953190847160763605990223753602302010412406366646364491794180036613072099578330636652627637128749686602011490046396858298401195850647109735212450008411426710822655058916406633603686018459585764300395803172466158997436358025408779138843692167204505140022131212774829515842498749881598082504585261536104959860839398656477752473210164301772215013965565288555254959692985560246566612797441361633214636026173937593963240614257115774323490210146894194495791948439318390984091048954674087038123838168599382249769236237351470188501442874149861762415691044039531754710108318303832649889801031105697798586244358753839574316670147060204732531435747182969138122262817772294158905684197444309422375219967148520936628847558871464522444332204249933080954517266061733117098457003010530013799689574607397134615230695766298850797047466835203844570371394754229978864133852947997524452124162284169250103925265705402925894179088039420001331476621006271662383209513625198324012177796552486826214200737772794298953894804662630508729739057846952759550791527367342927704158279138630549776187047424238447863131345297243430255538165656384493192737427481235038228948428664339455697265668670321292222622357455525844361621041299796735636314033553608583877599429409231734309882141434498180487672705360428211871064455436198091849035062542666342195060555944413063740892413337593747906698049280399865885853047992946800364749577198871425978206487643999304935480818031068940257742667843167268829309708519684879987155434362899930261940840485326708261154749524295068822837302257500783311799015871020236868825629612477150779223806173520088043875566878196201025634654548400787296364825528135328721719799755407724818555290960016248464382757378288875820057900322633931798072339210394750511429209781290073105568150320837996826097533945753840435492479182746053903366609084378633474892720064215727137086377646677512133678924141261795014588593651586810535458122461042282605050940680116557588482728677712575365574303252528695534859931558404158750917734746602896791745732535923095782388572406300161040676322744499692885426145603200220242826591202253379045594574291166232669297834941899791553743151076443639563322086310758532377163300985262987451282925965147074463581195577630423041754295121916772585234277220854320305553160887742377500652747971356524701307194058831583781132406725622229195685767187776084093380558391273037209257147982011701418159872287137533938892247587062791687324906392347352570651149686344636006360195547290135739944170876680064494392315590073583584552911132777365679129591346681951694482051208235153508080545740071452432640781681542309371372551295225934541473214195821543952863437135106904358563666873624514738886891316033996023468029559207393726846197932962751331719827884532346560308046073074720325539022216692427073463213323489100176048006111749766392677798486177723337585962269376122005753752089369677445009036066971511975944095621422701035531442755186766032057278903185631438210146993247824070969578942299880081378631687387475666803756566108137512922789981436295045065259674830576238448185502679429297734440231341582712879547993497515717892680851175833757788933633365360590608321508293539676169781383132345188731888495331724024121782845333633194189748585661782264008957247970255902339553169227373297373961639204431546299727785874771158651490681627401433992548194266575861564780887041607517457962199364441441887448751615352155817938598301578936134289853235350834988457537267497968099582146357940020650907270249126477369420940635325067989102932316555472396391430640879406686518343204754025245201105050049590021284727813671383959597906982140060375732555745550765934386409644649752463969677576475208818757073690986838631690038623043698890981218973417371525338894749727361019306315036688371933477138317779216006792653025838096115608478012419731458391123763180030967449839619361913672768008525946492995309423129895066236894681402333547528817339087867954848434425994661168903520112614546595135093420790016461833132524924823103737426243710883752096689705524918584224649060603676380726318444610095501028358400327834335097149382797603333943650422381519759938646738763086175713959742863702158845780955763670160874929518388441503607349328609599697405368824990371588117536916555746728815347437026417552479610728604212226543590056140759601651572482890860825614622956360041893831696121997437257657476153017438334223425709555739834528314250209004289789842258479593531056443575073603723022788282570606781946493997274358122255710169328576905835039846129730272899191514555895770373619945599341207906772143183533417924799976347880664108845645375590031905955246687153023556247565734855661779267177372810163799147626561731320455835569607125109779648306674871859342366391556587436434558572726381190121726980780323966533999598515466986971772350278531729165944055581782546912299635945862532095064839109382385152963682171220180874347654263467861623634858368446640748896146689224898188995324357532355918659949495346367518024197531019363951194194115362121194035546139723270456086219104492593565256678639831668140955727079419268988695589007183821232581393903110087687098116633749201784629235663158156237030038238576720076019997582399251541897371386963089849866379528924366328206963220516741956121838044731195560142083115931255426433977025495653828383571644381868230020762967785753432041795247957508353338790281147297744526464721921892892720495793320772780674516120051641399994276242208397580273422107747387236588305426598207718815375113360128995589021026806850009731604923167129669525143049808453296913564595827007505746059577429121541552284159916826634174579391937070153170233393041295249366820540017305569265147331387066670973916265334545858052536158730942785429523903798961089953337592180237967996309321762139293394907243831814892173749700500356998743550823856268465079769028250472651857259685099812399231914869741082871214732965319533772504239220043323698526281322531266232174569502815241645232797791004218711068777895594484346217134069739900226205816239857668804779890346058488070890995308168979253305160581187033500167170229373269403989820149137310005881293090633768261298383697147544911366574113366176259082831969534736477222781306111455181826597797630551689972660952723361053729114727535873758017027080180108696597866935018379665301131731106604703544521832559623106495326227771168159840503060188681237845136820864388732246666430453272064771558462332008739753023456285614440686722551716610001767751526404575100630889480659382749855434793891476406065583069650768493343077099651208384534030378304875653049481368619014578714945706180601568469478315515055114578325686056034201039240662424238685212264766438631496403960221245460334903869248592046710733723775900675758510978081832258739372846691613316810046394375466560596622458302306761714700556659921521199507270166217859560129711028652523389273282978543061418119113419066914874082583790507761704021170782633620496484985691860245327671534137873488618984924299447774139986552213971033025440800358504136182834545955857067093230692205667646163305316764736760303009408546140327362754731710272034310666486864075968605593726523268718796143420778575301698128779772365597299631842847105683107176720669675006197420861838050560371703029432356528957847661729352512171448570698274281308096715340333008474048667279871176387564756410837402797388718290142601464880434136040882535822709369838282373023074730066747136015067476144047983665278768992158315008734552524937765651140770957573924912365735060227596556686874541050527299566602522099465586626081571755335067021393286438730995510540180496830333935584171968727466502839900166152363710940067080644771627113449392168209174449290365185798208114116667428430764093670995551703199314737314910840025688748827879048089926870495796798252327333339981676745833785705526671008003285736379794903588366519716101488941777573703863531168283308066989907271378105801896322356848274833692692604892751052948713905997583719128444344975949419731851285816758311554010048358639557497254587892920263143654294850662478420678905555958487362463470453523713223323220467215380858152923931116991301745569397350661357814399632164762631451433927447594872226815521183100851458240485785149734475606149682214967357202604516683264795010234286727418878204415628484715134502413040815386744941428504361600892853533998608128658395634139030992069469832423456757585034339370650915583825932635702202210403590432748174793047521982039247834878784234878804314631834046910522734495087606418876725835330268017830414901277470097624336728071692168226392566170964242783181149869562313977224639119725827211812164585025435224105895248395681602409185133944529950936407584592281651100906013892794542259330388347088238193132223463910105925542405978497186690183401595477215213481554366819165084779696911158579806769677769478378288739789856824543570715880356846910840003284913732543759174817069994562905136424687427057653643115335233270767881983545752756255679315523687237292498358912385408796844464671610268792654337058026189164417417738913024843001014121016431283877347614417549469046942496639493388611709511554164914772692087017355410775364650019849480176651306332556282729153294399660270785080858426244455471438024146673886859568052216837922524577486072400325972069807864470122707004188720384604053768256295691396589344202002613178369502463145211587904477581766025059101085458538864204495043610227416534578048371597772783820788817794151426836228610877330262582306042812292677134816782004301726111578574643194138831131612409118634363724429650076353596529770419693182652993455171013618313359254003227436145780908970819729503362419710209436833869879269920905912460931346523366591292315738812371010648589073315451618014388270602107966822284673571932123349039693037152670885383153437411756693046934236357040990802152353068160679980698535163953344673481630411071589468435166855707566974570299528858276388699376857590646001708437036723324621067620440438130578279197275375889255387317362934947190687446001112527033409782016968792740448722497138667897027466803400113071833680095549400098445329651562645852112139270862413118028355676765430538248647921556504626794256037446486958438855624652897654686012721362580197861193223948798147896196915983491038694325176395589698212268176604309998926107321975106380397922044336194507557816412875878446030302367046510833180321022432086967066056201016896979985359265452260068134748978087408623423224453645069885105549837380091599731428946420763938264940580175512060088413550344003274421564521497096242235455111923031310340788400283903579370191677716601689233487346064176844235327731984733718321146341092809193900414767449819484792150569319075931512286235123021989828339775605255659515526297005277400540572957068151995031291654302916339220371859092398153547781412998368904744417855805762277325232640180171071955586174102049920521137674201313099684552231049174204751053908284291649840214547837774220830686484198294726204277407641971092075897007110400613581268350853245868698591051930511028606641177031383725077049071740879126341787184261272806814804293633028011156653373847991271051852831449239954740606569674810580774746386599591964011395053095811633625614752158080159736702069827602700532281287157716287204789503305182722646813010249645819849160055984685388312316246763037520488021178287172801591045456667783261006175611281083945135230543010000710884599433947830462691229668731499189344212164055732046793768473549579240600330436010541637935172588436897567146124750207877425913441367930015857655535305088018364816693321717121006775730761627475006173463659837173271325303553621757343219908357763068724063392543002723549925417621911049176708897277569820417387233106688421936180405009162774511640115930703734289509814046962796700790089571665571160316567573953617217400786829398685363406376765558950533438640324768002426054770740532389794397154456667919284360736853911629910582629338531504703884870683926252512689970734313484327672793033973685432701728969137766608176623268286437692061346515011626719242527081130323692999806250265364568589410989422382839787469532816444249062019511560340940615882093799948386341905008666919205535105496893881121394474159842322162413215410587518511824295350725699771510191662852013019230191954475585602909120233986447211350408010770402112665487351655659347925049076896059533139048398391608677467520235149949811252576370267655969673007130460410762288147702001839431905439401957299944751995034082667170318024546009949552749649010690701595108794651824982705673227094633842551432768191238523272758724039514908300157213248244253489491068322995878744207869847663491546335850483268684775751270921289171966858105063964097113624054536966483434240129131338437294097661139561341157545429369306532134167001630989802683728184809652772144077263618708618913724707126100242189688254358706271195098606428171752528061140756920031225171069573819632677574505357455984031389769226743189613365643610358346318489964021942734268542879289458655882606179654409955162627185668152595318383819608643960142508295362056610687374654536870439635884016297998632948924497036403327663306791836955983767271100004729009902461362876137798273162969742379371300239243681759145531104307316598844611794863909435824114947015481422405206398208508513775253937214369258357188884616979032249705901890124745311134761150266022777519214049285539140803432579134998575424766342997625489219852212213982190616758866724440785261834170319969232229015525170139577072301486979350888513450979907246297279106319143890945727564279488698511525485334894268380224157978530840842235830961093367496290215694280500182259819331631615652287903509641593798167953012683224391074503915831159049483577313361865666214974444222036369138073362667239416187394313617624520970009503791769292529860987689029854168247546979476039201137174788419985572192625971707121490672661775612400503058884830834970158491573045376841205136904112872232532598945620096206355837547489093153788392217186965156711866740636327622486454394595973130081153292564917556544753922526745281140356133329129894075072372202052848895649117809442253871744812678058612738843710112429363800932286544816057882569212959711798110464288788716988345717003209993072492655191017108911051518786138262097099206527898096146681749328055406344834519003549480172383073033693900202972075580472289778072733481450497834547244312625089902775529350662103267218340346067508908958005605227607187605900830229378190509525308392503817893273663715225746389270318285197572085717733123825349160668173842213329735310773570569321279442717945634692557860157293667389081320829545701271230146798599339871038990233396619327774048314186511318278733217042460845456794745816932222883804736756198689096376515751794402696104377647523799926042765712035471371728297302838094635525395264919258316711574530659703404688986978065612990749958623539204471491166957652741585177694451621057618424795730556469001905961554276397593406338908667044239607381978490848909656713419217082798084644398048026313848617481364301181563880399465348052654698596981636481840338612876297173332552736034701719175565644777362757525751515143021679918841979664718135609351918252506779141696935369737637201627793911591697850683159848740999141564032612864361499169875569083703124822862823824023402931867262564385790680248364193124742214596909260247425982133167684395523240311981618093319036318039325137312159606005951424789249817570200541134603286821128010650662024661063200300371921842742579044468271406389922102103640787502497787826104696976046321641283036363151574118551445989469068745547579382365506846761308956267555752080563221590116539565676025172895604999656148418116266938763758103107416066571318088353339251615986448061529770225595785103350587947641582929898264958531499293226939372625970287704555848294559305820852052880597550575383100572179951287582754953273502001897969640539201451231688233971069235515654677368416359556650110156827024538411083213377382326325665195850967902013047579329978342141808153480207482475306443487617333895997699687653171314304446949321367140999961417610138795056516055317852074787492938530420432612512068761953777720948439372118518329116154455622666371839502089695267697566468579045428943224015278446360225580612719004888134870946132312560046540449559328715317941288127834235630660271054851092840806833135043353756726563447485914602326825855143469298463266986335842269221057672421744547130084379831772412144416654258376491835338101759769965172920154054975172125497925121855714261041532002054659368030618991183331081071079875718685249647753697962057256057553401224377559583673319657943863374325002875641048030926422135637991855920131985301493183021643446694484917427998562238417927104650587034874995081467465286342370201112397888782244384594297172320907195371751390305238821928735161414910933839674999973959013667882237389034239077394300713667258366700524649283017502229151400551277256258237823254602911588434895253166483627396998342403906878043256591698785414832975005697512046783673869678450566778311313760174977174537271950180160717479613269914424694978662164045287769756004655989067413225441885170628685479683725455123320499561996906238130913182561828939481392073815367107946228964886909337717739398646513693060813735278204447373219280045953233049558665585362230074014091068488325814476813751163342549727287058027284875965092850026286432238082399530323970073360654322524384745313688345914498302424182184737203453940747528663346674562950998488985074382206028007601789847724584581938391026400970461935031779494519271754706032273129669783040608199032228476638512516004539060932656787714295577087447005047714536760119071143735651602713130320108005551719227486717923764006665518958209465271281496535672339472625716003008231171696543353418663582524395596959313009513670818639147349201218791116235112656696563601460459331752407187305120716392688070880735468641451814439374783526011832361110352413847375819882579947055650848975973275927129368565568694148558623865907088080225087296086964250513923404655089124085864086259366537500718573011304750443043904070135034593792836027723952224502126357727311021787628291711422291376571874590100592193784412885792310482760761293036864549233700939022940180330206351576678839826610459304128253561403130783487800213585273068952356652485062136360047502145674016425376119776442948743791289965705018493158096192429717830107994897176317087342384361065446358189138251808364888094694675039175651612230328748608708972200701921476659833125181960815058196747510988681414983561015408115417775946706386752601120998306843869070554001165868100539536150639869631908889398502500190801055032855110565701312003458901463387402249026600892380789869798574108394846189631979426064749296953984342546919807597697682423447475601835437897738525732980056138114190302097605069545618444193378650311322886424573379607094247252522482325899798023240400849889135901774383631927735070375604858732597654667278350338232945714652206757359907915724755397823417700222643120458594697390589667322478967061379363396385022086607122383341837808206928266975088866121411389880710594179353253755948458204022346805588583627349103548804468811455174136051490688273500155736445080386315902694622417064468880101923181499014091755135703697998596722281162521459215063336003551684869612502262300193447357807596051039328121330464432432428756679130754646087870916683384417995242042221250660608213080624435899796044950363194165103451511525482779106348715366877478752637379711241784678675954939767527250195739651235502994517481211484561780458464381225795179251500470539677198746263742892775600625694205902771379471348031202935170637172193035852362625065158393358488927353327048830285066804879616766416311393128637768776680411809766753637433304135162911328499347581907321313584883127961267534518515078880107817552054846793494681393202098262817560050936695733984150285765083327005064288871438511792574406085239501790516233415171739903012798582959901939596924384229073486072113385285109632364086315818824620896650396954652542777523139802127977492887258604167384860563804144652324602124446295327376689618646514625714039094554697782586748038596335906256845272763621569576955890355698013742181590915161220875955571221925257981351971676247759696509813119506318531469765692269004161067173663826412176528305943599541871697050253391610366126437327341261454927019701992087969866086292229461880659196550659349470412598315193867181466289533301263143107972939018155384187408119293777388356725009922967752864828342018812207870823161359567129908061197592037031814523541137016638416267535999475580766907688120962903258090163179155312939423923858807007287090166012109220562084307177788598699509011021782261309196387751405367404997124350289686770453397665668641106901522381941845755666345082051811158533648782994623198318613192051153296513718423662017324154631117025058125174426878225044462779900222851309280248456966521985948784876113148764061246071915392564406447490591872966197841676486444723506639091910390423184413926975234392632675462321695413561576588638467557391703015210460748814780142659202151935216849885569652178347301517755485248676700993771047313501311643604151166906154810139835375120065431181585550960950481071301225435418987303732881799205931039250374920935764967554436934479066354025525039631814142448824407775197822311370775694125069722146836911414282178317806345205119341420426620714821570496353642460325721024163254482519290056774542043749068126071219244349832341138906847546309512007162720087876067448350030819101511681613719561689108086464372787530427960923406755207918410717037761286203222823745878957247336650023740778929246627834119575467893897709551303458915670021539858999414393655925932393501563247549505826489892118039120356479789040666214231479053422279072839254461523905719417200012939298407280068009194524052686829345319611000337895252210288591127156405588151967641797632074187946251295452814024666107624242264469472820343861121488664252310274561069532256581716676960376503193226012014308533933754970369840061752325403353989369614133530627170276546054284894668029853876123910436034374398006627397060265215678592776729478817552728537312580695904128949809766256301417429910145121940628872827978831889494865037170461404078496360834436639377623011430977592709331846806945268549515198078691225731200690101367652920980329757095798266989893902366331146133859054549549027902943835706940289528616279135688944471327668213836150456587175003794131782656006776482692599671017480515970680345263198203992486238773536463655208204657755507733570001967532344598489978179734745961376091441376893404700268464668691231831232368765361032502824298957410330018495632402779988064333127492268389634209319760781017149437472241551069781596201096698421649158403413797175026948928512802539939377746512448719805724706765396896904753447856217202850673871460733522808531889513367200707638471324274425781671765984351184813656210308662682001721904430509098797279198632610730364152852949342254327780561638037084153251795978521819841726045086189956968856218402952774399988128906912409564233186766786181808069008945723930785692552251360694527300395773468265386056593113142869460344654605349253299431482970356483434940122857126710095128357444651506559267791291995562703789489533195140358705926946925610062687020847469613849834864270765870234119036216449968719773727693434402081022714489981173322924752714183986858404846737542154573578930636587538945616360626521935627987366866587369612257201449930170062035162962433238226784948813090867011276727924128418446144814883120089983227423191494274249898263457187861185010095069390254821430322924979939067530029928046823466801801554813410113786873932151254009210596639100135972786685661466869261083945209980162693280537675983789023986789293889427696340972236646595798573887546720074442974528233640040602330497557215844258179972673731675812226197881972499836860574910860316423207660182016846741085158911859596933467140218431960105257555699542479040628200545139134718624027175654009220693152053703290285164406036975679830582087996358884368177827499721077885072292480353872288767746921364371122114572709768566899363461089392438624778963251065370522693295821339049123585287917647819560455924050664188253605158160536787825695247752627940313560182571057626459343325133023961021684149045129167032839781701024212927778968506174147103046621655324126589608272468498417157539372658964003670041959957167433815355200373897625647169951800213843056625949477921816645630758669704981003913632202560732209560249637668239682545044027832445028968365439996531686102049435797035197943855783224680715729230383819373083023851568891486640057505414321226546270832052231785935158270349093154763651388142995046431167990756462884726612868384492425627661147235237808262305767671160560283447678685709725657300707161662296438469325078342151724129946761719124866141241153040300189564536014582893160679715426836453689853050134399291641706916245453293956013578546167009315779724458323383235167829503146509039209952354697142741519213278978593689655278329670091406112491137020510386355802092765837372720391509906386781830852659048430644605178633811864249112527374488811119264291164087533322619706542938962325904713516637471615499663066976112017502320515262089432255896727521032950612108318332093927557303267241038735285558238746454107932825291582208992626727045028193374937813957405812642271005504239874923838992325464882397880933687559945083145799435293434556647037862358585788326633049307812567761163090170331552343377361403102511681358950901472947894838747206178019754811768906386508594391555551709794905226259422246328423204899053673769971845792878431071659517656138265013965017608789389373279117195487152898370819470498347612204086601977792924018279245912779404458072965885454114703571572648263846331699066385241681702388046051719749161695697194438121555150998508385395202989701307201576280211692907294299183274291735141429059582123773247472553350210992168340186631681454462500365990198653122124134523866591772440932891603472022245482169983330788392119275740818543818375260044664188431457953031036740472969482039036189221465212592737373626696845905481727647205640897652105580701960451987397066587531030261692984515015483940268616581029320694333327057622750509411349383893601445870427152021901169969797565480271823718287659968288042419707046837264489272170549702199805932623132966033676745743027099239545228129759552762211594219950985353693676765026359140810749563981394696540877817810464337553666602425990957737263282007636500086498000153664402803387418464778060420898659418211082441078806046593447914258757300047898122098918157415823991772406273024115967524719452677376350800874685164862038138951401334791544885273391966537961366964158179442019110455323858140747360914285323866504944427241105960397893203392937681145131926765881629134695267100919684457211041656441080973774537711673199155531471429618728108089537117794062034544820067506540715036549602721487576003753512522710226188216542105334535524958048614397529190041080174445088865600216338798868422967805089909827818491126983196337360202974613434224984123297663590715582652168331506772299663750617685861609843228234337048934187524108830667170182024937152075387431248325472215589656261505991276256452029585364515348598222400212995503605924692340544162350972209968958666563645081462224855537661306763123301346691717832134399012649895749287180077182660684222524984620800639692776513640205333975031371033961846039627471667584686199786305292961528535324288571808674352018653029946302710759147524793213478585702731070520229252835493833017621929661860635824912114696882151839750252281904479144632313983578059350522566167487879720686203958875343139966763088439941365077385000271863479639984827551137117672427358401310424619323672461008622510249929835254410652859435894929357772166774890760391088070526281986238377758918936165571259104095650537288253956230754227447817555596629013150303707310100088728758985357803079424584098516187668860558260836845203243342081819035143386532388526361647288349871621177552480616387271918303392547920547700908572750098538216700332463590107688093600667420003053784253914965748736003167528173714549520395795989217093925841553752794590166491681158763452750569372149668124821181673649636449940342955352591482411514028055286662542928348495810629534806670818065932342377723966277316116782688509935349512750404111126608620233594044363894474207264580812693560264873047167130571069965601526209155352077666409035980326861141626182490211546780074362359218413359277203292585332920052682377587733122853995408654029471564960250928026048192142812225164227560883461900298768466235560722584563396210228007597675212273409003968676797209881501519380348416264270009231269952936636625329637345402877338624128188180987200079039271931367906903943151384988241427331225237523740226395530410482299461083633866423549298846742398177728966914542176706968368350447180253528030549891130997331005510721456115289545288866285057948561131172266421592381206094220140733508379298018073350415234791968334322343832282845615896380782765707472503373389204148714287459734146843353583521970733363776611272469167654847378629525193060345374098749466800266013379406928692065824658981790615772121632638022430633795466882117389915156960973437813214813976371450614865888383225599050937478530479445428753778167598939696770525920072209216054014412243856186863696383521963243078365930185011861528722909523425174603880160422359695544346073997344769350204649992533992775668600121623025216137165136225704897273981775704808749328050365825412114324856220236130970588527648684550760720751103031055846429523306201412350454986746676385939376730585458932380158519390223159821263175951922096569167813022756103673387561085885011033383547990059126246662354006969593863063161204475157946123032518321934447674053925894626561421997550106596001577332047668942825070262075590110583547227727887422291137656587426166824997533769790834132798686576349671932971897403414661579177672071127786823531106041407840042083558643058382306609925947513268292911091888705100576166350035969521319326877749416799137698602593067243982821988576373748868973543727662308842479725557947777197658584172038239932577869071668145046183663125181461432303455389478396401633832135107388573858341178495764129555848955008858877971164906651453754042443401723991510018167039307017561532512283523692695505766094233718774409388335281602179581793827983740564676306344935419401931342880725364813349370309885538757667516478004500300776820803798780505364895585738666826122532932018543503851268797590565015466463096608631220414472036793200031623428230294274502240156492256506370418258788049640655033860917583404442868573417416638742757721102818840522239387235578631725557611538188935281756722694666468210570734838278761369859870304579559509874004910544066522736626130493740845215491120438102318469813347376897163396175965486911968871658577470336815497304029364011157839774414681362331785152029527538319509911947224294221436021892267495847443627153811716788895070459859602005702368579073560032814292696944700521416371757770522558660799680261014770836488875168525603139711758150261530932336170598913826365812842894052914608499097868432553465863464726344526468319050709567221842050364435639922741643695655780315417130933609870819646088933150728440394475795437056754221946649693615963954969920684439730518119299578409834177879263364852015424712715989368436051391150727355212237844103926752600669417975890184478238972564487357803177640712828653080282686607127717175305033723770935505898919369520344602100046676269370543879450757460722855782529343652679328282800333438304990382733016068772945432548776618737958845872887395755453147407230657544310701985942363242839463851759663851999608450273693679007508437689980402571772305582389923285167344144771464937219804573837348923122684043739503945932976313868218799875720692318095902902300366368162766641287930368196398049185250502250413907323782092777255262410507426768550638014220475974158805883947283525521223033749550283360664087589551295434745539413103274150307605175957448577961751845857645491418087079739164132719829845364074935702993104193650491547715463816566075621821948912179643499748055734266738106395424393205911294258648169686084816356559743151104000748089790855567217430735590365129895008218876239818885239671013392304490329607081426456782270716075920754521912774926700930266229029608953136833633773387582584070172286176031825855034982780799957258642450527890315789426646875173412204034040165259587136324016063037641251302998722758407795933845909711513316505982685265893917763748076230630028418417521575121978489093289642251986507814884361136768506801399073882556298648544460326856349487384501316829691297112070639261130121735636006226964392010806982573287876187335545049742028196378061958072516726039516491551203160851864941577883767339414279374907166530385615632507051413785288557202235163468751476174845298027174392206685692996928859586868930462349057894395570166684341903811342191546037594008338118192736650586191930574563138413226724666020675746217027482016423067627570597784492732363584263592997219934968222842449061242691737840699837266087758249672973556081805484449820064431991929801455180315853753074450037852710312222307186057979174513010398931044068345844678523859272453849923972817866996971788937313427987051627755433367246996148153847885523714851092349491113543586573685366941758103544539813793872477899001101362149926376013242327430915176400494142457002154318341849420793314077901339910142597493791324131769693907271135708929587729255530829769648728193033889879765390354379981819924219396038423761428643278104429691754043140444331357503110683740028432659862152588784219484946206672777807313452894255210248155950246783256338479605260336229792308943787839289339961537984783923481365346064450650848761952432365201562166348466162631723594247259925211707419823976095543648937509652244174738589812276529882229799439261424649506985545521362647747222704648423091786740827476574655592618778119151933114112273271049323062150677059912149773384997938049979821175059955611222448132011653164191893757427421618244216946634222970200733304881716112125439514961211335191783981652303106985354634714090278784932740822176747048335118429968399237053146420647792351561737150934220474701529084930140428409156101187498226945671927160802554097573402326501795572679313591193479485835076105027110246984048291582749735339818167319929769069241835213579616254258034747594348298199619353059592053706087131058572234927856457326050444129773978149522949784904126542932897254550385028322706073162182316259483443900573469146137273872863006506877354641305693498269254657891959313916824076111502180235591892020721647519891424329992383013242867154865638085315078224970726798226672789508243442258989310919605307697567125663868386112864917902904607641437728621560546454228085829588927504439547408974734512730105852811860814630307385751597597900955715733701166767106723798217410175062260068725880423758231762493370415953440823637109688582698632003471507377391973666978394539770649297089836053524796841827754761688186735624888707812862260145533040210591928063032327815186175821298076654505638110130242667554819776892857334292649524077887475124735610791191893524755270068319593115738608384135388379674757541262011591402621586239758472576964675201543490249880608849959921061300217629998376929225761693398163947719228141396939443003059333475677478752743901327588111437623070735658327233340118829527116971862204921348100850192557965005424364366367479095160715288560538173899964261291812184334253926455608236584542248484148422865023601099471611771777041596049767249526231182952887963825287463085897362704654133879128283455606441507704135924518411825468749872777299042218998529757517906680481718968948942848015795650097521265240921334645053135617092868089057316806274258073618882451991344189923512216482591480394020340627448864428635583203496303182904141443604316066021090766836947169378619522521007089341281585536207632713666167871216352807826525116319589011486260373160851104267532231753627465351464311426305634943205023194655900643531804680593194212883697021299320310028670695816866726852576716866253886334239576370588522151953866377739122858909645493360960170736419345727220604717043696668890804135301969048579642547832217280358336602289536504570512987045354084605490866414458391914299588997713440844647114988295432279883761650453124455492640561468777787992611893228823647507577687292312272789603313135496786166047816958687511170859651587189214342533919829709026691772893674165605524229620531672700995831364701174831762275052931516780706648007139774572695012241675208605783163865643134134267632228424398591208154306854666404820526684952567280295020117302887415394626251313262409481350373451591444638056514763348070112450688535202426802070156448172681077901190709852973979043986691106824031383353781431866013910748990709292105485362201049490665120147134138636697439318890560151981914716665164803129824448199973543770024402554392781467536416503131982599367268016674879218159204843239444523061307585630862285057684227893280700512686985179043371956687410477805597487041458936646775813151395428118382880447765657686020997247285103886082714484662430814420015169206855371682565563013128649420739206858737929887504998260902594029583441830256977392867694991361491985250385426293500499036073563035473603606871962692805922346373048940803807028766915074887950391684030397801758948779549550466107290025676263590643373688123223560337594716685691437264455565042713913991077420545099837098041483797056088802566795682911670986923549992154345359330100285900223753751602758660636320321006462169661724551940971339799779116717136512541673128453907945678077207575812040574660325026861772904028285719478170725562915779378022804826462595114319657553452467314520402792256586586096398359223699251252972341204432177980826030676406031543123441882715128676371904599097217224344702015531549777583084365697976035471181818794370975834107870937377004788330657799779906992340565451716923530030881744387974704765879245212552151651213813341924542938652369707732785614866007834817707811098811815616308295238763230552226536607355859001166387285631998945737597427088779940451329358351183020370793557377258577702452068058579051248579129646621149605821715443844410768540602422525656909149372556343243889822565317517148948256004294603209688073750923151233241093140573582615776669828016812120395070414814766669527025323288267656358457396767708074939752174619719193090225783048831649977471243667423715342971264174230618274379145961498726249014637121433181796509817134130987672394833355573908336108467800251433122798786994386222702097585371435152468271603591461176737128149409569157701899153594055912750583244863016349172420443602429061295318936519253734480472240670223840878316693297125838446938559410210227623422165682265412216082646996412305750058631281770691593820678933628437239105688679089020223612933652454678490599977941624123970805494911697200611883265922364962381645926591422186034270055225816094876768415329640605736094046652034399427446210439866487434663740692913567169781666307400939083530233485690342278078846445360971729991472134612941620408867474489500238902306656675873483892495480409185342470792779047356801302657906080032350124609382492337809991923625384580771133007894765088046615663703675361528322968667917158802485880828784835122496395870156152275880981726338322628171084599644181692570223527057452614450112086546882034911251058935964439176354347937413343153248715706050258846715767867680009326167177590988324217799079305675381395819612632630590054391439167960672291765100072905340683661251725751760876633252777667083611839673597938904415720231581465650061129439636990079685920497112777446501229592959516143351053428991862139675860862892540770116298932805979541140182432247047318869031199637224745800819556097904923664481477354625817154968451122606814397185407825299936656829009163352758174581609654116722771683797737452093853510456458786869902923193152953659072627233282630569002226981040358050046236145765765719490603558357337213817881324376111693790407949930979263480389744163267988957316757835134008790420212734319420541172705915130742876366385914203340366863666503746285085291845996784007469243356180029896077722651289333049487652322812013394798156398437070344308018344706241289611774132390782429997134931198046852474659234955870047361378946101297024714360916745118728004482694798056121139745132374856702481158522398244392925663315566997491185654123684792358691647998726074875444566779651960831584224409313045454685511056539701581994213417994455813316617298399492174996340795291681533400441109525221268518962896671796163547694786721487178557662134188427346881938425614645275232956600929076463728125686991921625719073164790798797155544957111647122948583860150144673940160259404712283646692432864143833726274810830386601061449985898373662142002059399250069963043915875342631407093088742184306003376953177164654423263345330175294605082863809160096437876960213229042492192088188075437149497863733894804697300481155081989226611152043969620583577742592270264259602031427879661912257997879719347754478936722695660126693498062459066595407682135798544508247257579098862871902567595048195397156022989568717209140332671942497920046106889179091390804383750942472547320112571102988759941950655434502717834377714429398767481924613547741355068630209040021066743743972413420253678435015312762130598791980741652079264589407622306343828701100022368505953973066755669641170224246313419470648935019236708278065954997964707681679799020415221680607922325107420803092190185122622354610719537791247884553361165086214653988085467800402523036759388986811603005344018034725210205983364783711059845260489863378338499976775595927845900886422787931926652393297685715509933589974765936554542651180129002501356372472060956281410375584943415841266592855234130736561607572319778883558409806927452396516346926389886284200191246582492676331802876366367571000682097252379703965562853002113530822918809043344298525968127729100494194760577870345434766249288588136910846849990107017711519636419984806213142229473880502199770548752861393896247841448949318019861924325043947393011824574648042805615361573753171318287213191044741867218772741148913013321626965998225836604625504336922909594797540834504103286600487432773960814695111122423175273119033946221622200537919834417306220680810267566851492752341950406973854412485854431652080868657958969808359698327278954586351997679331343520021846376131607758011483098616883319787858110764489577269454779055573435130827337547988925739623789943447671767470191153437435556280923264538552538179799199272314419652667673962018674079379482040918370640564261981315631317656264719203995745338326780789063907125258083074574979897940653137968479772126776229972146406662155463415250121267714881532552632476182959307698234761341716032511996704528388108400171617641438346364513512035701851100573682924918587042074803142163118842928704066375181617052684095204145146549508833314475521884865488171350803094000428508784152204756493328335511846512289007037348247140143667216482971310319552539335247182485762606546576243612816469784980023703341727787679710245574552588242160678292556782997790739156187142238313419597408773199904515061412697496809453626642433163060689187007085899566791892814134476032167403765943346777465123369350453450768513185764428083930778056285255873622778790813536335352576671551432296131421656239636683286752397379873690253618192105392877182372325768693240764892013368200889177903840269244872203509197321754311550750383094632852037972581256488056269743871814693172297253345075757973238652716254072666244253945720712419009399086912944935785925922607215924391135118829773957097932125184015178306008843096235480500164439932907626408682734351466724676375955838381530746031397956296797434177901793515713768039972997554095332879464315082425595017109748083092125915141037292765056430584504872749935188018165457696827710675995608680518862753583052704428419435600061108578290173785238436349451056531038297421599614886363611525321255394764178873759600693674341999991273306202905407545686135933768462204810067064866169950292814150200570626695212899663066977567666888746236566157755345008524723437991971357618420044366294449735680356043847044612859298083076408095563972661906676339263493392178188722659649676742692354548812510873170487629796763334512100255083774614626923498937471840145259537518743407445541697841529151437649550361790029139793469005805404143757365616685437062675691931546810258767040555617162268690724262301005029897487466953979481984166637803123726486451781468837458334399360819597984375229277944642636227822685937990359264150806418400752260144276465813286586930167559066161153791550417905344900473348366967864889199927197565791433473849239744730344505987243063674682628522034294366398013286704644847475545175768589494815130172861863757439837754717645311657383953408736269422161320155129968321356266625349910090923091528862090926079656193611666333367975588236807531186208118705707539355400455357898675262797069302898425276927166770551145880527281414064953896455446651147828126353844774684722406259255449970308914740337067543663677388573342664836451238856367657966201456584128529960308472470108336679348625212186190777091657727935962788074686742645707221699503838896590252964784387818948535582226462283153801122554408906232575472475448209232319278252170261079234729949332108586780085972739196094493286191720529238051598524007440079218636389034157266609478741558893215308152749777103243314762864635677348085437106926944806892768367278383160840004070897314227402258659634370042382654852393353436669566637971976121998958454505905667605503991032940208727781685008563536712192696530540803914976117623712893561047383079356405209271714109923143439551471828571302076848839460009478972053345912762697938727476566348001238553978085047361951495081281550683816045767085690600768933444656080555473977280410661429330459377682219925769548911183266399272842332843991092443336798453754341279904529609840642482419049882501361618515837420229376398822705708507030622111664462358252765401021126354404344740227843081540526944589667205295165563782800833345823321469346299908843008130944723709351193947232582855128935751826551517379897976917767329275490777568965838715324049110036216857298705745490087406370699161082064833943363333795024615647204156328818539176177968200897445073735886118637026665238236236467582521990506751969886023845301742989269677635644633388892858483698281105769721653406575375057367503625770688908810054069978309459969749062140627768590173305650631755200508959656442502127327251055156743080239735521300349641945742555536477213751709689348497530083907041959112522628705696355291719413446944258522177700368425680968720862889077599232957852680809214047105729790319168381954102862736938059604228751165858673709535086926615227999286487673753671873093480301547608430774084511578437227547435793571451989726257804738361949018255656916458105507565870795914887371659283752167781904218214226439036988951602940684413876041597186091384687824403797637372571932966781142333999838307645184414036809673964117380727642864624380339587676825922657606464922640455817796205418357293228916600931616618789847429400599892693756339360650095957587951216812876984738527725910333167495015238312558889573786611488257585243277564926046312112164143895338770460022105198935698247251036170029732982658268119436467121761365890248996635709656798042383770989667026761038848026671229698974009953867491916633950083068075418432726629501874656599850314465380993981530328421230953028569162718982342892868880146234190538292291136956603390938813381531763804252182044108563028698744094620432413905136702318531221799434235355486772783389153252263821877827583970871884287097970103890355605396389504293702976649844114653463467586863151728619666190190582205738829913609507632157559981071246973482882758895157330372825671400297986960857209939684475419364633962748900922017656539015654287549491495864924944314245289496945184632382188430963114978518657249133817454354572169227878962805728000113627248936297302661338831298746048478147613896253423583631095171129700881598975305740749944945265364767757318305557742536462690911390216557336997553674158368371861374019594715330910428753065483222461070957393745769935751653215190010745825854068767059967012034493226428344286181814646380871202103315953960064765464817334430805642163607778704550163080777017888281381220471661892115343917921959888226146419805693268654177300696044420409619399145314633498733973971117754706359121249382051370228806684153751085014938475121055393938943260662645648277061569732714927706243492961358378586486922670804104681371520361811133547379484563984377017127971616813368337363214767592184036093555480609524836662806680103242180691315223547736316699932639219137036670578634402733935876896909995715489448998844081376156961519377476072618226052851052227461636532847883093307253802152258246218287757576707857673120793424677626896591064455646064407851164418919299992148646004971669804598004560654680890155481663827274692512540447799203970151070236429132128420394957597632857772537412234834252922805671401973180979375216993241710553028786671288239384711607179866321994946230356496128887317149319060467637935224163511240005912328642205370341336484043444357032318879019725722780219160715502618398600771658813341519000741074403343561086624464026808661990758106817686337099265701345327494036398272438398878258008227737240306824147418301087988774322510063030810668993749474150663185636687211164904582884562323259555926420893826509606497660230241436902645035252845432127957949131500458385124207103901117867681904694417780241086839009965348354384461094762507621565992779677377607976776604975002774909867741576402386616104511989184430093893490365028298572114151943348411981225976556653955573216317069896341610023045435027617420298111122209806783794007555286712308656409930783630918911346295857757548197471407740427404011356257169822444898441347763683669894608307960118655620880384726926590248884595778242377661189806931206430631257629982176188035280758583340149657291612762410063404426566586065455684035661484608039944643494018334294358840664521790479578573728219323717657902966350907627475950626673291232781509380631976701866230278823366086621035807301814577018240877719268333975853138280580349928267790803664897286923129222106213273012227110052744517402820210321606883284178985833318234730479886474148968904616075240086677951506947552338683238351234016468115068707430643265767385306406479171797625087260750092678858360686688833868437842662449056584184054391944486114078154901821939620848450739602420131134775946232948805703493252187493406434358201906101521871761934638638585972592002091715709914601484339968437162304050732748710168980729843095679373154765876183361280356412732019424391966778179512416887738849315064691774252403195538050877928573521920601614692383566580573152506665186225677969626296488055262049953950380674702287577262810156803243878729093625967480758189649069615118826457743593911617015450218226386760640315473344769030803587623941229131499645645937714805378955396125957238546846344365102734839250821305444302257331762808116413121063688260936869860582009505738393535604197486607051227484810479317090939520232418414332594850340210834504658017096187997006681499463973763156609931224163438226260719635472999206028445856200532625317208845887534224450777715265256255069039415264891985330841726712646049545831416595642873533314759467405610769362391009612310650639076844656289472254010009923387414858976224833661676639070206545284221930468890828274687614612489477682626947940817003518236381527617140916169624648235341419859553999381821850638287291008092978324598204606907928450299690815389191131551565209241925647071677085147395726663643516183240349372849331098935967809031567246225129410638657070355697364016343184492125152839750621367221323016978470031684374612721268117170144325139121746234624335011923526097365506690497827849640648032622340553277968388184737789872830142577255806072702555802703744610173184148609896554974671828800318515197006045288021937990766505611620952918531038499852530716945636930420956684609142047766443779817914717158556933997510851533591337745222001560874791626646150174953267331805193207562655117923662065738636690933060798622264011266962573215342357826932444748390453284479920785428956426863673311941582862316024841333554185010793582308219037351662061618472891168426453612569438631844070238379198000925496820850920620833170045696338441631573351862431588575809701841699012419567368520689401596766505652290172036659627226548709022783956926294833437440469961551313875210748623346496601348879393152415605150159480820827769829572031665197692763390879909881528310199254509190643613422924125251888589882886524431387768767129918486885764739939076274964074597921893185998328967102390020682248708481005488885747948350593273128470575704755430434018100686984931688361936411160918246627313005099501963991743102615328026885759467672115295749103141546665895309511354876042463201836241225826825332050239221329436020573918585822697803299228468228222058586167675378161916970802328980560129482734983705763517012817714311058366034206099611066053825575944675392266083357143911736774804075604943300432302694217998473094043405817454313931104286406659543408645797791227939929165076034163216433165367710687080545519685501680592118841887732453103316458431527708210684555488563618344732492773618250479496420474427068192452772363598752981999444668121615261786359418904570641457048191165276833462789504355902181205811275495259182991837108068618658617992866090282873357752247572276155521307020095731493087223575375327318195885293226888999514500472059901284823676657161662780984915944958238372007962098665146416870825248330897052103131319982952202324967366408374222699577139952115046979987026718855806990726392779698514655989177314844323516376442933625798609753125346476664053161659997864186426238368587430952175490230009448855781135652192345440950738376526574852181354616571559098031882567869756429344949454065361666744266502848808613188886308576092051659540741666308926850139684021201769695013167933405002763567519923230239057675540627251545062115658590479876913622979316647214678426073206003558623798708681266587534292171162133210042836307024364030313718442638386839799192025580312550026248637435727867550633706413916637790242617853605544547022376226753609138692292821010617482011665768293897755072742935137772688297454460944126228759415964711308456478569268248274114835437197547151164781983981056829329973314945655228915973332425387613258629498410620511345484872968252753176525877014924798023702626499930540762433584857877863323698684900307360928089910483757827036469527735557686821512688843735113251826703964919301774797907705751167009195944370346610860260578002026117659409409297164853266080965361698081822089029548936142097577505510350537048117627129142237161694329132741496318110937701684721930799887835278551198546110134225211641240750922896802014093295715181540672521336310166050358810532157189685343221849085761128910632432939681734413625384914815815573577232037306459435014977178063952954449448785059280429513457572633368097894091947261298933215133973182472223862597608282400136961525537572916194937522987348016272189186197048918483808049082758980663286971702256925752395169064456566288458134170377602418413582701643146667681579430304712044835293273616161179158174679796194544327351004956040418397778692799953880057535931631111586150645833890102528034688208096510057112206460075667062555668459754771278715783272759340812719631281188606182652008539606808685653698310280273211504194609057800933604281593608265323179177834606510442726108958114994646074488698601072703768701964759382839064057731649705091393148659169324517404764043165931701793707016157671076852681776233370499144013159546150449612953580642650850197585792429596136818036991727770612583592212638954713073848610229928122236585517007935742711756469765711551214268443792875429307826183566721009017238975711036790635690974297439146054156945922754657613764618004660006171724400253729450584082058392504922948706052467189232021114318162938310896540736482748667903672946867747202346718553162066609906245011202883961849897507430694466942903510592758203524715022699350378053291394202217274665432591581359184821380210580503036175084794437780744005540893801008423860806899624522452891051212907930857187576076684177033079215760358816376400378948207090347482742244629777557027488437282259668822213305792800434439451915479668835209303738498674157321975282419249969184375815830929919706416433181308591831555812665282308218895543369898667825409600377780832243107040812195945236095478376512274525287210056613197845877355869292418201212301038871883408095803962659725748779918435172609069971361845070772107012175848354902778274575281170555637295970126023902705432967337563727166710150720556612817633080550500449047302259055322344354136238060629506723890511992924829793866792071597228195876613562588918708546244033107664567390279753404094691783023007158936154859078597014140207973344653902722206053474022242420118444655018329207632574031601317991025540808245967156282981807612102263286020572959081577537206039198280144917627005495471710114017937410197000179086452004522508330933417701920940088165615554059144081331692852757823917504006222844042942815411707061302630606095040465687207307818802746581129806266937975486020105169688658669836564286257718642440966178378579799771991723609359646788117638270158914809035501368885708538129262207549791632852875012750178516208368919723097327249047440246767800585907821265842802030278679508313120100802974048825800979472259340992846940268439791944733191128064779621249347289909435754214122205906713785519146120961554085674611134983025261053222005248917723838909981094567215784510325081530600869408358073080618627529614539993549168008453519814354069372912143147662258909372251114952784449891065293220354252481674721620067896754716959297187440024474061859992081373777814554430353711558689769860014432507837657056488243327551802161506661272837979871784091601098354429285746921437174746596643110300061976937104910109526174803139091201595419519326450368932907726527714250072949579701420020768171882358180383303170550303091677711449799275465734438274693114199699709825897302176008317844335190730975038514080667534729791106172379897740366745074365524921488594518725567064306124613937986372758730689533682257208605288404987046105669882382190125788797915233961959453226112814207294856945286956033148264287989060090885561532227007442531437966091886795195038466188964758455789538618707899503434325753359340961039308380168300170081179104497603467309623773958061853975380094289813463486564693536413000730637169417180095454746841098191094093774754149827769288560612374611611024451741456235929025054671652278676762410015453824890846379899391613689734241229859827579966911696400301615552256179360252635869020631481480937768876705119556203434166935439798287097345183281327067178000095915043844379195530956704125458027010692378712709429563642621318496582339788027195120519342905958700086252901201882832817099938033655338351623094793886397949283935076111482871967762386683226900558254957368481071198023784590593672784615773731507768598636144859718214902050518901550449057187750823636912436970517774653474760457417867798915016223865283250407706685551165910827206536101386184874014164779786410331031237010046599398924454156721986961480091269550686844911083717154546844393345636151861891764759458218603564430601960751730357270992508971765628303993466049843314852257851054175403288587954745657838341761952829653912452747632071200464633253515139133021633687263996059052285463375035427780676466011788712827213778942612824059839845514665601600892742290671629753783895134507444858146957567921000659722580498471986797303499387860592792992665320747759950791679485574823211805089622020549810445241919891767859995808740228837049592832626032401463728349260233855980659652734479972593547123875381742520545241891252912645799277379979170353657098859934399649273197988041940525137774208879339276433374904072804301274027472699553601285188468489278550072616945314620325222995240398013566335901343241125861076767189242186313709665604712412155199831403993001147390450560535682729152365984169544120856747727910432228040574670523927621642893496322077805355793925121496691616760051281790874358623152509701468823417861111673975009830863961887601181254698925313168523647976956942174383266275011606922379796863523116323686945622190029943953386053763294252686400054986832247563609604395837123475892257175002647489345963578371103264732433015819589676726883696267439147729466952502326738001065793635000320343627544606458986303760395763283349067117858352008965990201754202053329541952327659734095304351582599276623239774650369629723330720057347498047336582287336716769612073541027987494056475166267313707105118749459076119131815338134993105848346123064229955950671253239312886274914082851036116573273863306413008377892085071812332844950203300906046361339552368157367170584784505813181771037602176409186435280815486761253089161845331991187364677247276060432780067793076593387028444438489908148667357940861514962683270027691305576624344823158230642726540637870700904368142088345175831561280068767352114661611829781009246341065893709557299627850567537217995472070667123266748078445614793510291021830943887869328929293217429390399650123255669276318597583235110522392150016